PHP Pro

COURSE OBJECTIVES

Learn the PHP language
Apply the acquired knowledge and technologies in practice
Learn to work with OOP
Learn the PHP framework

ONLINE COURSE PROGRAM

Designing databases
Designing tables based on site requirements
InnoDB data storage systems: tables and relationships
One to one
One to many
Many to many

Working with the built-in PDO class
Classes and objects
Working with the PDO class
Properties and methods
Protection against SQL injections

The basics 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
Organization of relationships
Creating complex queries using QueryBuilder

Working with templating engines
Blade (Laravel) Twig (Symfony) views
Creating a basic template
Connecting page templates

Routing through the project
Organization of a single entry point
Connecting and working with a router
Regular expressions
Controllers and actions

Working with VCS version control systems
Create a local Git repository
Connecting to a remote GitHub/GitLab/BitBucket repository
Basic operations
How to work with the GitFlow method

Design templates
Factory, Factory method
Adapter
Decorator
Strategy
Observer

SOLID principles
The principle of single responsibility
The principle of openness-closure
The principle of substitution by Barbara Liskov
The principle of interface separation
The principle of dependency inversion

Methods of hacking and protecting web applications
Creating and protecting against SQL injection
CSRF attacks and defense with a one-time token
XSS attacks and protection
Principles of password protection and updating

Advanced features of MySQL
Indexing
Transactions
Triggers

Working with Docker
Images and containers
Linking containers into a single network
Running a project through a container
Building multiple containers with docker-compose

Testing code with PHPUnit
Creating a unit test
Running multiple Unit tests
Principles of TDD (test driven development)