Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Lets play with Symfony2

9,782 views

Published on

Published in: Technology
  • Be the first to comment

Lets play with Symfony2

  1. 1. Let’s play with Symfony2 Noël GUILBERT
  2. 2. Symfony2 introduced a lot a new features, let’s discover some of them: • Dependency Injection Container • The form framework • Doctrine2 integration
  3. 3. Dependency Injection Container • Dependency Injection Container –a way to organize dependencies –Define services services: zend.translator: class: User arguments: [@user.storage] user.storage: class: SessionStorage
  4. 4. • How to use it in a Symfony2 project ?
  5. 5. • 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.)
  6. 6. • Create your own service –Define your services: # src/Bundle/TwitterBundle/Resources/config/user.yml parameters: twitter.username: ~ twitter.password: ~ services: twitter: class: Twitter arguments: [%twitter.username%, %twitter.password%]
  7. 7. • Create the extension class # src/Bundle/TwitterBundle/DependencyInjectionContainer/TwitterExtension.php
  8. 8. • Load your service # src/Bundle/TwitterBundle/DependencyInjectionContainer/TwitterExtension.php
  9. 9. • Enable the extension –Add these lines in the application config.yml file: # hello/config/config.yml twitter.twitter: username: noelguilbert password: mysecretpassword
  10. 10. • That’s all, the service is now available:
  11. 11. The Form Framework • A brand new piece of code • A layer on top of the domain models • Allows you to easily create HTML forms
  12. 12. Your first form
  13. 13. Write a simple Request class
  14. 14. Let’s add some validators
  15. 15. And you are ready to use it!
  16. 16. Doctrine 2 integration • Fully integrated: – DBAL – ORM – MongoDb mapper – Migrations
  17. 17. DBAL: configure your database connection
  18. 18. 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’
  19. 19. ORM: persisting and retrieving entities • An Entity is a regular PHP class that has been mapped to Doctrine 2
  20. 20. ORM: Defining entities • Entities can be mapped with: • Regular PHP class • XML Definition schemas • YML Definition schemas
  21. 21. 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
  22. 22. What’s next ?
  23. 23. Questions? Noël GUILBERT noel.guilbert@sensio.com Sensio S.A. 92-98, boulevard Victor Hugo 92 115 Clichy Cedex FRANCE Tél. : +33 1 40 99 80 80 www.sensiolabs.com - www.symfony-project.org - www.noelguilbert.com

×