Symfony2 suffered this week a huge internal refactoring: two of the main namespaces were renamed (Symfony\Framework to Symfony\Bundle and Symfony\Foundation to Symfony\Framework) and a new HttpFoundation component was introduced. Meanwhile, Symfony2 documentation continued growing and totalizes 30 brief documents and guides.

Development mailing list

Development highlights

Symfony 2.X branch:

  • 99c33ca: [FoundationBundle] removed Finder dependency in Filesystem
  • 19d3e98: [HttpKernel] fixed double-insertion problem for profiling data
  • 04a8705: [Console] changed the --color/-c option to --ansi/-a to avoid conflict with --config/-c
  • aaa6aba: [Console] added a way to use style without defining a name (...)
  • 99952c6: [Console] added a way to create console application with only 1 command
  • a747987: [Validator] custom built constraints can now be used in the loaders
  • f6b9d9e: [Validator] made all metadata classes serializable
  • fd3243a: [Finder] fixed Finder tests without explicit sorting across different operating systems
  • 34dd0ea: [Form] fixed objects are stored in the form before calling configure()
  • 1c7b459: [Form] fields with the name '0' are now possible
  • 8c9f9de: [Validator] added support for metadata caching
  • f2c4f20: [Validator] added support for '0' as default constraint option value
  • a9ad743: [DependencyInjection] changed the main services.xsd to be more strict
  • 4bbf2ae: [DependencyInjection] renamed constructor to factory method (like in Spring)
  • 27458b6: [DependencyInjection] removed @property annotations as services are not available as properties anymore
  • ef91396, 8d067ba: [DependencyInjection] added factory-class and factory-service concepts to DI Definition
  • b6799d0: [FoundationBundle] fixed bundles with sub-namespaces
  • 4b24544: added ability to disable Symfony's error handler (PHPUnit has built in support for testing if PHP errors are thrown by looking for special exception classes: PHPUnit_Framework_Error, PHPUnit_Framework_Warning and PHPUnit_Framework_Notice
  • 6613555: [DomCrawler] fixed Form::getUri() and Link::getUri() issue if the form action attribute is an absolute url
  • 7e8d0d2: changed all listener classes so their names end with Listener
  • e63ff6e: [DependencyInjection] fixed conversion of DOM to array when DOM includes multiple elements with the same name
  • 9133b9e: moved Request/Response/User classes to a new HttpFoundation component. The HttpFoundation component holds classes that wrap PHP native global arrays
  • 6213fde: renamed Symfony\Framework to Symfony\Bundle. For existing Symfony2 applications, references to Symfony\Framework are found in the main Kernel class (registerBundles() and registerBundleDirs()), and in all Controller classes. You also need to change the console script
  • 15d4398: renamed Symfony\Bundle\FoundationBundle to Symfony\Bundle\FrameworkBundle
  • da9f36c: renamed Symfony\Foundation to Symfony\Framework

...and many other changes

Development digest: 87 changesets, 28 bugs reported, 8 bugs fixed, 3 enhancements suggested, 3 enhancements closed, 4 documentation defects reported, and 11 documentation edits.

Documentation

New Job Postings

  • Symfony developers at Boxlight Media - full-time based in London, UK - Contact: jobs [at] boxlightmedia [dot] com
  • Symfony/Web developer at ipmedia - full-time based in Zurich, Switzerland - Contact: jobs [at] ipmedia [dot] ch

New developers for hire

  • Logikas Co: Argentine company specialized in web 2.0 development. We build high-performance, secure and stable applications for all levels business.

New symfony bloggers

