This week, Symfony2 PR5 was released and the definitive roadmap for Symfony2 was laid out. Meanwhile, the activity of the developers mailing list skyrocketed with tens of messages openly discussing every important feature of Symfony2. As a result of these discussions, the bundle management was completely refactored.

Development mailing list

Symfony2 development highlights

Changelog:

  • 8235f71: [DoctrineMongoDBBundle] switched to compiler passes for proxy/hydrator directory creation and event listeners
  • 105d591: added the roles in the Security panel of the profiler
  • d06f805: added a priority for data collectors
  • e0050df: [FrameworkBundle] added a compiler pass for translation loaders
  • c5f2ec8: made DIC tags only available during compilation phase
  • dba8c67: [FrameworkBundle] disabled translator if not explicitely enabled (reverted)
  • d406ca0: [FrameworkBundle] made ESI optional (should now be enabled explicitely)
  • ea27927: disable session if not explicitely enabled
  • fac7885: [Form] added a row() PHP helper equivalent to the Twig form_row()
  • 15575bc: made order of template engine and data collector more predictable
  • 22aba90: [TwigBundle] normalized names of templates and enable cache found templates file names
  • 9f4863e: [DoctrineBundle] cleaned up doctrine:generate:entity
  • 40a70cd: simplified TemplateNameParser::parse() return value
  • 267a7e6: [HttpKernel] fixed Cache, to respect the variable and trigger error handling
  • ae40a5d: [Form] use HTML5 number and url input types for number and url fields
  • 5995772: [Form] allow setting the date_format option via DateTimeField
  • de3f240: [Form] added required attribute on input field templates
  • 8f8f53d: [Form, FrameworkBundle] implemented FormFactory and added it to the DI container
  • 6ad22fd: [Validator] added ValidatorFactory for programmatically creating validators
  • eed3c9a: [Validator] added abstract method Constraint::targets() to define whether constraints can be put onto properties, classes or both
  • 2d7c47e: [Validator] each object is now only validated once for a given group
  • d327a90: [Validator] added namespace prefix support for XML and YAML loaders
  • d928632: [Form] made RepeatedField sub-field names configurable
  • 1cbd0ca: [DoctrineMongoDBBundle] added unique constraint, validator and test, registered validator in DIC
  • 6d52645: [DoctrineMongoDBBundle] registered new validation namespace for annotations
  • 24ff22a: [HttpFoundation] added a directory fallback for when the class is not found in registered namespaces and class prefixes
  • 6d1e91a: refactored bundle management: 1) the registerBundleDirs() method has been removed, so you are now free to use any namespace for your bundles; 2) the bundle name is now always the short name of the bundle class; 3) a new getParent() method has been added to BundleInterface
  • e6f1248: [HttpKernel] added back Bundle::getName() as it is quite useful
  • e135c14: allow arbitrary ordering of config elements in symfony xml config
  • 0b0c15b: made XSD less strict when possible
  • dd20434: fixed kernel:locateResource to loop across the bundle tree to find the first match
  • 507da2a: some performance tweaks (added lazy loading for firewall configurations and implemented re-using of RequestMatchers if all matching rules are the same)
  • 8649deb: [Routing] fixed imports from the current directory
  • a5007fe, 5e9c9f4, 5ff0ded: [FrameworkBundle] renderer is once more the last of the templates
  • 8d19136: refactored extensions to call XXXLoad only once with all config sections
  • bdc7ae8: show cookies in response headers
  • acb19bc: [FrameworkBundle] added document_root option for File objects
  • 69f0ec3: added a method to normalize config entries coming from YAML and XML
  • fedb4b4: [TwigBundle] started to refactor TwigExtension
  • 59a974e: added TemplateLocatorInterface
  • 1d5b6ed: added scope to the DI container
  • c7e3b23: refactored Doctrine Bundle dbalLoad() to make use of config merging
  • 29888a4: [DoctrineBundle] use a Merge Config algorithm for the ORM bundle. Simplified configuration and got rid of unnecessary ways to configure the same thing in several different ways
  • 22f6307: [DoctrineBundle] changed and simplified dbalLoad() slightly. Made logging explicit with a configuration variable to avoid tons of unnecessary method calls in production environment
  • a50f56a: [DoctrineBundle] reverted removal of dic parameter doctrine.orm.auto_generate_proxy_classes
  • 682e835: [DoctrineBundle] added new Command doctrine:mapping:info that allows to check what entities are mapped and if their metadata is specified correctly. Added exception when a mapping/bundle directory does not exist
  • f73107c: [FrameworkBundle] updated XSD file for new csrf_protection configuration format
  • 0b05fe1: [HttpKernel] fixed HTTP headers when requesting a HEAD on a cached response
  • 86b357d: [FrameworkBundle] fixed ESI configuration
  • b577ce6: [HttpKernel] fixed scope management in HttpKernel
  • 73ab687: moved ControllerResolver methods to HttpKernel
  • e151580: [HttpKernel] removed getRequest as it is not part of the interface anymore
  • 005c1d9: [Serializer] added initial version of the Serializer component

