A week of symfony #66 (31 march -> 6 april 2008)

During this week, the second symfony "code sprint" took place, generating very intense development and documenting activity. The result is a whopping 170 changeset list and a great update of symfony 1.1 book.

In addition, 10 new symfony-powered websites have been presented, 6 new plugins have been published and more than 20 plugins have been updated this week. Symfony source code has also established another extraordinary milestone with more than 8000 unit and functional tests.

Development mailing list

Development highlights

  • r8172: [1.1] fixed responseAsArray() when sfWebResponse is empty (refs #3211)
  • r8176, 8177: [1.0, 1.1] simple quotes are no more escaped by Tag helper escaping function
  • r8179: [1.1] improving errors when attempting to write a cache file fails to create directory
  • r8180: [1.1] fixed autoloading on windows environment
  • Completed Milestone 1.0.13
  • r8194: [1.1] fixed fixtures CLI script
  • r8195: [1.1] ordered files in sfCoreAutoload
  • r8201: [1.1] removed 'bc' escaping strategy (upgrade is needed)
    • removed 'bc' escaping strategy as it gave a false sense of security
    • added 2 new options to the generate:app task (--escaping-strategy and --csrf-secret) to configure the level of security when creating a new application
    • default escaping strategy is now false (was bc before)
    • the sf_content variable is not escaped anymore (so the layout can now just echo $sf_content - upgrade task makes the changes for you)
    • the form_csrf_secret has been renamed to csrf_secret
    • updated the unit tests accordingly
  • r8225: [1.1] added sfBrowser::setHttpHeader()
  • r8227: [1.1] added support for formats/mime types
    • added a formats parameter to the request factory (to associate format and mime types)
    • added sfWebRequest ->getMimeType(), ->getFormat() interfaces to the formats parameter
    • added a special sf_format request parameter to configure the request format from the routing
    • added sfWebRequest ->getRequestFormat(), and ->setRequestFormat() to manage the request format
    • getRequestFormat() try to guess the format if no format is configured (via the Accept HTTP header)
    • the format is supported by templates, layouts, components, and partials
    • added a view.configure_format event to override the default behavior
  • r8228: [1.1] catching and rethrowing parse errors caused by invalid YAML parsed by syck
  • r8241: [1.1] fixed issue with sfDebug
  • r8247: [1.1] fixed issues with propel/creole autoloading + tweaked default propel properties
  • r8249: [1.1] added options to sfPDODatabase (persistent, nulls, autocommit)
  • r8254, 8256: [1.0, 1.1] fixed relative file search with sfFinder (closes #3110)
  • r8258: [1.1] updated fixture file to use the new/improved notation for m2m
  • r8260: [1.1] removed both escaping strategy
    • we now have 2 escaping strategy: on (equivalent to bc) and off (equivalent to both)
    • if you still use bc or both, you will have an error in your log but you application will still work as expected
    • sf_data is now available when strategy is off (but sf_data contains unescaped data)
    • "normal" variables are now available when strategy is on (but the vars are escaped)
    • everything is BC
  • r8271: [1.1] adding support for customising error 500 pages on a per application basis (symfony will now check for error 500 pages in the following order, including the first one it finds: apps/$app/config/error_500.php, config/error_500.php, web/errors/error500.php)
  • r8272: [1.1] adding support for customising unavailable page on a per app basis (symfony will now check for files in the following order: apps/$app/config/unavailable.php, config/unavailable.php, web/errors/unavailable.php)
  • r8276: [1.1] Added default parameter values for sfPatternRouting factory configuration
  • r8277: [1.1] added default formats in settings.yml skeleton
  • r8282: [1.0] fixed autoloading with CVS (closes #2795)
  • r8284: [1.1] fixed wrong formatters references returned when calling sfWidgetFormSchema ->getFormFormatter*()
  • r8288: [1.0] added ignore_version_control() for every call to a finder (related to #2795)
  • r8290: [1.1] added a dispatcher as a constructor argument for configuration classes
  • r8296: [1.1] fixed sfI18n and Propel (closes #3261 - it took about 6 hours to fix it)
  • r8298: [1.1] added support for scrolling sortables
  • r8305: [1.1] added sfTask::addOption() and sfTask::addArgument()
  • r8322: [1.1] sfValidatorUrl will accept FTP urls by default as well (closes #3000)
  • r8323: [1.1] removed prototype dependency from double_list javascript in ObjectAdmin
  • Updated dwhittle branch
  • ...and many other changes

Development digest: 170 changesets, 34 defects created, 27 defects closed, 4 enhancements created, 4 enhancements closed, 4 documentation defects created and 3 documentation defects closed.

Book and documentation



  • New plugins
  • Updated plugins
    • sfPropelVersionableBehaviorPlugin: made incremental storage rely on a real version comparison, rather than the array of modified columns, fixes modified columns not being saved when using toVersion, released 0.4 version
    • sfAjaxUploaderPlugin: updated documentation with some tips
    • sfPropelFinderPlugin: de-emphasized the use of magic methods in the unit tests and README, added sfPropelFinder::_and() and sfPropelFinder::_or() methods, fixed error in production mode
    • sfExtjsThemePlugin: improved maintainability by using methods to retreive field names, changed related-stores to hold only one field so every combo-box has its own related store, updated edit-pages to new generator-syntax, fixed bug regarding filtering in comboboxes, improved configurability of (user)combobox-type, added extra pjs files (but not enabled yet), added in methods to support multiple comboboxes off one datastore, added 'fields.column.params.renderer: none' option to the generator to remove the renderer for non-foreign columns and non-date columns
    • sfFeed2Plugin: changed rss to use RFC822 date format as suggested by the RSS specification
    • sfSearchPlugin: added copyright to every file, refactored criteria system to for more flexible rewriting
    • dbFusionChartPlugin: added some documentation & first example
    • sfPropelMigrationsLightPlugin: added symfony 1.1 tasks
    • sfDoctrineUserPlugin: fixed a bug where it was returning to address instead of phone on delete
    • sfPokaYokePlugin: re-added the filter from the 1.0 branch, removed lgacy finctions from the filter, added in further rules generation from the factory
    • sfLucenePlugin: initial import of sfSearch backend engine, released 0.1.6 version, implemented basic criteria system for sfSearch
    • sfPropel13Plugin: updated SfPeerBuilder.php to include a fix for Propel behaviours and also to add behviours support for doCountJoin*() methods, Propel 1.3 does not have doSelectRS() anymore and we needed to update all references of it to doSelectStmt()
    • sfGuardPlugin: updated the package.xml file, updated README, released 1.1.14 and 2.0.2 versions
    • sfDynamicCMSPlugin: update documentation
    • sfJobQueuePlugin: retrieveQueueByName() now accepts an optional propel connection as second parameter, created a new jobqueue:create-queue task, refactoring to symfony new log framework
    • sfTinyMCEConfigPlugin: released 0.0.3 version, added misc section in configuration for additional optional configuration
    • sfDoctrineCSAdminThemePlugin: fixing a few style issues
    • sfGuardDoctrinePlugin: porting changes from sfGuard (you can change the redirect values in app.yml)
    • sfDoctrinePlugin: updated the default doctrine.yml as it cases errors under syck
    • sfDomPDFPlugin: released 1.0.4 version, fixed installation problems, updated dompdf to its current cvs version with UTF-8 support

Some new symfony powered websites

  • Institut jazykového vzdÄ›lávání: (czech) language school in Prague, includes AJAX course reservation and bookmark
  • MÄ›sto Zdice: (czech) official information from the Town Zdice
  • MAXcarp: (czech) fish food dependence
  • Elsatours: (portuguese) online travel agency
  • Schumacher Reisen: (german) online travel agency
  • sendmail.org: (english) resource for the open source community of sendmail
  • Cell Phones Etc.: (english) enables consumers to research and compare cell phones and plans side-by-side
  • Simular: (portuguese) a free web tool to simulate a real estate financing
  • L'R du Cormoran: (french) contemporary art gallery fully powered by sfDynamicCMSPlugin
  • RobHolmes.net: (english) professional web development freelancer Rob Holmes
  • FoodAvenue: (french) portal dedicated to food: find recipes, restaurants, books, knacks, glossary, articles
  • Ratecard Online: (french) a dataBase dedicated to online avdertising market
  • Mobshare: (english) the first social networking web application created in Symfony
  • Stumble Cult: (english) a platform for stumble exchange
  • Contact Virus: (english) share / edit / add your contacts here

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 #66 (31 march -> 6 april 2008) symfony.com/blog/a-week-of-symfony-66-31-march-6-april-2008

Tweet this


Online backup is becoming common these days. It is estimated that 70-75% of all PC's will be connected to online backup services with in the next decade.

Thousands of online backup companies exist, from one guy operating in his apartment to fortune 500 companies.

Choosing the best online backup company will be very confusing and difficult. One website I find very helpful in making a decision to pick an online backup company is:


Have a look here, too:

This site lists more than 400 online backup companies in its directory and ranks the top 25 on a monthly basis.

Comments are closed.

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