Plugins

  • New plugins
    • tbDeploymentToolsPlugin: provides tools to organise symfony project.
    • sfPropel15RatableBehaviorPlugin: A behavior based on Propel 1.5 to add to your propel objects the ability to get and set ratings.
    • sfABTestPlugin: allows you to create A/B tests on your site and view the results.
    • dinCachePlugin: This plugin features so-called "smart caching" method. Its main advantage: cache is purged only if original data has changed. To achieve this, plugin uses a set of rules, similar to routing.
    • sfTemplatingPlugin: provides support for using arbitrary templates from anywhere within a symfony project.
    • jmsFormsPlugin: Provides better support for manipulating forms via Javascript and easier embedding of collections/relations.
    • sfEnvironmentFixturesPlugin: Provides support for defining additional fixtures for each symfony environment.
  • Updated plugins
    • sfProjectAnalyserPlugin: added alert for empty application layouts and partials, added alert for application layouts and partials code length, added count of layouts and partials code length of applications, updated package.xml and README, started analysis of project lib directory, notice if $matches was empty (when the file was not a php one), auto-generated modules are displayed in the report, parse activated plugins code, added an option in the YML config file to specify which plugins must be parsed, fixed modules and actions counting for plugins, added average line code length by action, module, application and project
    • sfGridPlugin: updated the widget link contruction
    • sfAlyssaJqGridPlugin: droped the use of getKeyColumn() method
    • sfDoctrineJCroppablePlugin: fix for removing images when the record is deleted, fix for default crop of new images, added config for the default crop
    • dvbNewsletterPlugin: added sluggable to newsletter lists, admin generator stub, italian translation stub
    • sfDoctrineGuardPlugin: fixed sfGuardCreateAdminTask (it was a duplicate of sfGuardPromoteSuperAdminTask, now it is a distinct task based on sfGuardCreateUserTask, with the addition of setting the superadmin flag)
    • ExtjsGeneratorPlugin:
      • fixed a problem with single quotes in the column name for export columns
      • set id field as hidden when no list.display is provided in the generator.yml
      • added support for multiple one-to-one relations
      • added support for field help config option in the generator.yml
      • fixed a bug with filter query location logic in ExtjsFormFilterPropel
      • cleaned up widgets a little bit
      • added support for combo field config option in generator.yml to create filter and form comboboxes that contain unique values for local fields
      • added required config option for fields
      • changed isEmpty label color so the primary filter labels are more noticable
      • fixed a bug with is_empty on foreign propel choice filters
      • fixed a bug with file upload detection in the formpanel submit method
      • fixed bug with new forms
      • removed unused newAction
      • fixed response bug with file uploads for create and update actions
      • fixed formpanel updatebuttonvisibility
      • fixed formpanel save as new
      • fixed a bug when creating a new one-to-one record
      • made ExtjsFormPropel extend sfFormPropel and removed unmodified methods
      • made ExtjsFormFilterPropel extend sfFormFilterPropel and removed unmodified methods
      • added invisible hidden field support to form and filters
      • removed value check for combobox submitOnSelect
      • fixed bugs with button separators and spacers for toolbars
      • fixed bug where generated partial for toolbar and object actions were not being included
      • fixed bug with no_handler warning message in generated partials for toolbar buttons
    • sfDoctrineRestGeneratorPlugin: fixed bug when an error occurs in update mode, made XML serializer more performant, fixed bug when using the default.formats_enabled option which was not parsed until now
    • sfAdminDashPlugin: added option to not include jquery, added option to not include assets (js/css), added option to set homepage url in breadcrumb path
    • lyMediaManagerPlugin: refactored lyMediaFolder model, added some unit tests, added task to synchronize the media library with a directory
    • pmPropelGeneratorPlugin: added some improvements, some bugfixes in preExecuteMethod, tweaked templates
    • csDoctrineActAsSortablePlugin: fixed bug with unique by fields update and position, improved performance
    • dcMailerPlugin: added an action for configuration testing
    • mtAlertPlugin: fixed some minor errors that prevented the sendMail task from doing what it should
    • sfTrafficCMSPlugin: fix for blank date filters
    • sfPhpunitPlugin: hook for running init task just after the plugin is installed, generating web/PROJECT_NAME_test_selenium.php files with support of phpunit functional test coverage report, better integration of functional test coverage report, fix path to ProjectConfiguration.php in generated index file
    • sfFormExtraPlugin: fixed reading of can_be_empty option in sfWidgetFormJQueryDate
    • apostrophePlugin:
      • rebuild-search-index can now safely handle large media libraries by spawning separate batches of 100 media items at a time
      • you can now hit Return to save a new item in aMultiSelect
      • fixed bug where the media library was ignoring use_bundled_stylsheet
      • improved upon aMenuToggle so that the open and close triggers are accessible on the object and can be invoked from external contexts
      • use preg_replace_callback to make aHtml::obfuscateMailto more maintainable
      • fixed a bug in which any single or double quotes in the label showed up with slashes in front of them in the page
      • removed unnecessary error_log call
      • fixed bug in accordion navigation that caused improper ordering classes to be placed on nav-items when archived pages also existed in navigation element
      • updated the breadcrumb partial so that it does out output archived pages when logged out
    • apostropheBlogPlugin:
      • changed default ordering of categories to be by name
      • made it easier to override default templates
      • when no post or event exists, create an empty aBlogPost or aEvent instead of aBlogItem
      • sidebar area was not using the sidebar toolbar for richtext editor in the twoColumnTemplate

New symfony powered websites

  • Conca D'oro: (English) an information website for a weddings and events planner
  • wirsindgolf.net: (Deutsch) Social network for golf sports - find golf courses, plan new flights, compare your scorecards
  • pjchaco.org: (Spanish) sitio oficial del Partido Justicialista Distrito Chaco

They talked about us

Published in #A week of symfony