A week of symfony #162 (1->7 February 2010)

Symfony framework achieved this week another important milestone with the release of its 900th plugin. Meanwhile, Symfony 2 continues taking shape just eight days before the publication of its first alpha version at Symfony Live 2010 conference.

Development mailing list

Development highlights

Symfony 1.X branch:

  • r27415: [1.2, 1.3] fixed sfFillInForm so that it doesn't lose encoding information
  • r27511: [1.3, 1.4] fixed typo preventing sfProjectOptimizeTask to work correctly
  • r27597: [1.2, 1.3, 1.4] fixed minor incompatibility of new link_to() behaviour with 1.0 behaviour
  • r27612, r27613: [1.3, 1.4] added basic test for sfPager->rewind() and fixed bug not leading to ->reset() not working correctly
  • r27616: [1.2, 1.3, 1.4] passed the changeStack option in ->get() and ->post() calls of sfBrowserBase to the delegated ->call()

Symfony 2.X branch:

  • b061..c75c: [DependencyInjection] made some more tweak to the Doctrine extension
  • dd5c..a796: [YAML] removed echoln() function (they are other means to achieve the same thing more elegantly)
  • 38c4..d0b5: [DependencyInjection] fixed Builder when trying to override an alias with a definition or the other way around
  • e5f8..91f1: [Templating] added a getContent() method to the Storage class
  • 8427..bdb4, 6ef1..6d01: [Templating] fixed CacheLoader
  • 94f6..dfa6: [Templating] optimized the cache directory of CacheLoader (especially if there is a large number of templates)
  • 9a47..e19c: [DependencyInjection] made extension entry points configurable
  • 2855..a063: [DependencyInjection] fixed XSD validation on Windows
  • 8ff8..f41d: [Templating] renamed the template object in templates to view instead of this
  • ec2a..f894: [DependencyInjection] removed the built-in extensions
  • da36..59f4: [Templating] removed the built-in extensions
  • 7fce..4692: [Templating] renamed content slot to _content to avoid name collisions


  • r27641: [2.0] update unique validator for Doctrine 2.0
  • r27657: [2.0] fixed unique validator when editing existing record


  • r27479: [1.2, 1.3, 1.4] removed svn version line from propel generated files showing them as modified even without changes each regeneration

...and many other changes

Development digest: 311 changesets, 23 bugs reported, 29 bugs fixed, 5 enhancements suggested, 4 enhancements closed, 9 documentation defects reported, 23 documentation defects fixed, and 21 documentation edits.


New Job Postings

  • PHP Developer with Commercial Symfony Experience at EngineCreative - full-time based in Northampton, UK - Contact: iwanttowork [at] enginecreative [dot] co.uk

New developers for hire

  • Łee McDermott ([email protected]): I am an English PHP developer from London, UK with 2 years solid experience with Symfony - from 1.0 all the way up to the recent 1.4 release. In that time, I've worked on several large projects pushing Symfony to its limits. I have extended the framework in many varying ways and have an in-depth and up-to-date knowledge of it's inner-workings. I also build JavaScript-intensive (jQuery) frontends to Symfony systems. Am currently seeking freelance/contract opportunities in London.

