A week of symfony #204 (22->28 November 2010)

Symfony2 development activity exploded this week with thousands of changes, tweaks and additions across most of its components: twig bundle, forms and dependency injection improved their performance; the Output Escaper component was removed; and lots of methods were renamed to follow the new naming convention. Symfony2 is gaining momentum week by week and therefore, the release of PR4 version is around the corner and the first beta version could be published before the end of the year.

Development mailing list

symfony 1 development highlights


  • r31471: [1.3, 1.4] changed the default value for session_cache_limiter to 'null'

Symfony2 development highlights


  • 1bbdb5e: [Form, FrameworkBundle, TwigBundle] refactored the PHP and Twig templating layer. Support for theming in PHP templates has been dropped
  • 6a14846: [Validator, Form] removed support for match-all group *
  • 940ce9a: [Validator] group "Default" is now propagated to validated references when group sequences are validated
  • 46145d8: [Validator] fixed exception thrown in Valid constraint to be thrown only when the options are not empty
  • a0f9331, b3ae62e, 7a255fe, db3e12b: fixed tests breaking on windows
  • ac0081f: switched doctypes to HTML5
  • e204a18: [DoctrineBundle] made the task works with vendor bundle namespace
  • d9239d1: fixed doctrine command getBundleMetadatas function
  • b6923dd: changed Cache-Control default value behavior. The PHP native cache limiter feature has been disabled as this is now managed by the HeaderBag class directly instead (see commit for details)
  • 333504a: [OutputEscaper] fixed output escaping when a variable was decorated with SafeDecorator and passed to another part of the system where decoration also happens on the same un-decorated variable
  • 681ce7f: [Form] fixed FieldGroup::hasErrors() does not return true if only children have errors
  • 6176063: [TwigBundle] fixed variable reference in the errors block of the form.twig template
  • a71cad4: [Validator] added @validation:GroupSequence to annotation driver
  • 68cebd6: [Validator] Group sequences must now always contain the group and never the group Default since that group is redefined by the group sequence
  • e0d6aad: [Form, FrameworkBundle, TwigBundle] introduced class FieldError to wrap form errors
  • 17c500e, e3551b5: [TwigBundle] added a yaml filter/encoder
  • 84cf569: [TwigBundle] fixed include tag to reflect the new syntax from Twig
  • a323dd0: [TwigBundle] added filters from Code helpers
  • cbb22b4: [Templating] added an Engine::load() method
  • 67f6889: [TwigBundle] added support for Twig_Template instances as argument to include tag
  • 21f088d: [DependencyInjection] replaced assertEquals(spl_object_hash()) with assertSame
  • 6fa943a: moved Exception and WebProfiler templates to Twig
  • 97d4dce: added the ability to configure additional web profiler templates
  • 381347b: [WebProfilerBundle] fixed data collector loading (they should always be loaded as you can enable the web profiler without the web debug toolbar)
  • a79ed13: [Routing] removed the variable_prefixes and variable_regex Route options
  • f9e830c: [Form] added hook method preprocessData() to FieldGroup
  • d95d336: [HttpFoundation] fixed class Request to convert empty files to NULL
  • f2f0d04: [Form, FrameworkBundle] fixed default values of CheckboxFields
  • e0aa3f3: [Form] improved FileField to store files in a temporary location in case validation fails
  • 5b056b2: refactored web profiler template definitions to make it easier for bundle developers to add their templates
  • ad68092: removed the OutputEscaper component, added escape mechanism in the Templating Engine class
  • 60bbb8f: [DependencyInjection] optimized compiled containers: removed the __call() method in Container, removed the $shared variable in the dumped Container classes and optimized the PHP Dumper output
  • 944d91c: made some method name changes to have a better coherence throughout the framework
  • 6ab277e: added a LazyLoader for the routing
  • 44b8ee3: added more classes in the class cache
  • dfe8bb9: added more classes to the bootstrap file
  • 1e983a6: moved static Form configuration to a new class (avoid loading 7 classes just to enable CSRF -- even when no form is present in the page)


New job postings

