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 #214 (31 January -> 6 February 2011)

Symfony2 boosted its development activity this week, just before the first Symfony Live 2011 conference in San Francisco. A new SecurityBundle was introduced, class loading was moved to its own component and the Form and Validator components were vastly revamped. In addition, the first version of the config normalizer was committed, although symfony community showed no consensus about it yet.

Development mailing list

symfony 1 development highlights


  • r31978: [1.4] updated externals for 1.4.9

Symfony2 development highlights


  • fb889a2, cd96c91: replaced some var_export() with json_encode() for better readability
  • 57ae50e: [Security] many improvements and fixes
  • e645090: moved security related things to a new SecurityBundle (the Security component is left unchanged)
  • 24c7715: [DoctrineBundle] created DIC params for security user provider EM/DM aliases (reverted)
  • 75404e6: renamed HttpKernel/Cache/ namespace to HttpKernel/HttpCache/
  • cf64d2c: changed Security Component namespaces
  • ff34f7d: [DoctrineMongoDBBundle] added support for multiple document managers
  • 0219ec3: [DependencyInjection] added missing methods in ContainerInterface
  • 7bd3039: [FrameworkBundle] moved some cache warmers
  • 42f9c55, 6997fba, 95e10b3: moved the class loader to its own component
  • 8ccb8eb: added security.interactive_login and security.switch_user events
  • db81828: moved class compiled in cache to the FrameworkBundle
  • 2509c9d: added an autoloader that uses a class map (a class in Symfony2 can be loaded by four different mechanisms: bootstrap.php, classes.php, MapFileClassLoader and UniversalAutoloader)
  • 3c9c43d: [DoctrineBundle] added support to configure DBAL Types through the dbal configuration section
  • 6337506: [DoctrineBundle] refactored doctrine-1.0.xsd
  • 224e66f, 98c1056: [HttpFoundation] added static Request::fromGlobals() (the Request constructor no longer uses values from PHP's super globals. Your front controllers will need to be updated)
  • 803dd58: added definition inheritance support
  • 0c3ca26: [Validator] implemented traversing of \Traversable objects using the @Valid constraint
  • ce61baf: [Form] ChoiceField now accepts closures in the 'choices' option
  • 34865a3: [Form] added a field guess for AssertType('\DateTime') constraint
  • ebd2ca6: [Form] moved option 'empty_value' to ChoiceField. An empty value is displayed if the field is not required.
  • 62d52d8: enabled normalizeConfig() to handle irregular plural forms
  • bdbfb44, 5014ee9: [DoctrineBundle] cleanup of the Command namespace in DoctrineBundle
  • c4a2fb4: [DoctrineBundle] shortened Dependency Injection Fixture namespace to avoid Windows filepath length error
  • 65eb70d: [Kernel] tweaked bundle management
  • e23f39c: [Security] config refactoring
  • 8a87953: [Security] added key normalization, and removed some conditionals
  • 2539da5: [Security] added AbstractFactory
  • f2a3135: [Security] made a unique name required for each firewall
  • 025e142: removed parameter converters as decided during IRC meeting (supported is still provided by FrameworkExtraBundle)
  • 5f11e49: [HttpKernel] made exceptions more robust (avoid too deep nested arrays PHP errors)
  • 5e5b6f0: [HttpKernel] made sure that parent bundles are registered before their descendants
  • b7a0f71: [FrameworkBundle] added more file to the class cache when using the PHP templating engine
  • d1cd442: [FrameworkBundle] added session listener for test environment
  • b52e282: [HttpFoundation] added ApacheRequest
  • 839cb02: [HttpKernel] added a bootstrap file for HTTP cache front controllers
  • 2c43554: [HttpKernel] added a StoreInterface
  • 347c069: [DoctrineBundle, Form] implemented EntityChoiceField
  • 3bf9f77: [DoctrineBundle, Form] implemented EntityFieldFactoryGuesser
  • d152b5e: [Form] moved Doctrine2 specific files
  • 57cbd57: [Form] fields may now be anonymous, but anonymous fields must not be added to groups
  • 4fcb985: [Form] simplified Form::bind(), added convenience methods Form::bindRequest() and Form::bindGlobals()
  • c468db5: [Form] merged classes FieldGroup and Form for simplicity
  • fdbc064: [Form] removed automatic distribution of the locale in the Form component
  • e5ed98c: [Form] added option 'data' to Field for populating a field with a fixed value
  • fb1f991: [Form] changed semantics of a bound form (a form now always has to be bound, independent of whether the request is a POST request or not)
  • a28151a: [Form] removed FormFactory and improved the form instantiation process
  • b484763: [DependencyInjection] added first version of the config normalizer (this is mainly intended for complex configurations to ease the work you have with normalizing different configuration formats, such as YAML, XML, and PHP)
  • e6dc155: fixed validator class metadata warning
  • 628a4d1: [Form] refactored validation logic into validate() method. Removed bindGlobals() to reduce API clutter
  • 4f0283a: [Form] removed Form::isBound(). Form::bind() is only a shortcut method now, use Form::isSubmitted() if you want to find out whether a form was submitted
  • c923af2: [Form] adapted constructor of CollectionField to match the constructors of the other fields
  • 5e3fab2: [Form] the form is now validated seperatedly from its data
  • 7c9c7af: [Form] fixed arrays not to be passed to the validator
  • 5ed4d91: [Validator] implemented Execute constraint
  • 1a34743: [Validator] fixed Collections annotated with @Valid may contain scalar values
  • 39c1481: [Form] fixed form validation (separated validation of data and form had serious drawbacks)
  • c05fb03: [HttpKernel] changed the core.view event to only be notified when the controller does not return a Response
  • 2d69369: [ClassLoader] added the possibility to define more than one directory for a namespace or a prefix
  • b6f400a: [DependencyInjection] made an optimization on dumped DIC
  • f4282ee: [Routing] added support for non-standard port numbers in absolute urls
  • ea536b0: [FrameworkBundle] added cache warmer priority
  • 3ed4711, f455700: [Bundle] made getPath() less error prone by allowing both backward and forward slashes
  • 710a1e5: [TwigBundle] added support for template as Twig_Template instances
  • 1e3dc14: [Testing, HttpKernel] added possibility to functional test raw body data
  • 7f6fc6f: [TwigBundle] fixed form template inheritance


New job postings

  • Symfony developer at Rettet den Regenwald e.V. - full-time based in Hamburg, Germany - Contact: tobias [at] regenwald [dot] org
  • Symfony developer at iqcleverkaufen - full-time based in Minsk, Belarus - Contact: rabota [at] iqcleverkaufen [dot] com

New developers for hire

  • Amin Vijay ([email protected]): India-based web developer with 7 years professional experience, 3 years hands-on experience with Symfony 1.0+ (and occasional project contributer), Strong PHP/MySQL/Linux application development expertise, a diverse skillset and several Symfony-based applications in production.

New plugins

  • chat: (no description)
  • sfDoctrineFileStorage: Doctrine behavior that provides an easy way to work with files, uploads and images.
  • urAdminTheme: allows some new options for admin generation: layout, row Level credentials and context level credentials.
  • mbpDistributedCache: enables cross-application cache clearing on distributed servers (e.g. a cluster) that share a common database.

Updated plugins

  • dcReloadedFormExtra:
    • added mtWidgetFormWrapper, dcWidgetI18nNumberInput, mtValidatorDateExtended and dcValidatorI18nDecimal
  • pmPropelGenerator:
    • added list variable
  • sfPropel15:
    • added js escaping in sfWidgetFormSchemaOptional
    • added options to new related form
    • fixed wrong comment in js code
    • updated externals to use Propel 1.5.6
    • added propel:diff, propel:status, propel:up, propel:down and propel:migrate tasks
    • enhanced filter embedded forms with criteria
  • sfPinba:
    • check context before use for tests
  • pmModelUtils:
    • now choices are translated using _translate_ function
  • sfReCaptcha:
    • added support for AJAX to the HTML generator helper function
  • sfProjectAn:
    • allowed plugin.to_ignore to ignore some plugins
  • apostropheBlog:
    • fixed a crash if the blog post has no author
    • fixed styling conflicts with next / prev arrows in the date browsing
    • added the getRichTextForAreas call to the blog plugin
    • added a singular wrapper for the blog getRichTextForArea
    • fixed admins were losing their ownership upon saving of the blog post form because the list of allowed authors did not contain them
    • author and category filters are now alphabetically sorted
    • you can now filter by "No Author" and by "Uncategorized"
    • a blog post or event with no author displays that fact in a reasonable way
    • author and category filters can be combined with other filters properly
    • Google Calendar URLs should now work in every case because I've put a character limit rather than a word limit on the length of the summary and made it conservative enough that we don't wind up with 2,048+ byte URLs
    • aBlogItem::getTextForArea now has an options parameter, which is passed on to aString::limitWords, allowing you to specify an alternate ellipsis or the 'characters' option
  • apostrophe:
    • fixed the "crop corners stuck in upper left of image" bug on first crop
    • created a wrapper around getAreaBasicHTML() for the getRichTextforArea() call that is the preferred name for this method
    • rescoped media selecting js so that you can click on the title also to make your selection
    • file slot now allows filtering by type, and lists only types that are downloadable
    • images can be selected successfully for a file slot (this downloads the original of the image)
    • moved jquery.jplayer into the /js/plugins folder, added it to the JS in BaseaTools, made sure to use_helper(a) in the partials
    • added jquery.scrollTo for the Cropper
    • aString::limitWords now has a 'characters' option, which can be used to limit by characters rather than words

New symfony powered websites

  • TimeHive: (English) webbased project timetracking software

New symfony bloggers

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.

A week of symfony #214 (31 January -> 6 February 2011)

Tweet this


Comments are closed.

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