- Home
- Montreal 2012
- Sessions
The Symfony2 framework adoption is becoming bigger and bigger and most of Symfony developers would like to know more about advanced features of the framework. This special Confoo workshop will help you dive deeply in advanced features and best practices you probably don't master. We will especially focus on demystifiing and experimenting the famous dependency injection principle and the associated Container object. Then, we will have a closer look at the security layer that provides authentication and authorization mechanisms with a fined grained ACL system. This session will also introduce some of the key concepts of HTTP caching using a reverse proxy like Varnish and handling Edge Side Includes. Of course, you will discover how to test the application to ensure its reliability and long lasting. Depending on the remaining time at our disposal, we will focus on some other cool features of the framework like forms handling, validation, internationalization, Twig extension or database intregration. To make this workshop the most efficient and practical for every one, we will hack on an existing Symfony2 application instead of starting from scratch. Don't forget to bring your laptop with you!
Quick tour of Symfony2 basics (Day 1)
- The View Controller architecture
- Handling the HTTP request
- Mapping URLs to Controllers
- Rendering Twig templates
- Understanding configuration files
Mastering Dependency Injection (Day 1)
- Introduction to the dependency injection principle
- Registering new services with an XML configuration file
- Best practices ton configure global services
- Overriding a service definition
Testing the application with PHPUnit (Day 1)
- Testing the low level API with unit tests
- Testing features with functional tests
- Filtering the Response with the Crawler object
Handling and validating forms (Day 1)
- Designing forms
- Adding validation rules on a PHP object
- Mastering forms templating techniques with Twig
- Managing file uploads
Extending Twig native API (Day 2)
- Creating and registering new Twig extensions
- Adding new Twig global functions
- Adding new Twig filters
Improving performances with HTTP caching (Day 2)
- Introducing expiration and validation models
- Caching contents on the web browser (client side)
- Caching contents in a reverse proxy cache (server side)
- Handling Edge Side Includes (ESI)
Managing authentication & authorization (Day 2)
- Understanding the security layer
- Authenticating users againsts a configuration file or a database
- Designing basic HTTP authentication and a web form authentication
- Restricting access to a resource depending on roles or fine grained permissions
Persisting data to a database (Day 2)
- Designing a data model
- Understanding Active Record and Data Mapper design patterns
- Using an ORM library (Doctrine or Propel)