New plugins

  • majaxMarkdown: provides a Markdown editor for Symfony, and related rendering tools.
  • majaxPheanstalk: Tools for integrating with Beanstalkd from within Symfony.
  • sfContentArchive: easily generates a 'blog-style' content archive in your symfony application.
  • sfNubioAddonFunctions: adds a helper with multiple functions that perform commonly used tasks.
  • sfOPTView: allows the use of Open Power Templates in Symfony.
  • sfPaymentWebMoney: allows you to interact with WebMoney (it's based on sfPaymentPlugin).
  • sfAdminAjaxTheme: ajaxifies symfony admin generator.
  • sfWidgetWordCounter: a jQuery word counter that counts the words in a given input field and displays the counter in a html tag.

Updated plugins

  • sfThrift:
    • fixed bug in TSocketPool
    • moved server transport classes to its own directory
  • isicsBreadcrumbs:
    • added symfony 1.3 and 1.4 compatibility
  • sfDoctrineRestGenerator:
    • fixed routes names in order to match the documentation
    • added some explanations about the API location
    • added a YAML serializer
    • added the formats_strict option
    • improved the deserialization abstraction
    • improved the documentation
    • added cleanupParameters() method to avoid code duplication
    • added the capacity to serialize single objects
    • improved the performance of the XML serializer
    • added a basic show action
    • added setFieldVisibility() and configureFields() methods in order to share code between index and show actions
    • fixed executeUpdate() so that the content is not a parameter of the request but the content of the PUT request
    • have the XML serializer return a PHP array
    • allow to create or update related objects in the very same request
    • updated documentation
    • enabled the show route by default
    • have executeDelete() refer to the primary key and not systematically the previously hardcoded "id"
    • fixed the way relation fields are hidden, particularly in the case of many-to-many relationships
    • fixed warning when there are no related objects for a n-n relation delcared in the configuration key
  • sfDoctrinePoll:
    • added the Poll for the question into the admin generator
  • sfAmf:
    • updated Doctrine template
  • pmSuperfishMenu:
    • added options managements
    • added autoinclusion of stylesheets and javascripts feature depending on selected options
    • added _authenticated_ menu condition
  • pmPropelGenerator:
    • added the pre_list partial
  • sfHttpHeaderCache:
    • added a new session storage class based on sfCacheSessionStorage for selectively enabling/disabling the cache based on the "no_session" parameter of a given route
  • sfDoctrineRestBasic:
    • added sfDoctrineRestBasicRoute which cleans up the routing by extending the sfRequestRoute to handle the requested actions
    • namespaced the helper classes to stop potential issues
    • added a very important executePut method
    • cleaned up logger code kill multiple instantiation
  • ddOnlineStore:
    • added the color option in the products
  • idlErrorManagement:
    • added a show error page in the admin module
    • switched to use the Doctrine Abstraction layer when saving PHP_errors to be compatible with any database engine
  • sfTangoIcons:
    • added a new animation function
    • updated documentation
  • apostrophe:
    • fixed apostrophe bug that couldn't find the taggable script for media items
    • renamed our richtext and date/time widgets and removed obsolete versions to avoid conflicts with other parties' Symfony plugins (especially sfFormExtrasPlugin)
    • always disable filters for tag admin (otherwise it breaks in its default configuration)
    • added app.yml options to optionally disable the is_active and password fields in user admin, removing the need for separate admin gen modules just because you have Shibboleth or LDAP auth
    • fixed a bug in executeMoveSlot that prevented correct permission checking
    • fixed a bug in executeDeleteSlot that ignored aTools::getAreaOptions
    • password, is_active and permissions fields in user admin can be disabled via app.yml for convenience
    • fixed the description wasn't shown when image was set to false
    • moved the disqus code into the globalJavascripts partial (it should live there, and it keeps layout.php clean)
    • added the escaping stuff to the top of the defaultTemplate in the button thing
    • implemented use_bundled_javascripts similar to use_bundled_stylesheets, allowing you to specify exactly which javascripts you want to override
    • styling fix for validation errors on date and time widgets in event form
  • apostropheBlog:
    • fixed bug where categories and tags with periods would cause mayhem with the routing system
    • fixed a routing problem involving tags + categories with periods
    • fixed a blog migration bug unsetting categories array
    • end date/time is now validated so you can't set the end prior to the beginning
  • sfDoctrineActAsCommentable:
    • made actions and components easier to override
    • removed groupBy in retrieveCommentCountForObject
  • apostropheFormBuilder:
    • form builder plugin migrations for moving from pkFormBuilderPlugin

New symfony bloggers

They talked about us

Help the Symfony project!

As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.

A week of symfony #204 (22->28 November 2010) symfony.com/blog/a-week-of-symfony-204-22-28-november-2010

Tweet this


Great News :-)

Hope it will come a great Tutorial like Jobeet for Symfony2 :-)
So much for end of the year full release
Ryan - the official release date is the Symfony Paris conference.

Seeing the evolution that Symfony2 has gone through the last couple of months or so, I am not unhappy with this.

Comments are closed.

To ensure that comments stay relevant, they are closed for old posts.