Symfony2 development focused this week on the new Form/Validation components. Firstly, the 'form' branch was merged, modifying nearly 300 files and 25,000 lines of code. Afterwards, tens of changes and tweaks were committed to make the forms more extendable and easier to use. In addition, Symfony2 PR12 was released and the first beta version was announced for the next week.

Development mailing list

Symfony2 development highlights

Changelog:

  • 50011fa, 5772255: added html5 email input to the forms
  • eb21dc9: [Form] removed obsolete constraints from validation.xml
  • bee5d07: [Form] added a way to specify the form constraint when building the form (useful if you work with arrays instead of objects)
  • 273d72e: [Form] changed separator for Twig blocks from double underscore to single underscore to match the PHP template separator
  • b93f5a3: [Form] renamed ChoiceUtil to FormUtil and gave its methods more general names
  • 3ca5f51: [Form] added support for groups in form validation (when using array data)
  • c660fcd: [Security] fixes a critical security bug in the SwitchUserListener
  • defb021: [DoctrineMongoDBBundle] set annotation constraint namespace alias to assertMongoDB
  • 5a9a657: [AsseticBundle] added factory worker to fix paths when use_controller is on
  • 91602df: [FrameworkBundle] made possible to interact with the Kernel/Container after a request in functional tests
  • 6f16820: [FrameworkBundle] removed unnecessary and buggy functionality from ContainerDebugCommand
  • 07aae98: [Routing] added support for _scheme requirement. The _scheme requirement can be used to force routes to always match one given scheme and to always be generated with the given scheme
  • cdf706d: [DependencyInjection] renamed Definition::setArgument() as replaceArgument() to be more specific
  • 470baaa: [DependencyInjection] renamed ContainerBuilder::remove() as removeDefinition() to be more consistent with other definition-related methods
  • 117321d: replaced array for request context in Routing by a RequestContext class
  • fd1636b: [Routing] added RedirectableUrlMatcher
  • 1191e3a, f7b1839: [AsseticBundle] fixed the cache warmers
  • 30511d2: [HttpFoundation] fixed FilesystemSessionStorage
  • 4d6e239: [Security/Acl] removed Doctrine dependency from interfaces and moved them to the actual implementation
  • f7d4414: [Routing] removed unused defaults variable
  • c6dcf0f: [Routing] added a way to set default parameters that are applied when generating URLs
  • 7266b41: [FrameworkBundle] added the current locale as the default value for _locale when generating routes
  • 54b77d2: made the %count% variable automatically available when using the transchoice filter (similar to how the tag works)
  • cad6643: [Bridge/Twig] simplified exceptions as Twig is now smart enough to automatically add line information
  • 286c457: [Bridge/Twig] removed the possibility to pass a message to the trans tag (use the long version the tags or the filter instead)
  • 8ad9309: [AsseticBundle] updated twig integration to check debug mode at runtime rather than compile time since twig cannot vary its cache by debug mode
  • 6a227f8: [AsseticBundle] removed fake front controller from URL before creating route
  • 57dd6ae: [AsseticBundle] fixed router and controller
  • 314684d: [FrameworkBundle] made ESI URL relative as allowed by the spec (no need to generate absolute URLs)
  • 4dc5b8e, d86aa74: [FrameworkBundle] removed the need to boot a Kernel in a unit test file
  • e6d86eb: moved DoctrineMongoDBBundle to its own repository. It has been done as the bundle depends on Doctrine Common 2.1, but everything else in Symfony relies on Doctrine Common 2.0
  • df50e2b: [Form] removed excess option in the TimezoneType
  • 1856601: [Validator] modified Choice message and added a different multiple message
  • 0069a70: merged branch 'form' (includes 300 commits and more than 25,000 code modifications)
  • a97366f: [Form] splitted signature of FormFactory::create() into create() and createNamed()
  • 0632327: removed data fixtures from core (moved to https://github.com/symfony/DoctrineFixturesBundle)
  • 5c2c16f: moved DoctrineMigrationsBundle to its own repository (https://github.com/symfony/DoctrineMigrationsBundle)
  • 7644e86: refactored session configuration (made the options array only for (reverted)
  • fd05f02: [HttpFoundation] added logic to automatically add the charset when not present in the Content-Type for relevant Content-Types
  • 54e66c5: [Form] reorganized code into form extensions, which are now the only constructor argument of the FormFactory class. They replace the existing type loader classes
  • 1ce2db8: [Form] added FormTypeExtensionInterface. With implementations of this interface, existing types can be amended
  • 6f1bc35: [Form] refactored code from CoreExtension to new ValidatorExtension
  • 2b8c7f8: [Form] added a way to register a Form extension after creation of the FormFactory
  • 55e6883, b347aeb: [TwigBundle] removed obsolete code
  • d9491a7: removed support for interface injection as well as all relevant tests
  • 9bffd8c: [FrameworkBundle] moved some default values to the Configuration class
  • 02c66e6: removed the nestingLevel configuration for file temporary storages
  • 8cc5caf: changed the default directory for the upload temp dir, made the dir mandatory
  • f05801c: [FrameworkBundle] removed the router.options.resource_type and routing.resource arguments
  • 8b74c6e: [DomCrawler] refactored URLs management in Link and Form
  • 78b2062: [Form] added an exception for an invalid widget option in DateType
  • 8eb1dfc: [Translation] forced translated id to strings
  • 675e5de: [Form] changed FormBuilder::build() to FormBuilder::create(). You have to pass the resulting builder to FormBuilder::add() manually now
  • 4ed8d4f: [Routing] fixed URL generation when a non-optional variable is empty
  • e790587: [Form] automatically setting data_class option if objects are passed at the creation of a form
  • dbb5ca4, 29802fa: [Classloader] fixed APC class loader + added unit tests
  • e8bb64c: [Classloader] added phpdoc with example usage + refactored unit tests fixtures

New plugins

  • esWidgetFormPassword: The widget displays a password and password confirmation fields with an optional bit of javascript to replace the confirmation field by a reveal password toggle. The validator allows to generate a random password..
  • tmcAdministration: A new theme for the administration backend. Customization of the sfDoctrineGuardPlugin modules are included and a dashboard based on the sfAdminDashPlugin.

Updated plugins

  • sfPHPUnit2:
    • fixed lime interface for own tester
    • refactored getter for a sfApplicationConfiguration instance
    • refactored switching the context in functional tests
    • added possibility to define custom tester classes in functional tests
  • sw2DecorationToolkit:
    • they stylesheet for this should be included in the first group of stylesheets
  • sfDoctrineActAsTaggable:
    • tabbleComplete module's actions class can now be overridden without duplicating everything, allows graceful modification of the tag query
  • sfDependentSelect:
    • improved English documentation
    • JavaScript code translated to English
  • xtDojo:
    • first step towards 2.0 version
  • apostrophe:
    • added an additional if has slot include slot in the body tag for 'a-body-class'
    • Singleton Slots now look for a 'delete' option. If it is set to true, the trash can becomes available for "unsetting" the slots contents
    • new app_a_global_button_labels option provides an easy-peasy way to relabel some or all of the admin bar buttons
  • apostrophePeople:
    • onDelete: SET NULL for the headshot relation to be able to delete the headshot while the person is still associated with it

New symfony powered websites

  • CPDcast: (English) an online CPD platform, providing distance learning to a range of professions

New symfony bloggers

They talked about us

Published in #A week of symfony