Symfony 4 project to prepare for symfony certification
https://certification.symfony.com/
PHP and Web Security
- PHP API up to PHP 7.2 version
- Object Oriented Programming
- Namespaces
- Interfaces
- Anonymous functions and closures
- Abstract classes
- Exception and error handling
- Traits
- PHP extensions
- SPL
- Web security (XSS, CSRF, etc.)
HTTP
- Client / Server interaction
- Status codes
- HTTP request
- HTTP response
- HTTP methods
- Cookies
- Caching
- Content negotiation
- Language detection
Symfony Architecture
- Symfony Flex
- License
- Components
- Bridges
- Configuration
- Code organization
- Request handling
- Exception handling
- Event dispatcher and kernel events
- Official best practices
- Release management
- Backward compatibility promise
- Deprecations best practices
Standardization
- Release management and roadmap schedule
- Framework interoperability and PSRs
- Naming conventions
- Coding standards
- Third-party libraries integration
- Composer packages handling
- Development best practices
- Framework overloading
- Semantic versioning
Controllers
- Naming conventions
- The base Controller class
- The request
- The response
- The cookies
- The session
- The flash messages
- HTTP redirects
- Internal redirects
- Generate 404 pages
- File upload
- Built-in internal controllers
Routing
- Configuration (YAML, XML, PHP & annotations)
- Restrict URL parameters
- Set default values to URL parameters
- Generate URL parameters
- Trigger redirects
- Special internal routing attributes
- Domain name matching
- Conditional request matching
- HTTP methods matching
- User's locale guessing
- Router debugging
Templating with Twig
- Auto escaping
- Template inheritance
- Global variables
- Filters and functions
- Template includes
- Loops and conditions
- URLs generation
- Controller rendering
- Translations and pluralization
- String interpolation
- Assets management
- Debugging variables
Forms
- Forms creation
- Forms handling
- Form types
- Forms rendering with Twig
- Forms theming
- CSRF protection
- Handling file upload
- Built-in form types
- Data transformers
- Form events
- Form type extensions
Data Validation
- PHP object validation
- Built-in validation constraints
- Validation scopes
- Validation groups
- Group sequence
- Custom callback validators
- Violations builder
Dependency Injection
- Service container
- Built-in services
- Configuration parameters
- Services registration
- Tags
- Semantic configuration
- Factories
- Compiler passes
- Services autowiring
Security
- Authentication
- Authorization
- Configuration
- Providers
- Firewalls
- Users
- Passwords encoders
- Roles
- Access Control Rules
- Guard authenticators
- Voters and voting strategies
HTTP Caching
- Cache types (browser, proxies and reverse-proxies)
- Expiration (Expires, Cache-Control)
- Validation (ETag, Last-Modified)
- Client side caching
- Server side caching
- Edge Side Includes
Console
- Built-in commands
- Custom commands
- Configuration
- Options and arguments
- Input and Output objects
- Built-in helpers
- Console events
- Verbosity levels
Automated Tests
- Unit tests with PHPUnit
- Functional tests with PHPUnit
- Client object
- Crawler object
- Profile object
- Framework objects access
- Client configuration
- Request and response objects introspection
- PHPUnit bridge
- Handling legacy deprecated code
Miscellaneous
- Error handling
- Code debugging
- Deployment best practices
- Process and Serializer components
- Data collectors
- Web Profiler and Web Debug Toolbar
- Internationalization and localization