Cover of the book Symfony 5: The Fast Track

Symfony 5: The Fast Track is the best book to learn modern Symfony development, from zero to production. +300 pages showcasing Symfony with Docker, APIs, queues & async tasks, Webpack, SPAs, etc.

A week of symfony #159 (11->17 January 2010)

The brand-new Git repository of Symfony 2 showed this week strong development activity, mostly focused on Dependency Injection component. Symfony 2 also unveiled its new interactive shell that will supersede the traditional symfony CLI.

Development mailing list

Development highlights

Symfony 1.X branch:

  • r26555: [2.0] created the 2.0 branch
  • r26560: [2.0] merged branch 'master' of git:// into svn
  • r26642: [lime 2.0] fixed keys are compared using type-safe comparison when dumping an excerpt in LimeTesterArray
  • r26681: [1.2, 1.3, 1.4] fixed format_currency is rounding bad

Symfony 2.X branch:

  • 125b..8135: [Console] changed the subpackage from cli to console
  • afcb..b0b8: [Console] implemented helpers and moved formatter and ask* methods to their own helpers
  • 0c2b..2c90: [Console] refactored helpers
  • a055..0bd9: [DependencyInjection] made the loader extensions much more reliable and robust
  • a1d2..a39d: [Foundation] updated the autoloader, added a new one
  • 59e3..6d1e: [Console] added a Shell
  • 111a..19cd: [DependencyInjection] added some extensions
  • 1a0b..2298: [Console] added a new writeln() method to the Output classes
  • 392a..b48d: [DependencyInjection] fixed Extension conversion from XML to PHP when the same tag is used more than once
  • 5e55..b6b5: [DependencyInjection] added an extension for the Symfony Templating Component
  • 4cfa..b6e6: [DependencyInjection] added an extension for the Zend Framework
  • ee7d..6d5d: [DependencyInjection] added a BuilderConfiguration::findService() to allow some optimizations when building a complex graph of dependencies in an extension
  • c8fc..6e4c: [DependencyInjection] renamed the default schema URLs

...and many other changes

Development digest: 323 changesets, 35 bugs reported, 7 bugs fixed, 2 enhancements suggested, 2 enhancements closed, 9 documentation defects reported, 1 documentation defect fixed, and 11 documentation edits.


New Job Postings

  • PHP integrator at Webpulse - full-time based in Paris, France - Contact: contact [at] webpulse [dot] fr

