Upload
lamliem
View
217
Download
0
Embed Size (px)
Citation preview
Symfony2 introduced a lot a new features, let’s discover some of them:
• Dependency Injection Container• The form framework• Doctrine2 integration
Dependency Injection Container
• Dependency Injection Container–a way to organize dependencies–Define services
services:zend.translator:class: Userarguments: [@user.storage]
user.storage:class: SessionStorage
• Create your own service–Symfony2 offer a simple and effective way to create
services
– It’s called an extension
–An extension can receive some configuration parameter from the application config.yml file (i.e. databases connections, passwords, etc.)
• Create your own service–Define your services:
# src/Bundle/TwitterBundle/Resources/config/user.ymlparameters:
twitter.username: ~twitter.password: ~
services:twitter:class: Twitterarguments: [%twitter.username%, %twitter.password%]
# src/Bundle/TwitterBundle/DependencyInjectionContainer/TwitterExtension.php
• Create the extension class
• Enable the extension–Add these lines in the application config.yml file:
# hello/config/config.ymltwitter.twitter:username: noelguilbertpassword: mysecretpassword
The Form Framework
• A brand new piece of code• A layer on top of the domain models• Allows you to easily create HTML forms
DBAL command lines
• Create configured database$ php console doctrine:database:create
• Drop configured database$ php console doctrine:database:drop
• Query the database$ php console doctrine:sql:query ‘SELECT * FROM User’
ORM: persisting and retrieving entities
• An Entity is a regularPHP class that has been mapped to Doctrine 2
ORM: Defining entities
• Entities can be mapped with:
• Regular PHP class• XML Definition schemas• YML Definition schemas
ORM: command lines• Convert Doctrine1 schemas to Doctrine 2:
$ php console doctrine:mapping:convert-d1-schema
• Generate entities:$ php console doctrine:generate:entities
• Create or update the database schema$ php console doctrine:schema:create$ php console doctrine:schema:update
• Load fixtures$ php console doctrine:schema:update
Questions?Noël GUILBERT
Sensio S.A.92-98, boulevard Victor Hugo
92 115 Clichy CedexFRANCE
Tél. : +33 1 40 99 80 80
www.sensiolabs.com - www.symfony-project.org - www.noelguilbert.com