Course PHP Pro
PHP is a general-purpose open-source scripting language. PHP is specially designed for web development and its code can be embedded directly into HTML. PHP is easy to learn, but at the same time is able to meet the needs of professional programmers. During the course you will gain the knowledge necessary to create different types of websites, and after completing the course, the graduate can apply for the position of Junior PHP Developer.
COURSE OBJECTIVES
- Learn the PHP language
- Apply the gained knowledge and technologies in practice
- Learn to work with OOP
- Understand the PHP framework
COURSE SYLLABUS
Designing databases
- Designing tables based on site requirements
- InnoDB data storage systems: tables and links
- One to One
- One to Many
- Many to Many
Working with built-in PDO classes
- Classes and Objects
- Working with PDO Classes
- Properties and Methods
- SQL Injection Defense
Fundamentals of OOP
- Classes and Objects
- Getters and Setters
- Encapsulation
- Inheritance
- Namespaces
- Autoloading
- Statics
- Constants
- Interfaces
- Abstract Classes
Working with Composer
- Initializing composer
- Loading dependencies
More about MVC
Working with databases based on ActiveRecord
- Laravel Eloquent (Active Record)
- Symfony Doctrine (Data Mapper)
- Tables and Models
- Organizing Links
- Creating Complex Queries using QueryBuilder
Working with templates
- Blade (Laravel) Twig (Symfony) Views
- Creating a Base Template
- Connecting page templates
Routing through the project
- Organization of a single entry point
- Connecting and Working with the Router
- Regular expressions
- Controllers and actions
Working with VCS version control systems
- Creating a Local Git Repository
- Connecting to a Remote GitHub/GitLab/BitBucket Repository
- Basic Operations
- How to work with GitFlow
Design Patterns
- Factory, Factory Method
- Adapter
- Decorator
- Strategy
- Observer
SOLID Principles
- The principle of sole responsibility
- The principle of openness-closedness
- Principle of substitution by Barbara Liskow
- Principle of interface separation
- Dependency inversion principle
Techniques for hacking and securing web applications
- Creation and protection against SQL injection
- CSRF attacks and protection by one-time token
- XSS attacks and protection
- Principles of password protection and updates
Advanced MySQL features
- Indexing
- Transactions
- Triggers
Working with Docker
- Images and Containers
- Binding containers into a network
- Running a project in a container
- Building multiple containers with docker-compose
Testing code with PHPUnit
- Creating a Unit test
- Running multiple Unit-tests
- TDD (test driven development) principles