A week of symfony #118 (30 march - 5 april 2009)

This week, symfony project unveiled symfony components, a set of standalone libraries and components ready to be used in any PHP project. In addition, symfony performance got a huge boost with improvements in cache manager and a new option for routing sub-framework.

Development mailing list

Development highlights

  • r16733: [1.2, 1.3] fixed duplicated code in sfWidgetFormSchema
  • r16738: [components] created the components directory
  • r16739: [components] created the dependency injection component directory
  • r16741: [dependency_injection] added the first few classes of the dependency injection component
  • r16752: [components] added the YAML component
  • r16759: [1.3] added YAML as an external component
  • r16800: [dependency_injection] added the service container builder
  • r16834: [1.1, 1.2, 1.3] fixed flag upon unregistering of core autoloader
  • r16840: [dependency_injection] added loaders and dumpers for YAML
  • r16844, r16845, r16846, r16847: [1.0, 1.1, 1.2, 1.3] removed @error suppression in sfFileCache
  • r16896: [dependency_injection] added the PHP and Graphviz dumpers
  • r16897: [1.0, 1.1, 1.2, 1.3] replaced getmypid() by tempnam() in cache classes to be thread-safe
  • r16899: [1.0, 1.1, 1.2, 1.3] optimized windows rename() problem hack
  • r16905, r16907: [1.0, 1.1, 1.2, 1.3] Avoided unnecessary calls to md5(serialize()) by moving determination of whether a partial is cacheable to before the cache key is generated. BIG optimization when sf_cache==true
  • r16910: [dependency_injection] fixed XML dumper when there is no parameter or service
  • r16911: [1.2, 1.3] fixed routing slowness for big numbers of routes
  • r16929: [1.2, 1.3] optimized route serialization when using a file cache backend
  • r16938: [1.2, 1.3] fixed internal URI is not reset after a negative match
  • r16941: [1.3] fixed sfCoreAutoload which was broken on case-sensitive OS
  • r16942: [1.0, 1.1, 1.2, 1.3] removed the web debug toolbar when the response status code is in the 3xx range
  • r16944: [1.3] fixed sfWidgetFormSchemaFormatter::generateLabelName should use humanize function for consistency
  • r16948: [1.2, 1.3] replace all getColumnName() occurrences to getName() as getColumnName() is deprecated in Propel 1.3
  • r16949: [1.2, 1.3] added a new lazy_routes_deserialize optimization option
  • r16954: [1.3] fixed case-insensitivity of core autoload, added regression test. removed non-class/interface files from autoloader. removed trailing slash from core autoload base directory to match symfony standards (will be BC with 1.2 projects' ./symfony cli file).
  • r16955: [1.3] minor optimization to sfCoreAutoload::make()
  • r16980: [1.3] removed the not so useful return value of some sfPatternRouting class
  • r16982: [1.3] moved functional test fixtures
  • r16987: [1.3] replaced harcoded POST, PUT, and DELETE strings to the sfRequest equivalent
  • sfDoctrinePlugin:
    • r16952: [1.2, 1.3] fixed issue with generated accessors not using camel case
    • r16953: [1.2, 1.3] fixed case sensitive typo
    • r16959: [1.2, 1.3] fixed issue where m2m relationships are all unlinked then readded
    • r16964: [1.2, 1.3] fixed sfValidatorDoctrineChoiceMany and reverted change to make it equal to Propel
  • sfPropelPlugin:
    • r16976: [1.2, 1.3] fixed Propel forms, filters, and admin generator when column names contain uppercase letters
  • ...and many other changes

Development digest: 289 changesets, 36 bugs reported, 42 bugs fixed, 6 enhancements suggested, 11 enhancements closed, 3 documentation defects reported, 1 documentation defect fixed, and 32 documentation edits.


New Job Postings

  • Symfony/PHP Developers at PrestaConcept - full-time based in Lyon (France) - Contact: info]at[prestaconcept]dot[net

New developers for hire

  • Kasper Garnæs: freelance web developer based in Copenhagen, Denmark. 5+ years of experience with PHP, Javascript and CSS. Implemented several social networks using symfony.
  • Studio On The Brink: is a web development agency in Plattsburgh, NY. We develop rich Web 2.0 applications for global business.
  • PrestaConcept: a web development agency based in Lyon (France) who implement Internet application with large added value. We use Symfony since version 1.0 and we attach great importance to the development of Symfony to provide technically advanced applications and tailored to the customers specifications.

New symfony bloggers


  • New plugins
    • sfSympalCommentsPlugin: comments component used by other sfSympal based plugins.
    • pkMediaCMSSlotsPlugin: pkContextCMS slots for our pkMediaPlugin. Embed stills, slideshows and video.
    • pkMediaPlugin: manage, select, and embed both still images and video. Includes REST API.
    • sfFCKEditorPlugin: a new sfForm widget that handles FCKEditor.
    • LetsCodOpenInviterPlugin: enables website users to grab contacts from different email providers (yahoo, Gmail, hotmail) and send them invitations mail
    • sfViewableFormPlugin: adds support for a config/forms.yml file for making global view-related changes to your forms
    • lcOpenInviterPlugin: allow users to grab their contacts form different email providers (like hotmail, yahoo,gmail) and send them invitation email to their website
    • sCryptofCaptchaPlugin: generates a higly configurable captcha to block spam and robots. The script is based on the Cryptographp library (see www.captcha.fr)
    • sfWorkbenchPlugin: (no description)
  • Updated plugins
    • sfSympalPlugin:
      • fixed some issues with the tests
      • added the name of the plugin each content type is used in in the database
      • refactored sympal install code
      • updated README for how to enable sympal
      • added some tests for the plugin manager
      • updated default plugin install to have more inline editable content
      • updated pages content type so view template allows title to be inline edited
      • optimized queries
      • implemented solution for adding new methods to actions when sympal is installed
      • added trac to default menu
      • fixed default installation to link to super admin
      • combined all auth/user stuff in to sfSympalUserPlugin
      • refactored commments out of core
      • fixes to sympal installer
      • removed batch actions from plugin manager and fixing strict notices
      • removed plugin manager checkboxes
      • fixed bug with sympal content slots default values
      • fix for using templates where path has dot in it
      • implemented image uploading in to rich text editor
      • refactored yui file uploading to use form framework
      • hack for embedded forms file uploading to work
      • implemented a new menu system
      • cleaned js for new menu manager
      • initial entry of new finished menu manager
      • lots of bug fixes and small enhancements
      • implemented YUI tabview for admin generator rendering of forms fieldsets and embedded forms
      • made secondary sub menu show children
      • implemented jQuery rich date input for now
      • updated menu manager to use new side bar
      • fixed bug with default menu to show in menu manager
      • fixed changeLayout() to be more flexible with its input parameter
      • fixed label for content type embedded form and a few other bug fixes
    • sfSympalBlogPlugin: fixed inline editing content properties of blog post view, initial entry of blog helper, updated plugin to work with latest sympal user/auth changes, created branches folder and moved trunk to branches/1.2, changed blog post view so it works with comments
    • pkToolkitPlugin: added forgotten $conn parameter, fixed some bugs in early zend code, hack around sfPager's problems with being displayed when there is only one page, more pager hacks for correct operation with only one page of results, pkDump::dump serializes the value passed to it as valid PHP code (this works for arrays (associative and flat), strings, numbers, null and false. It doesn't work for objects), fixed delete-from-doctrine-and-zend
    • sfUnobstrusiveWidgetPlugin: removed "needs_multipart" option from sfUoWidgetFormInputText widget, added tinymce dynamics package
    • pkContextCMSPlugin: added asynchronous lucene search index updates via pkContextCMS:update-lucene task, much better performance for edits, documented cron job setup, removed stray reference to lucene_update index in pkContextCMSPage, the outer class="pk-context-cms-slot" div now also gets the class "pk-context-cms-slot-has-outline" if it is editable right now AND it actually uses outlines, fixed search pagination, tweaked breadcrumbs, changes to work with media plugin, added IE7 stylesheets, support for non-AJAX editing of global slots, fixed area bug, cropped logo from media slot, tweaked slot submit buttons, .pk-context-cms-content renamed to .pk-context-cms-normal-view
    • DbFinderPlugin: fixed Doctrine tests, added DbFinderRoute::getObjectPager() method, fixed package.xml
    • sfZnForumPlugin: initial import
    • sfOfflineFilterPlugin: corrected README
    • sfGridPlugin: several improvements regarding the imap-connection, several bug fixes and minor improvements regarding extendability, added capability to add title, added limited capability to allow OR-criteria when searching in IMAP, added attachement size, fixed some bugs, throws exception when connection cannot be made
    • sfExtjsThemePlugin: added listExport methods, fixed persistant filtering, added built in export and csvexport actions, fixed filtertwincombo to work with custom store, fixed filter_field set to combo to work for non-foreign columns, changed foreignfieldcolumns to switch to filtertwincombo for the filter, updated base-x to 3.1, fixes for grid filterevents to properly handle pagesize changed via a pagingtoolbar plugin
    • pmHighslideJSPlugin: bugfixes
    • sfBugsPlugin: added Title field to the schema.yml, Javascript helper is with capital letter now, fixed some design bugs, included the prototype.js library, updated the README, added a module for managing the bugs for the whole website, generated filters and forms, now parameters are also saved when saving the bug URL, added in the Manage module a link to visit the page where the bug was located
    • sfEzcWorkflowPlugin: fixed the case when variables are double serialized for a weird scenario, allows to resume workflow suspended waiting for input or not, added event notification and execution logging, fixed bad object creation and bad variable setting
    • swToolboxPlugin: added stupid captcha validator
    • sfEasyGMapPlugin: created the branch folder
    • nahoPropelOptimizerPlugin: bugfix for Oracle, added generic join functions (choose the tables you want to join with), type casting, support to sfAlternativeSchemaPlugin, updated README
    • sfDateTime2Plugin: added a unit test, added isHolliday() and getSecond(), modification i dont remember, added sfDate::dayOfWeek()
    • sfPropelActAsSignableBehaviorPlugin: added "signable" alias, initialized 1.2 branch, used PdoType for branch 1.2, direct detecting CLI (no use of sfContext) so behavior does not crash data fixtures loading
    • nahoWidgetsPlugin: fixed an error when sfWidgetFormPlain() was built with a callback argument as array instead of string, removed deprecated call to sfLoader::loadHelpers
    • sfDB4toPropelPlugin: added the ability to use external tables (from a plugin or another schema), released 1.0.3 version
    • sfImageTransformPlugin: added clone method, fixed bug in calculating resize ratio, fixed some typos, fix for 1.0 support when logging deprecated position labels
    • sfDoctrineActAsTaggablePlugin: if getTaggings returns an empty array we want getObjectTaggedWithQuery to return nothing, optional support for elegant jQuery-based tag typeahead in the "progressive enhancement" spirit
    • sfSSOPlexcelPlugin: added two method in the validator for filter user groups and CN, updated login form with a hidden field for sso, added vendor lib, now the function isSSO() use plexcel_sso() function
    • sfDynamicsPlugin: updated package.xml template
    • sfDoctrineApplyPlugin: fixed constant() call so that SMTP encryption options can be specified, allowed use of class constants like PORT_SECURE in app.yml
    • sfDoctrineGuardPlugin: fixed issue with redirect after login, fixed issue with created_at/updated_at being set to null in admin generator, fixed issue with default boolean value being 0 and not false, fixed issue where setPasswordHash() encrypts the already encrypted password
    • sfDoctrineAdminGeneratorWithShowPlugin: added new export formats: CSV, PDF (you need to install sfTCPDFPlugin), XML, Excel (you need to install sfPhpExcelPlugin), fixed some bugs, updated README, fixed many errors if import or show view is not enabled
    • sfLightboxPlugin: modifications for the new 1.0.9 release, fixed bug with 1.0.x, updated README
    • sfPropelActAsCommentableBehaviorPlugin: fixed typo in behavior

New symfony powered websites

  • AeroWeb-fr.net: (French) aviation webzine with community participation
  • Invenzzia.org: (English, Polish) site for Invenzzia Group, which develops rich open-source PHP projects
  • EazyAfrica: (English) Webhosting / Tourism
  • siwapp: (Spanish) a free online invoice system. Contributions are welcome.
  • Books Express: (Romanian) bookstore carrying over 1.8 million titles in English

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.


Comments are closed.

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