New symfony bloggers


  • New plugins
    • sfCcPlugin: allows you trigger "symfony cc" from browser by pressing ctrl + F5.
    • dmMediaUploadifyerPlugin: (no description)
    • sfGoogleLoginPlugin: allows a simple login via Google Accounts using OpenID.
    • wpLastFmPlugin: retrieves information from last.fm using their API. It comes with default templates for quick and easy display of some standard last.fm methods but can also be used to access any other method from the last.fm API.
    • dmCommentPlugin: allows to add comments to your records. It packages - a Doctrine behaviour, "DmCommentable" - two front widgets: "Form" and "Page comments" - an admin interface to manage comments.
    • fcDbBackupPlugin: adds a CLI task that performs as many snapshots as you like, stores them in a configurable directory with a clear and readable naming structure, and offers auto-archiving capabilities inspired by Apple's Time Machine.
    • laiguExtGridPlugin: provides a easy way to integrate Ext JS Grid.
    • sfTroubleTicketPlugin: provides a trouble ticket system for extendable prototypic tickets.
    • sfDoctrineMasterSlavePlugin: easily manage master (write) and slave (read-only) database connections.
    • csSecurityTaskExtraPlugin: provides some new tasks to help assess security coverage in your application.
    • sfAkismetPlugin: an interface for the Akismet spam detection API.
  • Updated plugins
    • sfSympalPlugin:
      • initial re-design of dashboard (got rid of dashboard boxes and used admin menu to make things simpler)
      • fixed more credentials
      • added description to some admin gen modules
      • added new link on content types list
      • added missing links to dashboard and fixing notice/error box
      • moved code to admin menu
      • changed fix perms to use chmod from system when in unix to improve speed when running on unix
      • fixed use of file_get_contents() for urls
      • refactored assets and links to be by slug instead of id
      • made thumbnail generation more configurable
      • made content editing more configurable so you can make publicly editable content records and control who can edit some content with groups
      • fixed issue with edit slots page
      • implemented edit culture to separate the culture as whole from the culture being edited and adding control to change the current edit culture
      • allowed the default culture to be configured
      • added options array to slots for default_value feature and future configurability of slots
      • improved flexibility and configurability of asset rendering
      • enhanced data grid to remember the sort, order and page in session
      • added ability to choose what languages you can use in Sympal from the admin system settings
      • added check for when no menus exist
      • changed the redirects to be 301 redirects and updating the tests to check for this
      • improved handling of errors in unix for the fix-permissions task
      • fixed bug where passing in null and false for the $showChildren variable caused different cache keys to be created for the same tree
      • disabled the minifier by default in all environments except for production
    • csSettingsPlugin: ensures checkbox and yesno setting types return boolean values (instead of strings), cleaned up actions, added better subclassing/extending options, added DateTime field, added authCredential setting to allow use of credentials instead of authMethod for editing comments
    • diemPlugin:
      • completed copy/cut paste widget feature on front application
      • default helpers no more contain £
      • removed all £-based helpers from the core
      • ensured £-based and dmAlternativeHelperPlugin BC compatibility
      • moved dmMenuPlugin to the core as it's used by many core services
      • updated test project to use real-time resource locks
      • added media_synchronizer service
      • moved all media/filesystem synchronisation code to the media_synchronizer service and refactored it to be faster
      • improved and completed media synchronisation unit tests
      • added dmMenu->addRecursiveChildren() method
      • added unit tests for recursive menus
      • improved front menu widget edition dialog with recursivity depth selector
      • added the external link missing feature to the front menu widget
      • added unit tests for front widget menu
      • removed deprecated jQuery UI getters
      • removed w3cValidation deprecated template
      • fixed issue with realtime resource locks when ajax pings are delayed
      • added media library dialog: rename folder
      • added unit tests for DmAdminRenameMediaFolderForm
      • removed deprecated DmAdminEditMediaFolderForm
      • simplified admin library ajax redirections
      • fixed download link in media library
      • completed fluent interface in DmMediaFolder model
      • refactored admin media library (now it allows to rename and move folders)
      • added functional tests for admin media library
      • media library controls is now an instance of dmMenu and can be modified with the dm.media_library.control_menu event
      • dmBaseActions and dmBaseComponents now allow to pass a class when requesting a service
      • extracted droppable input javascript behavior out of the form widget
      • removed deprecated core.form asset
      • moved admin media library actions code to BasedmMediaLibraryActions.class.php
      • admin media library now allows to move existing medias around folders
      • booleans can be toggled in one click on admin lists
      • cleaned project configuration class
      • fixed DmGallery->addMedia()
      • improved ajax charts performances
      • allowed to specify a record loremizer class in a table
      • fixed possible infinite loop in table loremizer
      • added ->help() to widget rendering fluent interface with possibility to override the help message
      • added widget rendering fluent interface unit tests
      • disabled routing cache for jQuery random requests to avoid APC overhead
      • fixed possible issue when admin sort column stored in session does no more exist
      • made table and record cache protected according dm dmMicroCache interface
      • fixed possible issue in PluginDmMedia and PluginDmPage when the service container is not available
      • fixed plugin admin module generation
      • removed jQuery map and jQuery mousewheel
      • fixed admin dependency injection diagrams
      • admin diagrams are now movable by holding the mouse button
      • added jQuery panview to available core libs
      • dependency injection diagrams are bigger and more readable
      • made all diagrams downloadable
      • made possible to include javascript libraries in the head section
      • fixed issue on record_loremizer service for "int" columns
      • fixed admin log view overflow
      • removed deprecated admin.generator stylesheet
      • improved google chrome compatibility
      • fixed front widget cache issue
      • applied Principle of Least Knowledge on all actions
      • fixed dmWeekChart visits metric
      • event log no more records template cache clear
      • dmUserPlugin now declare its modules and assets
      • renamed dmUserPlugin modules by adding the "Admin" suffix
      • removed deprecated auth_layout service
      • added dmUserPlugin assets and config
      • implemented new plugin convention: all plugin admin module dirs must be suffixed with "Admin"
      • moved Diem asset symlinks to symfony defaults
      • updated module manager config handlers
      • made layout services ->renderBodyTag actions accept an array of parameters
      • made admin link_tag escape automatically generated texts
      • added i18n_yaml_extractor service (not ready yet)
      • made automatic functional tests stop before memory limit is reached
      • disabled async script loading cache on debug env
      • made front link_tag_page escape page name when used as text
      • added upgrade steps in dmUpgradeTask
      • fixed front code generation messages
    • sfDoctrineApplyPlugin: users can now retrieve forgotten usernames (provided they know what email address was used to register), now you can reset your password using either your email address or your username, PHP warning about retrieveByUsername has been fixed, standard emails have been written to feel a little less phishy" so they are not mistaken for spam, documented 1.4 compatibility, fixed reference to the wrong app.yml key in documentation
    • swFunctionalTestGenerationPlugin: do not add _sw_func_link if the link content is empty
    • sfTrafficCMSPlugin: added admin panel template, added permissions stuff to frontend nav
    • sfDoctrineActAsTaggablePlugin: merged changes from punkave branch, filter tags array for empty tags
    • cleverFilesystemPlugin: optimized caching when using the disk filesystem type
    • dmContactPlugin: replaced £ with _tag, made record body required, added form email help message, added french translations
    • dmFlowPlayerPlugin: replaced £-based helpers with new helpers
    • dmWidgetTwitterPlugin: replaced £-based helpers with new helpers
    • dmWidgetFeedReaderPlugin: replaced £-based helpers with new helpers
    • dmGoogleMapPlugin: replaced £-based helpers with new helpers
    • dmCkEditorPlugin: replaced £-based helpers with new helpers, added allow_resize config option, added ckeditor source
    • dmWidgetGalleryPlugin: replaced £-based helpers with new helpers
    • sfSympalTagsPlugin: added a sidebar that will be added to the blog plugin if that plugin is present, added a method that returns an array of tags assigned to a particular ContentType
    • sfPhpunitPlugin: init commit for the plugin brenche for symfony 1.4, migrate fixture code to support new Doctrine that bundled with sf1.4, add config. add selenium base test case, fixed multiple contexts didn't supported different environment, fixed suites not catched by the loader automatically, fixed init task for windows platforms, fixed error in runtest task, tests can be run from eclipse using 'run external' feature
    • sfPropel15Plugin: removed version phpDoc line, which shows generated files as modified every time you regenerate them, even if there is no change in the schema, changed the symfony propel behavior to accomodate the changes in Propel Object Builder
    • sfMinifyTSPlugin: fixed a bug for when conditional css tags occur before and after normal css references
    • sfSimplePagePlugin: added the sfSimplePage/static component to embed static pages anywhere in the view layer
    • sfEasyAuthPlugin: added another event that can be used to redirect users who are already logged in and try to log in again, credentials are now inherited from extra credentials
    • mgI18nPlugin: added test for format_number_choice helper method
    • bhLDAPAuthPlugin: improvements to recursive group enumeration
    • sfDatagridPlugin: fixed sfDatagridDoctrine constructor for doctrine_query, checkall for jquery
    • sfXssSafePlugin: changed link towards bootstrap for unit tests
    • elXHProfPlugin: initial commit
    • pkToolkitPlugin: addition of noonMid parameter in pkDate::time to return 12:00Noon and 12:00Midnight
    • sfSolrPlugin: fixed port number being ignored in service task
    • pkBlogPlugin: fixed blog event day filter
    • sfFormExtraPlugin: fixed blacklist validator test, added sfValidatorDefault which returns a default value rather than throw an error
    • sfMediaManagerPlugin: create base folders
    • tdBlogPlugin: articles show order switched to created_at desc
    • tdAudioPlugin: fixed random audios bug
    • tdVideoPlugin: fixed random videos bug
    • sfSympalCommentsPlugin: moved the form itself into a partial so that it can be overridden more easily, activated i18n on some text, added a link to the comments form on one spot and removing it from another
    • sfSympalBlogPlugin: refactored of the sidebar, the "widgets" that render in the sidebar are now stored in app.yml and their order can be configured via the "display" key, fixed a bug with the months, removed a few of the very broad dom ids (e.g. "view") and replaced them with classes, removed some excess args passed to get_sympal_breadcrumbs(), added a page title, centralized the month action to a list template

New symfony powered websites

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.


Please, in the section "Updated Plugins", it says sfDatgridPlugin, the right word is sfDatagridPlugin.

@Relez, fixed! Thanks for your notice :)

Comments are closed.

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