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 #173 (19->25 April 2010)

Symfony 2 continued this week adding new components: BrowserKit (a client to simulate a real browser) and Finder (which wraps many useful Iterator classes for finding files and directories).

Development mailing list

Development highlights

Symfony 2.X branch:

  • ee50..6621: [Foundation] added a way to reboot the kernel
  • e09f..9cba: [DomCrawler] fixed DomCrawler::parseUri()
  • 79b3..dedb: [BrowserKit] added the component
  • 9313..487b: [RequestHandler] fixed missing variables in RequestBag
  • c6f2..a333: [WebBundle] fixed issue in Mustache when a value is not provided for a token
  • 72fe..168b: [Finder] added the component
  • e045..cab9: [WebBundle] fixed Filesystem::mirror to use the new Finder component
  • fcda..763d: added full support for functional tests
  • 1194..5641: [BrowserKit] added a way to automatically follow redirects
  • 2052..b0c0: [BrowserKit] added a __toString() method to the Client to ease debugging
  • 8d8a..5cb5: [RequestHandler] fixed request headers
  • 0c78..1dc3: [Console] added feature to Command help that allows you to use and %command.full_name% patterns so you don't have to hardcode the command name in help text
  • 20cc..5774: [Console] changed how command names are parsed to allow multiple levels of namespaces
  • 9cf9..83a9: [Foundation] enhanced Bundle CLI Command loading to allow a Bundle class to manually add commands to the Console Application instead of trying to read them from disk
  • 4db2..81b2: [DoctrineBundle] updated for latest changes to Doctrine 2 CLI where we switched to Symfony console
  • 2c41..77fc: [DoctrineBundle] more work to DoctrineBundle Console Commands and updated README
  • bc6b..a706: [DoctrineBundle] initial entry of new commands for migrations integration
  • 9cf7..f9d2: [WebBundle] added a Response parameter to the send() method
  • d498..3f9f: [RequestHandler] removed RequestInterface and ResponseInterface
  • 52ac..3016: [RequestHandler] added the RequestHandlerInterface
  • 711b..d3d4: fixed request management (the "main" request is stored in the RequestHandler, the request is passed to the core.response event)
  • 3074..fb9d: [RequestHandler] added a way to delete a parameter from a RequestBag instance
  • 1bce..4d58: [RequestHandler] fixed cloning of Request instances
  • 038f..8b97: [RequestHandler] added getPort() and setMethod() to Request
  • ee79..2e78: [RequestHandler] changed Request to use the headers bag when appropriate


  • r29218: [1.3, 1.4] updated Propel to 1.4.2

...and many other changes

Development digest: 54 changesets, 22 bugs reported, 4 bugs fixed, 3 enhancements suggested, 1 enhancement closed, 4 documentation defects reported, 12 documentation defects fixed, and 23 documentation edits.


New Job Postings

