symfony has evolved since 2006. From the release of the initial symfony code to symfony 2.0, and all of the community milestones along the way. The focus of this talk is on how application development has evolved and how symfony and the community have kept pace over the years.
partnership to launch services in USA Opening an office in San Francisco Project Consulting Best Practices Consulting / Audits Security Audits Training from open source experts symfony 1, Symfony 2, Doctrine 1, Doctrine 2, PHPUnit
in October 2005 Built from years of real world experience in developing web applications Built to improve developer productivity by solving common web problems
Initial tutorials / documentation Support channels on IRC, Forum, Mailing lists Established a core team with distinct leadership from Fabien A way to contribute back on Trac - feedback, bugs, patches Symfony 0.x
of the event dispatcher Introduction of new sub frameworks Forms / Caching / Tasks Swiftmailer Refactored major components Configuration, Routing, I18n, Admin Generator, Plugins Added support for Doctrine ORM
Core team has dedicated release / community managers The community gives back to symfony Plugins + Patches + Documentation + Translations Case studies + Evangelism Community events Our first official meetup at SymfonyCamp
of symfony Removed deprecated code (kept in 1.3 instead) Long Term Support A healthy community supports itself Active mailing lists where users support each other Documentation - Translated into six languages Events - SymfonyLive + SymfonyDay
and flexibility PHP 5.3 - Support for namespaces and lambdas Better Development Model A collection of independent components A framework for frameworks / full-stack framework Better Community Github enables collaboration + contributions
Dispatcher Design by interface for a stable API Less Magic = Favor explicit over implicit Don’t reinvent the wheel Doctrine 2 (DBAL / ORM / ODM) Zend Framework 2 (Logger) PHPUnit 3.5.x
tasks app :routes Displays current routes for an application cache :clear Clears the cache (cc) configure :author Configure project author :database Configure database DSN doctrine :build Generate code based on your schema :build-db Creates database for current model (doctrine:create-db) :build-filters Creates filter form classes for the current model :build-forms Creates form classes for the current model :build-model Creates classes for the current model :build-schema Creates a schema from an existing database :build-sql Creates SQL for the current model :clean-model-files Delete all generated model classes for models which no longer exist in your YAML :create-model-tables Drop and recreate tables for specified models. :data-dump Dumps data to the fixtures directory :data-load Loads YAML fixture data :delete-model-files Delete all the related auto generated files for a given model name. :dql Execute a DQL query and view the results :drop-db Drops database for current model :generate-admin Generates a Doctrine admin module :generate-migration Generate migration class :generate-migrations-db Generate migration classes from existing database connections :generate-migrations-diff Generate migration classes by producing a diff between your old and new schema. :generate-migrations-models Generate migration classes from an existing set of models :generate-module Generates a Doctrine module :generate-module-for-route Generates a Doctrine module for a route definition :insert-sql Inserts SQL for current model :migrate Migrates database to current/specified version generate :app Generates a new application :module Generates a new module :project Generates a new project :task Creates a skeleton class for a new task
Lists commands assets :install cache :warmup Warms up an empty cache doctrine :ensure-production-settings Verify that Doctrine is properly configured for a production environment. doctrine:cache :clear-metadata Clear all metadata cache for a entity manager. :clear-query Clear all query cache for a entity manager. :clear-result Clear result cache for a entity manager. doctrine:data :load Load data fixtures to your database. doctrine:database :create Create the configured databases. :drop Drop the configured databases. doctrine:generate :entities Generate entity classes and method stubs from your mapping information. :entity Generate a new Doctrine entity inside a bundle. :proxies Generates proxy classes for entity classes. :repositories Generate repository classes from your mapping information. doctrine:mapping :convert Convert mapping information between supported formats. :import Import mapping information from an existing database. :info Show basic information about all mapped entities. doctrine:query :dql Executes arbitrary DQL directly from the command line. :sql Executes arbitrary SQL directly from the command line. doctrine:schema :create Processes the schema and either create it directly on EntityManager Storage Connection :drop Drop the complete database schema of EntityManager Storage Connection :update Processes the schema and either update the database schema of EntityManager Storage init :bundle router :debug Displays current routes for an application :dump-apache Dumps all routes as Apache rewrite rules