This week, Symfony2 master branch committed a ton of fixes, tweaks and refactorizations related to Form and Validation components. In addition, Symfony2 official repository achieved a very remarkable milestone: 1,000 forks.

Development mailing list

Symfony2 development highlights

Master branch:

  • a676598, 57cc531: [Form] added class LazyChoiceList
  • 307f17d: [FrameworkBundle] code factorization in TraceableEventDispatcher
  • 5aa5987: [Form] fixed form children are always validated in group Default
  • dbd3a1b: [Security] allowed unsetting parentAcl on MutableAclInterface
  • 1678a3d: [Validator] fixed Validator::validateValue() propagates empty validation root instead of the provided value
  • 1dd302c: [Validator] fixed ConstraintViolationList::__toString() to not include dots in the output if the root is empty
  • f904a9e: [Validator] fixed GraphWalker does not add constraint violation if error message is empty
  • a103c28: [Validator] the Collection constraint adds 'missing' and 'extra' errors to the individual fields now
  • de253dd: [Form] added read_only and disabled attributes
  • fe85bbd: [Validator] simplified ExecutionContext::addViolation() and added ExecutionContext::addViolationAt()
  • a30a679: [Validator] made ExecutionContext immutable and introduced new class GlobalExecutionContext
  • 9153f0e: [Validator] deprecated ConstraintValidator methods setMessage(), getMessageTemplate() and getMessageParameters()
  • 3c28ab7, c373d5b: [Routing] no prefix is required to override imported RouteCollections
  • e9b4c58: [Console] enable process isolantion in shell
  • 7cecb4e: [Form] added support for parent of FormBuilder
  • 2e4ebe4: [Validator] renamed methods addViolationAtRelativePath() and getAbsolutePropertyPath() in ExecutionContext
  • 7837f50: [Form] added FormUtil::singularify()
  • 49d1464: [Form] implemented MergeCollectionListener which calls addXxx() and removeXxx() in your model if found
  • 9b0245b: [Form] made prefix of adder and remover method configurable
  • 9a4e22e: [Form] disallowed infinity in NumberToLocalizedStringTransformer
  • d208f4e: [Form] made it possible to use models with only either addXxx() or removeXxx()
  • b393774: [Form] used direct method access in MergeCollectionListener instead of Reflection to avoid problems when using class hierarchies
  • 02f61ad: [Form] renamed choice and collection options 'adder_prefix' and 'remover_prefix' to 'add_method' and 'remove_method' and allowed to specify full method names
  • 8dc40e4, 4847d3a: [FrameworkBundle] added config:dump-reference console command
  • 58939f1, 9757958, 2f8ad93, fa32885: added configuration docs for TwigBundle (reverted)
  • bd461e2: [Form] forms now don't create empty objects anymore if they are completely empty and not required. The empty data for these forms is null
  • 0753cee: [Form] fixed read_only attribute for expanded fields

2.0.x branch:

  • a1b6d4c: [DependencyInjection] added a failing testcase for escaped % in array parameters
  • 048fc2f: [Form] fixed broken MoneyType test for JPY
  • 8e13095, a7b48c0: [DependencyInjection] fixed the unescaping of parameters to handle arrays

Repository summary: 3,869 watchers (#1 in PHP, #28 overall) and 1000 forks (#1 in PHP, #11 overall).

Updated plugins

  • apostrophe:
    • fixed bug that caused page forms not to work
    • refactored getEmbedCode() so it doesn't instantiate embed services twice and doesn't crash if the service URL is bogus and the width and height aren't known
    • don't cache non-200 OK responses, it leads to SEO problems
    • refactored nonrecursive version of aFiles::rmRf
  • apostropheBlog:
    • fix for XSS attack

They talked about us

Published in #A week of symfony