A week of symfony #169 (22->28 March 2010)

This week continued the open discussion about the best approach for controllers in Symfony 2. In addition, symfony 1.X branch committed lots of fixes and Propel 1.5 plugin introduced some new features for its admin generator.

Development mailing list

Development highlights

Symfony 1.X branch:

  • r28700: [1.3, 1.4] fixed warnings
  • r28702: [1.3, 1.4] fixed browser to match more closely the behavior of a real browser
  • r28703: [1.3, 1.4] fixed setting of culture in sfI18N constructor
  • r28709: [1.3, 1.4] fixed documentation of template option in editable file widget
  • r28712: [1.3, 1.4] tweaked the check_configuration.php errors to be more explicit about what to do next
  • r28713: [1.3, 1.4] fixed layout.php is required even if you use decorate_with() to use another layout
  • r28714: [1.3, 1.4] fixed caching of 404 pages
  • r28715: [1.3, 1.4] fixed sfProjectOptimizeTask should optimize only enabled modules
  • r28725: [1.3, 1.4] fixed invalid number formatting occurring with currency formats where no explicit negative format was defined (e.g for en_GB)
  • r28761: [YAML] added support for compact inline notation with immediate sub mapping
  • r28785: [1.3, 1.4] fixed sort the parameters in order to compute the cache key the same way when parameters are submited in different order

Symfony 2.X branch:

  • bc9b..8285: [Yaml] added support for compact inline notation with immediate sub mapping
  • c295..0bb2: [Foundation] removed the old class loader
  • 9606..dfec: [RequestHandler] changed the Request constructor signature to be more explicit
  • ba59..e24e: [RequestHandler] fixed coverage annotations in tests
  • c694..e1b6: [DependencyInjection] fixed Container::getService() when the service is empty


  • r28809: [1.3, 1.4] throw exception when routing file cannot be written in doctrine:generate-admin task


  • r28809: [1.3, 1.4] throw exception when routing file cannot be written in doctrine:generate-admin task

...and many other changes

