Web Development with Symfony3培训
Object Oriented Programming
Classes and objects
Properties and methods
Constructor and destructor methods
Class inheritance
Attributes and methods scopes (visibility)
Error handling with exceptions
Namespaces
Introducing the Symfony famework
Introducing the Symfony framework and its ecosystem
Installing the Symfony « Standard Edition Distribution »
Discovering the Symfony project architecture (application, bundles, libraries, bundles etc.)
Understanding the HTTP request processing workflow
Understanding the concept of environment (development, production and testing)
Introducing the coding and files naming conventions
Discovering the concept of a « Bundle »
Debugging the Code
Getting help from the « Web Debug Toolbar »
Introspecting the recorded logs
Profiling HTTP requests thanks to the « Web Profiler » application
Spotting problems thanks to explicit errors and exceptions stack traces
Using the Debug and VarDumper components features
Configuring the application
Comparing the supported built-in configuration format: XML, YAML and PHP
Configuring the application thanks to global parameters
Configuration application’s routes and URLs with annotations
Overriding the configuration defined by a built-in or third-party « bundle »
Generating Contents for the End User
Introducing the Twig templates engine
Comparing Twig and raw PHP templating strategies
Accessing global variables from Twig templates (request, session, user)
Using tags, filters and function to generate and format contents in a Twig template
Making templates truly extensible thanks to the template inheritance feature
Splitting templates into smaller templates chunks to avoid code duplications
Rendering a Symfony controller from within a Twig template
Generating URLs based on the application’s routes configuration
Rendering Symfony forms with custom Twig view helpers
Developping Controller and Analyzing the Request
Designing a controller class with its action methods
Mapping URL patterns to Symfony controllers thanks to annotations
Generating raw responses and Twig templates based responses
Accessing client’s information from the Request object
Reading and writing session data
Reading and writing cookies data
Triggering a 404 error page when the resource is not found
Triggering an internal redirect to another controller to avoid code duplications
Redirecting the user to another page
Interacting with the End User thanks to Forms
Discovering the « Form » component
Designing and processing simple web forms
Adding validation constraints on submitted form fields’ data
Prototyping the form rendering thanks to Twig view helpers
Gathering the form submitted data and processing them
Sending the form validated and filtered data by e-mail to some recipient
Internationalizing and Localizing the User Interface
Discovering the « Translation » component
Changing the default user’s locale
Defining custom abstract translation keys in Twig templates
Dealing with dynamic translations including pluralized sentences
Dependency Injection and Service Container
Understanding the dependency injection principle
Getting started with the Symfony service container
Listing all built-in Symfony services thanks to the command line tools
Registering new custom business services in the dependency injection container
Accessing a registered service from the service container
Creating and accessing global configuration parameters from the container
Contracting a Quality Insurance with Automated Tests
Discovering the PHPUnit tests automation framework
Understanding the goals of automating tests (unit and functional tests)
Configuring an automated tests suite
Designing and executing a unit tests suite
Designing and executing a functional tests suite
Generating code coverage reports
Interacting with the End User and Forms
Designing and processing web forms
Automating form rendering with Twig view helpers
Customizing form rendering with built-in and custom Twig form themes
Configuring form field types as services
Applying built-in validation constraint rules on submitted data
Applying custom validation constraint rules on submitted data
Contextualizing the data validation thanks to validation groups
Restricting Access to Secured Areas of the Application
Getting started with authentication and authorization principles
Securing some application’s pages thanks to a form based authentication strategy
Implementing the Security Guard sub component to handle authentication
Setting up an access control policy based on user’s roles
Testing user’s permissions from a controller and a Twig template
Registering custom authorization rules thanks to the security « voters »
Improving Application Performances with HTTP Caching and ESI
Getting started with the HTTP caching workflows
Discovering the different kind of cache systems
Comparing the expiration and validation cache strategies
Applying expiration and validation cache constraints to generated web pages
Caching page fragments thanks to the ESI technology (« Edge Side Includes »)
Installing and configuring the Symfony’s built-in reverse-proxy cache
Querying a Relational Database System with Doctrine
Discovering the basics of the Doctrine ORM
Understanding the concepts of « entities » and « repositories »
Automating PHP classes and SQL queries code generation with Doctrine
Persisting data to the database thanks to the Doctrine ORM entity manager
Fetching data back from the database thanks to Doctrine
Building and executing custom SQL queries thanks to the Doctrine Query Builder object