Symfony2 achieved this week a remarkable milestone: more than 500 pull requests have been submitted by tens of developers around the world. In addition, Symfony2 added some cool new features, such as a cache warmer to improve performance, definition inheritance support for DIC and a complete refactorization of the CSRF protection. Lastly, three new sessions were unveiled for the Symfony Live conferences.
Development mailing list
- Improving the event management
- Symfohub - GitHub-based symfony repositories catalog
- [RFC] New Event container.dumped
- [Symfony2] [RFC] EventDispatcher method signature changes
- [Symfony2] RFC: Supporting Doctrine2 in Form/Validator
- Proposed removal of DI extension-consumed parameters from DI extension resources
- [Symfony2] Problems with the design of DI extensions
- [Symfony2] Third-party dependencies in Components
- False positive for sfValidatorEmail
- [RFC] Allow multiple extensions with same name (Alias + Method = Unique Key)
- [RFC] Argument mapping in service definitions
symfony 1 development highlights
- r31890, r31893: [1.3, 1.4] fixed sfDomCssSelector on class names with hyphens
- r31895: [1.3, 1.4] fixed _auto_link_urls() does not pick up URLs with complex fragments (as per RFC3986)
- r31927: [1.3, 1.4] fixed "expired" tests
- r31928: [1.3, 1.4] copied more values into a cachable partial's cloned response when the partial is marked as contextual in cache.yml
Symfony2 development highlights
- 9310eea: optimized templating layer (you must now explicitly register the templating engine you want to use)
- 1c11d81: made all event listeners lazy loaded (the register() method on all listeners has been removed and instead, the information is now put directly in the DIC tag)
- 0144dd8: added synthetic attribute to definitions (this attribute can be used to hint that the service is being injected dynamically at runtime, and not constructed by the DIC)
- 49793c2: fixed event dispatcher
- ca8c790: [Routing] added setContext() method to both matchers and generators
- d0b4bfc: added a cache warmer sub-framework
- 206b49a, 2860c26, 2499ac4, 03e51cc: [FrameworkBundle] added a cache warmer to pre-compute template paths
- 8f6e8a4: [TwigBundle] added a cache warmer to generate all Twig templates cache
- edb11ad: [FrameworkBundle] added a cache warmer for the router
- 14e4b97: [HttpFoundation] fixed FileBag to handle sub-requests
- 2bc6197: [DoctrineBundle] fixed bug in Auto Proxy Generation introduced with config merge refactoring
- f29a5f7: made the DI config validation more strict to catch errors early
- 79dce16: made a performance optimization (requires the modification of autoload.php file)
- 561a3e4: [HttpKernel] made another speed optimization
- 4d4eec6, 18c611a, 3eadf73: [DoctrineBundle] implemented Proxy CacheWarmer
- 6f5c2e2: [Serializer] abstract classes now implement their respective interfaces
- 08f8b22: [Serializer] added hasEncoder and getEncoder to the SerializerInterface
- d341e8b: [Form] adding PHPDoc to many Field objects; added empty_value option on CountryField, LanguageField, LocaleField, and TimezoneField; dded missing date_pattern to DateTimeField; made the currency option on MoneyField required
- 7848a7c: [Form] refactored CSRF implementation to be reusable and to work correctly with the session service
- 0239d62: [Form] made the CSRF provider service public so that it can be used without forms
- d017970: [Form] implemented FormFactory::buildDefault() to ease the use of the new CSRF implementation without the DIC
- 0e66e38: added two interfaces: EventInterface and EventDispatcherInterface
- 6bbfffb: added path, and domain to clearCookie() in accordance with RFC 2109, and RFC 2965
- 40dec88: added helper method to normalize keys
- fb4e7fb, 36dcce4: added KernelInterface
- 8b62df7: changed the EventDispatcher and Event interfaces (the three notification methods do not return the Event instance anymore: notify() does not return anything, notifyUntil() returns the returned value of the event that has processed the event, filter() returns the filtered value)
- db2f2b1: refactored template name parser to occur independently of the loaders
Documentation
- New IRC Logs 2011-01-27 page
New developers for hire
- Webfit: is an Auckland, New Zealand web development studio with extensive experience in Symfony application development. We specalise in ecommerce websites, web applications and business process automation.
New plugins
- icfbAutocomplete: provides symfony wiget for facebook style autocomplete which can be used in various of situations like sending messages.
- sfGooglePropelLogin: allows a simple login via Google Accounts using OpenID.
- buMixpanel: aims to provide an easy to use integration of mixpanel into your project.
- assetPackages: provides you the ability to group stylesheet and javascript calls into packages that you can easily organise through a simple yaml config file, with a simple dependency system.
- sfGenerateLibFiles: allows you to create model files with a visual tool.
- drKint: basic integration of Kint (http://code.google.com/p/kint/)
- apostropheExtraSlots: extra functionality for Apostrophe in the form of new and alternative slot types.
- lbCart: more than a simple commercial cart, the "cart" of lbCartPlugin will receive any object with behavior (actAs) Cartable. Thus, it can be used for the user to reference contacts, books, movies, and any object present on the site, whether commercial or not.
- sfDoctrineActAsSluggableAttachment: lets you bind an uploaded file to a model and rename the file into a slug version. It also handles thumbnailing of images.
Updated plugins
-
pmPropelGenerator:
- generated excels now are 'fitted to page' when printing
- generated excels now are horizontally centered when printing
- the title of the 'filter form' in every module have been changed to "Show/Hide filters"
- added CustomEditSuccess templates
-
sfPinba:
- refactoring & added sfPinbaScriptNameFilter
- added propel 1.5 logger
- return 'other' by default in operation
- fixed Oracle dsn parsing
-
ExtjsGenerator:
- added check to not add empty fieldsets to the formPanel
- fixed a bug where one to one related tables with the same column name were overriding the main table columns
-
sfAlyssaDoctrineObjectPath:
- added missing where property path
- improved documentation
-
sfDataSource:
- implemented filter feature with doctrine datasource
- updated filter method in DataSourceArray
-
sfGrid:
- implemented basic processing of filtering data
-
sfAlyssaJqGrid:
- implemented filtering feature
-
sfDoctrineActAsTaggable:
- removed a call to stripslashes() on the output of json_encode
-
crBarcode:
- fixed imagewidth and imageheight warning
-
dcReloadedFormExtra:
- added dcWidgetFormJQueryActivator
- fixed 'evaluate_method_extra_params'
-
apostrophe:
- to be sufficiently unique the crc used as an id for the email obfuscation must be based on the username, the domain and the label
- allowed the transition duration to be set as a slideshow option (it still defaults to 300ms)
- removed obsolete columns from apostrophe:migrate
- fixed a bug with Crop when aspect width and height are used
- it is now possible to easily override the way the name of a group is displayed in page settings
- updated the javascript to use .find() when traversing down, and .closest() when traversing up, so that it is both more flexible and more specific
- created a filters icon because it was missing
- updated 'filters' button to have the same treatment as the 'linked accounts' button
- added the css-colors-report task. This task generates a visual report of all CSS colors used in apostrophePlugin/web/css and web/css CSS files
- lots of fixes to apostrophe:migrate-data-from-pkcontextcms and apostrophe:migrate
- fixed a bug in the button slot where you ccouldn't set the "tool" for the richtext
- check formatOnly, then PDF support, not the other way round for performance boost
-
apostropheBlog:
- migrate a_blog_category_user relationships to the new a_category_user table
- migrate a_blog_category_group if it exists
- made blog category migration more tolerant of things like bad foreign keys on the old tables
- apostrophe:migrate now ensures that all blog items' virtual pages have the same categories and tags as the blog items
-
apostropheExtraSlots:
- created the first Extra Slot: the inset image slot lets text wrap around it
They talked about us
- Redpill Linpro And Varnish Software, Gold Sponsors Of Symfony Live (Paris) 2011
- Desarrollo basado en el comportamiento con Symfony
- ValidatorEmailList : valider une liste d’e-mails
- How to test UTF-8 email subject lines in Symfony
- InfoWorld review: Fabulous PHP frameworks
- Fabulous PHP frameworks: Symfony
- Gérer vos cron avec Symfony grâce à sfDoctrineCronManagerPlugin
- Symfohub = symfony + GitHub
- sfPropel16Plugin Is Already There, Didn't You Know?
- Symfony2 : écrire un Helper de vue en 5 étapes
- Getting an extra ‘Invalid’ or other error on your symfony form?
- Easily override i.e. article headlines on a homepage using gjPositionsPlugin
- Novedades en el desarrollo de Symfony2
- Type and boolean columns with Doctrine and Symfony
- File uploader. Reload
- Charger des fixtures au format YML
- Tạo trang web tìm việc bằng Symfony framework
- Symfony: doctrine raw sql, get alphabet from i18n model
- 在symfony1.4中使用utf-8
- Form Validator usando dois campos
- Configuración .htaccess Symfony y WordPress
- [PHP] さくらインターネットでセッションが使用できなくなっていた件
- Getting the best out of Symfony
- Web デベロッパーが知っておくべき、15種類の オープンソース・プロジェクト
- Sencillez de PHP, rapidez y versatilidad de Symfony
- Você conhece o Symfony (PHP) Framework?
- Plugin d’intégration Symfony pour Eclipse
- Symfonyのmigrate機能
- Dependecy Injection: Kontenery Dependency Injection
- Symfony2 : petite séance de prise en main
- III Jornadas Nacionales del Informático 2011
- Sencillez de PHP y Versatilidad de Synfony
- 独自Viewクラスを設定する
- Symfony2 GraphvizでDIコンテナをグラフィカルに表示
- How to create a command (task) in Symfony 2
- sfSagePayPlugin – a work in progress