New developers for hire

  • Web Systems: We are Melbourne based Symfony developers, specialists in prototype driven web software.
  • Mohammad Forouzani: 10+ years developing websites using the LAMP stack. Expert in symfony development and other PHP based MVC frameworks.


  • New plugins
    • sfSimpleRatePlugin: provides simple and easy-to-use rate functionality.
    • agGuiPlugin: a set of GUI components for data oriented user interfaces. It includes YAML configurable workflow and sf1.0 style, yet extensible form and list component.
    • sfClosureToolsPlugin: provides some tools to ease development with Google's Closure Tools.
    • vjBrowserDetectionPlugin: provides a php browser's detection (no javascript!) for many browsers.
    • fzTagPlugin: allows you to easily tag every model in your app. It's a symfony backport of Diem's dmTagPlugin.
    • sfDoctrineNopastePlugin: a nopaste/pastebin plugins for Symfony.
  • Updated plugins
    • sfDoctrineAjaxFormPlugin: added new icons, added with_hide and max_embedded options
    • omCredentialsMapPlugin: fixed PHP 5.3 compatibility
    • sfDoctrine2Plugin: bring the plugin up to date with latest Doctrine CLI changes, added missing Symfony external, fixed Doctrine revision number
    • sfFacebookConnectPlugin: better handling of the user null case for Propel
    • sfSolrPlugin: fix iteration test
    • sfDoctrineTreePlugin: fixed PHP warnings
    • ysfDimensionsPlugin: added 1.4 branch
    • sfUnobstrusiveWidgetPlugin: added sfUoWidgetPager widget, updated sfUoWidgetPager widget to render empty string when not have to paginate
    • sfAlyssaDoctrineObjectPathPlugin: added support for doctrine < 1.2
    • symfonyUnderControlPlugin: added exit status to detect failed builds, exploded assert functional tests
    • sfPropel15Plugin: refactored documentation and documented widget customization in YAML for generator, refactored documentation and documented widget customization in YAML for generator, added complete documentation of the Propel widgets and validators, updated CRUD generator, updated test suite, fixed double define introduced in tests, added Oracle custom column types handling in generator, allowing advanced form customization from generator.yml, added the ability to use "plain" type for form fields (just like in symfony 1.2), completed the schema syntax documentation with elements taken in A Gentle Introduction To Symfony
    • ahAdminGeneratorThemesPlugin: merged branch 'master' into HEAD
    • sfDoctrineRestGeneratorPlugin: fixed bug in escaping for false or 0 values
    • sfPhpunitPlugin: redesigned test loader, the task phpunit:runtest now acepts the option --and-plugin, fixed the default fixture options could not be changed for the custom ones
    • apostrophePlugin: allow 1000 character slugs to handle importing existing sites with deep structure, getPeerInfo now works properly when the current page is the home page, beginning stages of new administrative bar, modified GenerateSlotType to generate slot forms that extend baseform and accept options and CSRFSecret as parameters, the history browser now has its own close button instead of piggy-backing on the area cancel button, experimental alternative rich text slot based on contentEditable (super lightweight implementation, no FCK overhead)
    • apostropheBlogPlugin:
      • modifications to routing to ensure posts can be found even when slugs are edited
      • updates to blogSlot templates
      • markup for event slots
      • added a refresh function for when the template changes
      • automatically include aBlog.css and aBlog.js when a project is using the blog plugin
      • moved everything that was broken down out of optionsForm back up to the _form partial
      • categories and editors now use proper onChange callbacks
      • populatePages should not fail when no blog items are being populated
      • reworked the popular tag javascript
      • made the multiselect labels I18N
      • blog status messages framework setup
      • fixed publish button states to work with ajax
      • filter the list view to only show posts that the current user can potentially edit
      • reworked aBlog slot edit view form
      • populatePages should not execute a query when no $blogItems are given
      • TH headers now have sort functionality
      • admin theme now will use apostrophe sort arrows if none are specified in app.yml
      • list actions now configured in generator.yml
      • changed the default slots included with the apostropheBlogPlugin templates to be Richtext, Slideshow, Video, and PDF
      • added batch actions for blog post index
    • apostropheFormBuilderPlugin: changed old 'icon-only' selectors to new 'no-label', modified styles of pagebreak, fixed missing aUI calls on edit buttons, standardized language of buttons, changed buttons to inputs, applied Symfony-wide security fix for all admin generator themes
    • diemProject:
      • [dmCore] dmDoctrineTable->getAdminListQuery only joins local relations by default
      • [dmCore] allowed wildcard in SEO redirections
      • [dmAdmin] made visit chart more precise
      • [dmCore] fixed page synchronization when Doctrine column_aggregation inheritance is used
      • [dmFront] made inactive page forward to 404
      • [dmCore] added Brazillian Portuguese translation
      • [dmCore] fixed admin media gallery preview when non-image files loaded
      • [dmCore] join foreign i18n relation in admin modules to fix a bug when sorting on foreign i18n column
      • [dmCore] improved performance by joining media folders in admin module list queries
      • [dmCore] added formClass option to DmGallery
      • [dmAdmin] fixed possible issue in admin gallery interface if some files are not images
      • [dmCore] fixed possible warning in dmMediaSynchronizer
      • [dmCore] made PluginDmPageTable->findOneBySlug() use ->withI18n()
      • [dmCore] embed media in inheritance forms
      • [dmFront] added secure and no follow option to DmMenu links
      • [dmCore] added DmMedia features to doctrine inheritance form generation template
      • [dmCore] excluded model inheritance keyFields from automatic admin generator
      • [dmCore] added conveniance getter to dmDoctrineFormGenerator
      • [dmCore] added unit tests for new menu widget features
      • [dmCore] added dmErrorWatcher->handleException to allow logging catched exception
      • [dmCore] don't unset position field automatically if the record is not sortable
      • [dmCore] fixed list excluded fields in admin generator builder
      • [dmCore] fixed form and filter excluded fields in admin generator builder

New symfony powered websites

  • Globetrooper: (English) a tool for adventurous travellers to create trips and invite people from all over the world to join them
  • (Dutch) Xbox 360 Community
  • Cardiff Airport Parking: (English) airport parking quoting system, comparing prices from multiple vendors
  • (Czech, and English) simple split or merge PDF documents
  • (Deutsch) personal portfolio of Tim Rudat web developer
  • (Polish) aggregator of educational content
  • (Polish) this is what you like. This is what your friends are like.
  • (Polish) sports community portal

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.


sfDoctrine2Plugin seams to be absent from the plugin repertory! Is this plugin stable and available somewhere?
sfDoctrine2Plugin is available as the "1.3-2.0" branch of sfDoctrinePlugin:

Comments are closed.

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