Fabien Potencier
symfony
symfony 1.1 goodness
Who am I?
•  Founder of Sensio
– Web Agency
– Since 1998
– 45 people
– Open-Source Specialists
– Big corporate customers
•  Creator and lead developer of symfony
symfony
•  PHP Web framework
•  Based on
– 10 years of Sensio experience
– Existing Open-Source projects
•  MIT license
•  Documentation is Open-Source
•  Great community
Maintainability
Standardization
Faster & Better
« entreprise » version
Version 1.0 released early 2007
– Maintained for 3 years (early 2010)
– ~1 release a month (1.0.16 now)
• Bug and security fixes, compatibility with
new PHP versions fixes
• No new features (even small ones)
• Upgrading is simple and safe
Version 1.1 to be released this month
– Maintained for 1 year
– Same release cycle as 1.0
Roadmap
– Version 1.2 Q4 2008
– Version 1.3 Q1 2009
symfony is a set of cohesive
but decoupled classes
symfony platform
http://localhost/index.php!
http://localhost/index.php?name=Fabien!
Hello Fabien
Hello World
http://localhost/hello/Fabien!
Hello Fabien
http://localhost/index.php?name=Fabien!
http://localhost/index.php/hello/Fabien!
sfEventDispatcher
// sfPatternRouting!
$callback = array($this, ’filterParameters‘);!
$dispatcher->connect(’request.filter_parameters‘, $callback);!
// sfWebRequest!
$event = new sfEvent($this, ‘request.filter_parameters’);!
$dispatcher->filter($event, $parameters);!
•  sfPatternRouting and sfWebRequest are decoupled
•  « Anybody » can listen to any event
•  You can notify existing events or create new ones
Some events
application.log
application.throw_exception
context.load_factories
request.filter_parameters
user.change_culture
controller.page_not_found
response.filter_content
view.cache.filter_content
*.method_not_found
symfony platform
the symfony MVC framework
is based on
the symfony platform
symfony 1.1
new features and enhancements
CLI
•  Rewritten from scratch
– OOP
– Arguments and options management
– Extensible
– Built-it help
Tests
•  Better m2m support in fixtures
•  File upload support
•  CSS3 selectors
•  New shortcuts (isUserCulture, isRequestFormat)
m2m fixtures
m2m fixtures
m2m fixtures
File upload support
CSS3 selectors
Forms
•  OOP
•  Flexible and customizable
•  MVC based (Validator, Widget, Form)
•  Easy to embed forms
•  Secure
•  Fully integrated with Propel and Doctrine
•  Useable without symfony
Propel Form
The model is introspected to generate form classes
Native multi-format support
•  A request has a format (HTML by default)
css, js, xml, atom, json, …
•  Same controller and model
•  Different templates (layouts/partials/components)
•  Easy to implement a new format (iPhone)
http://www.symfony-project.org/cookbook/1_1/en/iphone!
xml
json
css
js
text/xml, application/xml, application/x-xml
application/json, application/x-json
text/css
application/javascript, application/x-javascript
Questions?
Sensio S.A.
26, rue Salomon de Rothschild
92 286 Suresnes Cedex
FRANCE
Tél. : +33 1 40 99 80 80
Contact
Fabien Potencier
fabien.potencier@sensio.com
http://www.sensiolabs.com/ http://www.symfony-project.org/

symfony 1.1 goodness (Dutch PHP Conference 2008)