New developers for hire

  • Julien Wadin: is a friendly belgian "geek" freelancer with 7 years experience in PHP/MySQL and 1 year with Symfony. I use to product maintenable and secure code, keeping user experience in mind. Don't hesitate to contact me, i speak French and English.


  • New plugins
    • daYamlEditorPlugin: allows you to easily create a Yaml edition form. Just define the files and the fields and that's done. You can edit any Yaml file and use all the sfValidator options you want.
    • sfEasyAuthDoctrinePlugin: A port of the sfEasyAuthPlugin to Doctrine. It provides simple authentication and authorisation. Built for high-performance environments, it only creates two database tables, and supports multiple types of users through inheritance.
    • tdVideoPlugin: provides easy interface for flash video player to embed in symfony projects. It is based on my sfVideoPlugin and is integrated into TD CMF.
    • tdAudioPlugin: (no description)
    • tdBlogPlugin: (no description)
  • Updated plugins
    • sfSympalPlugin:
      • made inline edit forms more configurable
      • massive performance fix for inline editing in dev mode
      • added a configurable content slot editor renderer
      • fixed fatal error when no content exists
      • initial entry of very simple js and css minifier
      • fixed issue with minification and non existant files
      • fixed issue with custom module and actions
      • made content type module/action configurable from app.yml
      • loaded helpers that are required
      • fixed thumbnail generation so it is not called unless the record is actually inserted or updated
      • fixed cache clearing for web directory
      • fixed jumpyness of inline editor javascript
      • added redirected to content loading for routes that match but give 404
      • changed app.yml configuration to go by content type slug instead of name since name is not unique
      • renamed and reorganized admin menu
      • fixed menu items site restriction
      • enhanced site list button for switching sites
      • refactored routing to fix issue where custom module/action on content record without a custom path did not work
      • changed get_sympal_pager_header() to support i18n
      • wrapped messages for i18n in frontend editor
      • made admin modules configurable
      • fixed breadcrumbs generation
      • fixed asset thumbnail generation
      • fixed issue with content lists and content_id widget
      • made admin generator theme configurable
      • added functionality to allow changing the theme for the current session with a request parameter
      • fixed issue with configuration saving
      • added ability to exclude assets from being minified
      • fixes for content routing
      • enhanced menu and content admin generator to show a published icon
      • improved functionality which allows you to view your content in other formats
      • improved the ability to specify custom classes to handle different asset types by extension
      • fixed asset replacement for rss feeds
      • clearing cache when content is saved
      • allowed custom form and form_renderer for content slot types
      • improved workflow for working with multiple sites from the command line and in the web in dev mode
      • made configuration write to application config directory
      • improved integration with page caching so inline editing is not used when page caching is on
      • added menu cache functionality
    • diemPlugin:
      • improved google api service
      • no more stores google analytics logins but authentication token
      • enhanced admin google analytics module
      • functional tester and browser are now managed by the service container
      • added config panel and navigation front functional tests
      • added dmEditWidget front functional test
      • added a test project builder
      • improved test project
      • added dmConfigurable->mergeOption method
      • added dmContent admin functional test
      • fixed bug when requesting non-existing data on record
      • fixed double inclusion of hidden fields in dmForm
      • added version to automatic unsetted form fields for versionable record forms
      • improved javascript compressor black list capabilities
      • added dmNavigation front functional test
      • enhanced dmWebResponse fluent interface
      • fixed front bread crumb generation when no links inside
      • added sitemap_menu service unit and functional tests
      • DmPage and DmWidget records now return their moduleAction as module/action
      • added dmWidgetNavigationBreacrumb->getLinks method
      • added an event to filter the breadcrumb links
      • links to inactive pages are changed to span if user doesn't have the "site_view" permission
      • added tests for links to inactive pages
      • added user dependency to the link_tag_page & link_tag_record services
      • fixed front page edit form
      • added front edit page functional tests
      • refactored xml_sitemap_generator service to produce one sitemap per culture plus an index sitemap
      • enhanced sitemap admin module to show all sitemaps
      • added unit and functional tests for xml sitemap generation
      • added minified version of jQuery 1.4
      • async page tree loading no more uses json to pass javascript dependencies
      • added dmBaseActions->renderAsync method
      • moved transliteration strings to the i18n service
      • added unit tests for dmString::transliterate
      • splitted front pager service into 2 services (doctrine_pager & front_pager_view)
      • allowed to render widgets with ajax request to +/dmWidget/render
      • added functional tests for widgets rendering
      • removed deprecated dmFrontBaseServiceContainer->getDoctrinePager method
      • added browser_detection service
      • improved browser detection with googlebot, google chrome and iphone
    • sfTaskExtraPlugin: fixed bug when generating a test stub for a class in a plugin with no test directory, fixed use of temporary file
    • sfAmfPlugin: updated SabreAmf, added symfony 1.3 and 1.4 Support to package.xml, added first version of a Service-Browser, improved look & feel of Service-Browser, fixed Bug in Service-Browser and DateTime
    • psToolboxPlugin: added config handler
    • sfPaymentPayPalPlugin: renamed class to reflect the relation to the sfPaymentPlugin
    • sfPaymentPlugin: added a hook for the user object to simulate a sfUser#getBasket() method, removed redundant field from the sfPaymentForm class and reorganized class file, moved currency constants from sfPaymentTransactionInterface to sfPaymentSellable, added sfPaymentActionAbstract for shared logic amongst the controllers of the sfPaymentPlugin, added sfPaymentActionAbstract#processForm() method for handling boiler plate form processing, added abstract method process to the shared sfPaymentFormAbstract interface, sfPaymentActionAbstract#_processForm method now accepts a callable as a route argument, added internationalization file, reorganized form class files, _doProcessForm method of sfPaymentActionAbstract now returns the routing information for the redirect
    • dcPropelReportsPlugin: fixed a problem in dc_report_table module when first table is added to a report
    • pkContextCMSPlugin: fixed bug where javascript was being output for admin specific scenarios that shouldn't be there, enhanced slideshow to display the first image if nojavascript, removed redundant search box styling that is in pkToolkit, some more breadcrumb renaming tweaks, Add slot, enhanced the login experience
    • pkMediaCMSSlotsPlugin: enhanced slideshow to display the first image if nojavascript
    • pkToolkitPlugin: experimental version with support for nesting, date widget now has a wrapper div, pkHtml::textToHtml is now a wrapper around the Text helper functions, email addresses are now converted to links just like URLs are
    • swFormDynamicPlugin: created 1.2 and 1.3 branch
    • swFormExtraPlugin: created 1.2 and 1.3 branch, updated nested set widget
    • swFunctionalTestGenerationPlugin: created 1.2 and 1.3 branch
    • swToolboxPlugin: created 1.2 and 1.3 branch
    • swBaseApplicationPlugin: created 1.2 and 1.3 branch, added default index, added include_javascripts|stylesheets to the default layout
    • swDoctrineAssetsLibraryPlugin: created 1.3 branch, added renderHiddenFields, added mode file
    • sfBlueprintPlugin: initial import
    • sfSolrPlugin: moved sfLucenePlugin Solr branch to this plugin, fixed file configuration name, error while saving document is now catched and reported into log, added multi documents management on batch mode, updated README, the schema.xml can now be tweaked with an intermediate file base_schema.xml
    • sfDoctrineJCroppablePlugin: update to reflect compatibility with symfony 1.4
    • sfFlexymfonyPlugin: set aliases field to empty array for compatibility with sf 1.3 and 1.2
    • sfDoctrineRestGeneratorPlugin: fixed erronous 200 HTTP code when the payload is not a valid XML file, formatted exception messages as XML
    • sfPhpunitPlugin: assigned changes from sf unit.php to the plugins template, added require of base task class
    • sfEasyAuthPlugin: added retrieveByType new method to the peer class, added a retrieveByProfileId method to the easyauthpeer class, updated README, added addExtraCredential and removeExtraCredential methods to sfEasyAuthUserBase for working with extra credentials, profile IDs now default to null
    • sfDynamicsPlugin: removed obsolete code
    • zxI18nRoutingPlugin: created 1.3 and 1.4 branch
    • sfVideoPlugin: added index action
    • sfJqueryTreeDoctrineManagerPlugin: added module base classes, fixed getTree method, fixed json output, formatted and fixed display waiting notice, added multi root support, resolved rename bug
    • sfSympalBlogPlugin: fixed blog content templates
    • sfSympalCommentsPlugin: updates for latest changes in core, removed use of unnecessary component
    • dmAlternativeHelper: renamed _linkTag to _link according to documentation
    • pkMediaPlugin: documentation now notes that you need support for URLs in fopen()
    • sfAdminDashPlugin: updated BG and PL translations
    • tdVisitorCounterPlugin: modified schema
    • tdCorePlugin: reorganized sf admin dash icons support
    • tdVisualFactoryPlugin: modified schema & model, updated i18n
    • tdGuestbookPlugin: switched pagination images, updated forms, filters, pagination and documentation
    • sfTCPDFPlugin: updated demos to work with 1.2.10
    • sfQuizPlugin: initial commit

New symfony powered websites

  • (English) fast, fun and AJAX themed domain name generator with availability checking
  • UMTS Stick: (Deutsch) using symfony in the backend for several tasks

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.


great work!
Also, just in case anyone is interested, i wrote an article about "Preparing a Symfony project ready for deployment into production using Capistrano" :-)

Comments are closed.

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