Symfony Certification
Are you a professional web developer? Do you master Symfony? Do you want your expertise or your team to gain recognition? Then, there's just one thing to do next: the Symfony Certification!
Take the exam online from the comfort of your own home or work office and join the exclusive community of certified Symfony developers.
Check out the Frequently Asked Questions about this exam.
- 75 questions
- 15 topics
- 90 minutes
- In English
Exam Topics
NOTE: The Symfony 7 Certification exam only includes questions about Symfony 7.0 and not about Symfony 7.1, 7.2, 7.3 and 7.4 versions.
-
PHP
- PHP API up to PHP 8.2 version
- Object Oriented Programming
- Namespaces
- Interfaces
- Anonymous functions and closures
- Abstract classes
- Exception and error handling
- Traits
- PHP extensions
- SPL
-
HTTP
- Client / Server interaction
- Status codes
- HTTP request
- HTTP response
- HTTP methods
- Cookies
- Caching
- Content negotiation
- Language detection
- Symfony HttpClient component
-
Symfony Architecture
- Symfony Flex
- License
- Components
- Bridges
- Code organization
- Request handling
- Exception handling
- Event dispatcher and kernel events
- Official best practices
- Release management
- Backward compatibility promise
- Deprecations best practices
- Framework overloading
- Release management and roadmap schedule
- Framework interoperability and PSRs
- Naming conventions
-
Controllers
- Naming conventions
- The base AbstractController 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
- Argument value resolvers
-
Routing
- Configuration (only YAML and PHP attributes)
- 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
- Twig syntax up to 3.8 version
- 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 (built-in and custom)
- 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 (only with YAML and PHP attributes)
- Service decoration
- Tags
- Semantic configuration
- Factories
- Compiler passes
- Services autowiring
- Service locators
-
Security
- Authentication
- Authorization
- Configuration
- Providers
- Firewalls
- Users
- Password hashers
- Roles
- Access Control Rules
- Authenticators, Passports and Badges
- 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
- Profiler object
- Framework objects access
- Client configuration
- Request and response objects introspection
- PHPUnit bridge
- Handling legacy deprecated code
-
Miscellaneous
- Configuration (including DotEnv and ExpressionLanguage components)
- Error handling
- Code debugging
- Deployment best practices
- Cache, Process and Serializer components
- Messenger component
- Mime and Mailer components
- Filesystem and Finder components
- Lock component
- Web Profiler, Web Debug Toolbar and Data collectors
- Internationalization and localization (and Intl component)
- Runtime component
- Clock component
NOTE: The Symfony 6 Certification exam only includes questions about Symfony 6.0 and not about Symfony 6.1, 6.2, 6.3 and 6.4 versions.
-
PHP
- PHP API up to PHP 8.1 version
- Object Oriented Programming
- Namespaces
- Interfaces
- Anonymous functions and closures
- Abstract classes
- Exception and error handling
- Traits
- PHP extensions
- SPL
-
HTTP
- Client / Server interaction
- Status codes
- HTTP request
- HTTP response
- HTTP methods
- Cookies
- Caching
- Content negotiation
- Language detection
- Symfony HttpClient component
-
Symfony Architecture
- Symfony Flex
- License
- Components
- Bridges
- Code organization
- Request handling
- Exception handling
- Event dispatcher and kernel events
- Official best practices
- Release management
- Backward compatibility promise
- Deprecations best practices
- Framework overloading
- Release management and roadmap schedule
- Framework interoperability and PSRs
- Naming conventions
-
Controllers
- Naming conventions
- The base AbstractController 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 & attributes/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
- Twig syntax up to 3.3 version
- 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
- Service decoration
- Tags
- Semantic configuration
- Factories
- Compiler passes
- Services autowiring
-
Security
- Authentication
- Authorization
- Configuration
- Providers
- Firewalls
- Users
- Password hashers
- Roles
- Access Control Rules
- 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
- Profiler object
- Framework objects access
- Client configuration
- Request and response objects introspection
- PHPUnit bridge
- Handling legacy deprecated code
-
Miscellaneous
- Configuration (including DotEnv and ExpressionLanguage components)
- Error handling
- Code debugging
- Deployment best practices
- Cache, Process and Serializer components
- Messenger component
- Mime and Mailer components
- Filesystem and Finder components
- Lock component
- Web Profiler, Web Debug Toolbar and Data collectors
- Internationalization and localization (and Intl component)
- Runtime component
NOTE: The Symfony 5 Certification exam only includes questions about Symfony 5.0 and not about Symfony 5.1, 5.2, 5.3 and 5.4 versions.
-
PHP
- 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
-
HTTP
- Client / Server interaction
- Status codes
- HTTP request
- HTTP response
- HTTP methods
- Cookies
- Caching
- Content negotiation
- Language detection
- Symfony HttpClient component
-
Symfony Architecture
- Symfony Flex
- License
- Components
- Bridges
- Code organization
- Request handling
- Exception handling
- Event dispatcher and kernel events
- Official best practices
- Release management
- Backward compatibility promise
- Deprecations best practices
- Framework overloading
- Release management and roadmap schedule
- Framework interoperability and PSRs
- Naming conventions
-
Controllers
- Naming conventions
- The base AbstractController 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
- Service decoration
- 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
- Configuration (including DotEnv and ExpressionLanguage components)
- Error handling
- Code debugging
- Deployment best practices
- Process and Serializer components
- Messenger component
- Mime and Mailer components
- Filesystem and Finder components
- Lock component
- Web Profiler, Web Debug Toolbar and Data collectors
- Internationalization and localization (and Intl component)
NOTE: The Symfony 4 Certification exam only includes questions about Symfony 4.0 and not about Symfony 4.1, 4.2, 4.3 and 4.4 versions.
-
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
NOTE: The Symfony 3 Certification exam only includes questions about Symfony 3.0 and not about Symfony 3.1, 3.2, 3.3 and 3.4 versions.
-
PHP and Web Security
- PHP 5.3 to PHP 5.6 API
- 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 Standard Edition
- License
- Components
- Bundles
- 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
-
Bundles
- Naming conventions
- Code organization
- Controllers
- The views
- The resources
- Overriding default error pages
- Bundle inheritance
- Event dispatcher and kernel events
- Semantic configuration and compiler passes
-
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