Development digest: 184 changesets, 17 bugs reported, 30 bugs fixed, 3 enhancements suggested, 2 enhancements closed, 3 documentation defects reported, 6 documentation defects fixed, and 5 documentation edits.



  • New plugins
    • sfSvgPlugin: allows you to create svg graphics. Once this plugin is installed you will be able to create graphs and charts, generate dynamic graphs and charts, create basic and advanced svg graphics.
    • sfPropelObjectPathBehaviorPlugin: adds ObjectPath support to Propel (1.5+). This syntax makes it very easy to do sorting and filtering on foreign fields. ObjectPaths are dot-seperated relation-names that relate from one object to another and this behavior translates the objectPaths to table-aliasses.
    • ahAdminGeneratorThemesPlugin: provides two symfony admin generator themes with additional features.
    • sfGridExtjsPlugin: an extension of the sfGridPlugin that uses ExtJS in its formatter to render a grid.
    • vjCodePostalPlugin: this plugin is for french people who need to include ZIP Code (Codes postaux) everywhere.
    • sfSitemapExtendedPlugin: (no description)
    • sfRedisPlugin: provides redis support to symfony (through Predis).
  • Updated plugins
    • swCombinePlugin: fixed name classes, updated documentation
    • sfImageTransformExtraPlugin: added a walkthrough format configuration and scaled image to the README, fixed sfImageSourceHTTP, sfImageSourceDoctrine, sfImageTransformExtraPluginConfiguration, sfImageTransformManager unit tests, implemented test cases for setting view cache and thumbnail removal, enabled caching in fixture project to be able to test setting the view cache, added overlay transformation to test prepareParametersForOverlay(), moved TestRecord to fixtures, added more coverage of sfImageTransformRoute, thumbnail cache class now configurable in settings.yml, removed obsolete factories.yml, fixed GD for transformations, sf_cache_namespace_callable is now dynamically set only for sfImageTransformator module instead of globally which caused sideeffects, setCacheKey callback moved to sfRawFileCache, sfImageRoundedCornersGD now extends sfImageAlphaMaskGD as it is only a specialisation of it and now shares a lot of its code rather than copying it, centralised lots of duplicate code in two abstract classes (sfImageSourceLocalAbstract and sfImageSourceRemoteAbstract)
    • sfPropel15Plugin: added ability to provide a custom sort method in the admin generator list, documented new generator features, added the with list setting to the admin generator, added an easy way to filter the admin list view with get parameters, added yet another shortcut in admin list view, added an easy way to add a custom filter in the admin generator list view, using PropelQuery for sfWidgetFormPropelChoice, added a way to override filters parameter in generator.yml
    • csDoctrineActAsAttachablePlugin: do not add prototype.js file when jQuery helper is being used
    • mgI18nPlugin: fix source management if the source contains html tags
    • fzDoctrinePagedRoutePlugin: added post to _show route methods
    • sfForkedDoctrineApplyPlugin: added template to show while logged user resets password, moved all sfApply actions to the sfApplyActionsLibrary class to allow override of actions, added reCaptcha support
    • sfErrorNotifierPlugin: made the code a bit more robust, updated documentation
    • sfDoctrineEditableComponentPlugin: brand new plugin version, everything changed, refactored plugin, enabled ckeditor wysiwyg edition mode, added convenient helpers, polished javascript and css integration, added events for filtering submitted contents and automatic component cache invalidation
    • sfUnobstrusiveWidgetPlugin: override attributesToHtml function from sfWidget.class.php, updated date form widget to be able to use with time as well, updated the widget sfUoWidgetFormDate for display hours with 24-Hour format
    • ahDoctrineEasyEmbeddedRelationsPlugin: fixed a few bugs
    • sfDataSourcePlugin: initial commit, bugfix sfDataSourcePropelPlugin reducing count-query count, started re-implementation of filtering of dataSources, removed support for PropelModelQuery
    • sfDoctrine2Plugin: fixed capitalisation of Cli, removed/replaced reference to deprecated autoloader
    • sfGridPlugin: sfDataSource removed from sfGrid, restore GridFormatter-html, updated formatters and interfaces
    • sfDatagridPlugin: added thick in list for boolean columns
    • sfTrafficCMSPlugin: added detection of $this->autoConfigure property to turn off auto configuration when needed
    • swZendMailPlugin: use class_exists to load the class
    • sfSympalPlugin:
      • fixed event list task
      • changed "is_secure: on" to "is_secure: true"
      • added exception if you specify your languages invalid
      • fixed bug where app:routes didn't generate correctly
      • fixed the requirements weren't tabbed out correctly on the generated routes
      • removed class sfSympal entirely
      • removed unnecessary _doctrineManager property
      • moved config value up because it takes precedence over the other values at this level
      • small change to super cache (removed configuration dependency)
      • removed the base Doctrine_Table class (sfSympalDoctrineTable)
      • added phpDoc and throwing out better error messages in the upgrade plugin
      • Removed the sfSympalConfiguration::setProjectConfiguration()
      • slight modification to sfSympalContextLoadFactoriesListener::_enableModules()
      • changed logic of sfSympalContext::loadTheme() and added some comments
      • sfSympalContextLoadFactoriesListener refactor (moved helper loading into its own method, removed the instantiation of another sfSympalContextLoadFactoriesListener)
      • removed sfSympalForm::getSympalContext()
      • removed the sfWidgetFormSympalArray class
    • sfSympalAdminPlugin: disabled CSRF protection on filter (not necessary and makes it impossible to link directly to a filtered version of the module), made both admin links go to the frontend (only the edit actually edits), changed appearance of filters, in certain cases (in this case on a 500 response code) the necessary helpers were not available here
    • sfSympalDataGridPlugin: very slight poking around, no real changes - test started
    • sfSympalMenuPlugin: failing gracefully if a menu item was given an invalid route, fixed error message if a menu item has an invalid url
    • sfSympalRenderingPlugin: made the "layout not found" exception even more explicit
    • sfSympalUpgradePlugin: throwing better error messages and adding comments and phpDoc, added an upgrade script to upgrade to 1.0.0 ALPHA4 (handles the table base class change)
    • apostropheBlogPlugin: fixed i18n oversights, admins now have access to all categories when creating or editing posts, removed public option from blog posts, added support for disabling comments for a blog post, only allow admins to create posts for other users, styled the editView sidebar some more, added support for defining the template a blog post will use, fixed bug where new blog posts had no template set, datetime widget for published_at has default set to current datetime, added popular tags to Tag input in blog editor, 1.3 branch now use jQuery widget for selecting published at, added new blog post button to blog engine index view, initial version of blog slot, added aMultiselect to Post Options form, created an assets override for blog admin to ensure that blog.css is included
    • apostropheFormBuilderPlugin: deleted some leftover Layout classes caught by doctrine:clean
    • apostrophePlugin: added I18N for flash notices and for admin generated stuff, the 'tool' option to a rich text slot now activates the FCK toolbar set of your choice, refactored search engine updates into a requestSearchUpdate method Search engine updates on page settings change, plain-text slots now autolink URLs and email address (with obfuscation for the latter) and newlines render as br's properly, fix to allow proper redirects back from the media engine when editing slots on non cms pages, allowed superadmins to grant superadmin, merged fixes to allow editing global or virtual page media slots from a non-CMS page, cancelling media selections works again, changed 'sign in' and 'create page' from button to input to keep the button styles consistent, our admin generator theme no longer mandates that i18n be turned on in your settings.yml, changed main tab navigation to use aNavigation component in favor of the old tabs component, added a unique class name to aNavigation for breadcrumbs too, support classes for functional tests of Apostrophe
    • swFormExtraPlugin: fixed css declaration

New symfony powered websites

  • Billigflug Suche: (Deutsch) dedicated to find flights to destinations everywhere
  • FootySX: (English) an AFL Stock Exchange Game, where users can purchase virtual shares in their favourite players and clubs to make virtual profits

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.


sfSitemapExtendedPlugin: (no description)

Could one of the admin delete all plugins without any description? Noone will ever install a plugin without any description. But it makes much noise in the plugin list.
@Zuzanna at least it's better than the plugins without any code!

Comments are closed.

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