This week Form component continued its huge refactorization with hundreds of fixes, tweaks and changes (some of them breaking BC). In addition, Symfony Live San Francisco 2012 was announced and SensioLabs launched in United Kingdom.

Development mailing list

Symfony2 development highlights

Master branch:

  • 53aaf76: [Routing] removed unused 'defaults' property of Router
  • 2996340: [Form] extracted FormConfig class to simplify Form constructor
  • c2a243f: [Form] made PropertyPath deterministic: "[prop]" always refers to indices (array or ArrayAccess), "prop" always refers to properties
  • 860dd1f: [Form] adapted Form to create a deterministic property path by default
  • 2301b15: [Form] tightened PropertyPath validation to reject any empty value (such as false)
  • 5e87dd8: [Form] added tests for the case when "property_path" is null or false
  • 306324e: [Form] greatly improved the error mapping done in DelegatingValidationListener
  • 7a4ba52: [EventDispatcher] added UnmodifiableEventDispatcher class
  • bbffd1b: [Form] fixed index checks in PropertyPath classes
  • 0c09a0e: [Form] made $name parameters optional in PropertyPathBuilder:replaceBy(Index|Property)
  • c8b61d5: [Form] renamed FormMapping to MappingRule and moved some logic there to make rules more extendable
  • 215b687: [Form] added capability to process "." rules in "error_mapping"
  • 59d6b55: [Form] fixed error mapping aborts if reaching an unsynchronized form
  • ac69394: [Form] allowed native framework errors to be mapped as well
  • a6b3902: added the possibility to translate the placeholder and title attributes in the PHP form templates
  • 517ae43: [Console] added an exception when an option name or shortcut is invalid
  • 0935964: [HttpFoundation] modified example for mod_rewrite to not add Authorization header if it is not set in the request
  • d1864c7: [Form] fixed virtual forms are ignored when prepopulating a form
  • bad6d04: [Form] added accessor FormConfigInterface::getByReference() and let Form clone objects if not by reference
  • 37a3a29: [OptionsResolver] optimized validation
  • bcf8cf9: [Process] refactored the Windows handling so it is always executed
  • 0af5f06: [OptionsResolver] added method setFilters() for augmenting the final option values
  • 97de004: [OptionsResolver] added option type validation capabilities
  • 027259e: [Form] changed getDefaultOptions() to setDefaultOptions(OptionsResolver $resolver) in FormTypeInterface
  • 0ef4066: [Form] options are now passed to buildView() and buildViewBottomUp()
  • 2cd99e8: [Form] added FormBuilderInterface and FormViewInterface and cleaned up FormTypeInterface and FormTypeExtensionInterface
  • dc2fa9d: [OptionsResolver] added OptionsResolverInterface
  • 8cae328: [Form] setDefaultOptions() is now coded against OptionsResolverInterface
  • bec8015: [Form] renamed client and application format to view and model format
  • 33fecca: [Form] merged various form events and added class FormEvent
  • 877d8f7: [Form] reversed the order of $type and $name in FormFactory::createNamed[Builder
  • 98a7c0c: [Form] consolidated FormInterface, FormBuilderInterface and FormViewInterface
  • 2e6cdd1: [Form] inverted the logic of "single_control" and renamed it to "compound". The opposite is now "simple".
  • ee803cd: [Form] renamed setVars() to addVars() in FormViewInterface
  • 8c23d7f: [Form] fixed "error_mapping" is not an attribute anymore, but an option
  • c688166: [Form] fixed form type translation_domain inheritance
  • 8308aea: [Config] added EnumNode

2.0.x branch:

  • 8223632: [HttpFoundation] fixed the UploadedFilename name sanitization
  • 55faa54: [Form] fixed invalid 'type' option in ValidatorTypeGuesser for Date/TimeFields
  • 7a85b43: [TwigBundle] fixed the path to templates when using composer
  • 8c6c86c: [FrameworkBundle] added unit tests for AddCacheWarmerPass class

Repository summary: 4,763 watchers (#1 in PHP, #30 overall) and 1249 forks (#1 in PHP, #12 overall).

They talked about us

Published in #A week of symfony