Documentation

New job postings

  • Symfony + PHP Developer at BARTON STUDIO s.r.o. - full-time based in Pilsen, Czech Republic - Contact: info@bartonstudio.cz

New plugins

  • sfTCPDFFPDI: allows you to easily create a pdf file. You can also import an existing pdf in the background.
  • sfDoctrineActAsCommentable: makes Doctrine objects commentable.
  • sfSwiftMailerExtended: it is necesary that important emails always receive their destination. Symfony lacks a definition of different email transports. With sfSwiftMailerExtendedPlugin you are able to define different email transports.
  • pxPropelEasyEmbeddedRelation: easily embed related forms and add new as well as edit and delete existing related records within one form (it's a port of ahDoctrineEasyEmbeddedRelationsPlugin for Propel).
  • sfDoctrineCronManager: allows users to administer cron jobs from a backend interface. Useful for users with limited admin access to the server. Jobs can be added, deleted, or run at any time for testing or other purposes.

Updated plugins

  • ysfDimensions:
    • fixed possible undefined index
    • added ability to specify custom cache handler
    • released 1.4.0 version
  • sfProjectAnalyser:
    • added a panel that shows all settings of the analysis
  • sfGrid:
    • added an option to confirm a user action
    • added an option to define when a widget can be renderable or not
  • sfAlyssaJqGrid:
    • refactored render of link widget
  • ExtjsGenerator:
    • fixed a bug with instantiating js classes for modules that start with a lower case letter
    • moved ColumnModel instantiation out of the grid prototype and into the constructor to properly resolve the ColumnModel instantiation bug
    • updated batch toolbar handler to work better when the grid is not the parent grid
    • made the getQuery method for in ExtjsPropel15Route public
    • started adding expander support for gridpanel layout
    • fixed a typo in batchHandler
    • fixed a data format bug in ux.TwinDateTimeField
    • fixed missing constructor partial in columnModel
    • fixed a bug where the primary key fieldname was different from the phpname
  • sfDoctrineActAsTaggable:
    • replaced Doctrine with Doctrine_Core to work with compiled doctrine version
    • replaced trim() by $.trim() to prevent IE7 error
    • replaced Doctrine with Doctrine_Core
  • sfDoctrineGuard:
    • fix to work with doctrine compiled version
  • sfTemplating:
    • loader is now an optional parameter
    • added test setup as generated by sfTaskExtraPlugin
  • apostropheFeedback:
    • there were some text phrases in here not wrapped in a_()
  • apostrophe:
    • user, group and permissions filters now work reasonably well
    • the filters are now open by default if you have made any changes to the filter settings
    • the "username" filter has been relabeled "Name" and it allows you to match the user's full name or their username
    • fixed a call to getFilters() in an admin gen that had no filter form
    • apostrophe:migrate now fixes the ID size for a_media_item_to_category before trying to add constraints to it after the sizes of other IDs have already been updated
    • all slashes in tags are converted to dashes
    • added caching to SlideShare
    • successfully completed doctrine:clean task
    • removed cancel button from search services
    • autocomplete="off" for every field in the user admin form
    • default sorts for tags and categories
    • disabled PDF preview by default
    • made the videoEditSuccess save button the same as the editMultipleSuccess save button
    • fixed cropping aspect ratio for 'c' image and slideshow slots
    • fixed bug with slot cancel button not preventing the click from happening
    • added --verbose option to rebuild-search-index (it now runs quietly otherwise)
    • fixed admin generator theme was caching the CSRF between multiple admin users which means someone can't use batch actions at all
    • removed stale form class blocking i18n
    • commented out custom style default in fckconfig, need to be able to set custom styles
    • added SoundCloud integration
    • Google Analytics is supported out of the box in Apostrophe now
    • updated the cancel button to be a real anchor with a url to aMedia/resume
    • Add/Delete Pages
    • users with "Add/Delete Pages" can add pages without validation errors
    • resolved an issue with aClickOnce and the select link for Video
  • apostropheBlog:
    • moved the JS for the blog slots to aBlog.js. Created a_js_calls
    • inserted deprecated messages into the single slots
    • light markup changes to the blog / events slots so that they work in wide columns and skinny columns
    • removed code for category class columns in blog importer
    • no more defaults for blog import: you have to specify --events=filename.xml and/or --posts=filename.xml
    • categories are correctly mirrored to the virtual page
    • tag import is now supported
    • some adjustments to disqus, added ability to enable developer mode in app.yml, added the comment count to the blog meta partial
    • fixed bug where if you don't click save on the title, it returns 'Untitled' even if you have entered a title

New symfony powered websites

  • sociallynotable.com: (English) an Amazon.com affiliate website built with Symfony2 and Doctrine MongoDB ODM and lets you shop for products that are popular on Amazon.com ranked by what is being mentioned the most on Twitter!

They talked about us

Published in #A week of symfony