Symfony2 introduced this week some minor but profound refactorings: the routing component adopted URI template notation, bundles changed their names to be the class name of the bundle not the last part of the namespace and templates name format changed to bundle:section:template.renderer.format (both the renderer and the format are mandatory). Meanwhile, the Symfony2 donation drive to fund code security audits was an astonishing success.

Development mailing list

Symfony2 development highlights

Changelog:

  • e85546e: [DependencyInjection] made some improvments to the container compiler (added generic repeated pass, better optimization of services, started adding some integration tests)
  • d1a2a65: [DependencyInjection] improved performance and added better analysis tools
  • f1e41a9: [DependencyInjection] made some improvements to the container compiler (inline private services which are references multiple times, but where all references originate from the same definition, bug fix for non-shared services which were considered shared within the scope in which they were inlined)
  • 3734c0e: updated bootstrap file
  • f41654f: [Console] added rendering previous exceptions
  • 9a2e053: [Event] collected data is about listener (not event) calls
  • 47b87e9: [TwigBundle] made global more powerful (a global can now be a service or a string)
  • 450a6b3: [TwigBundle] moved global variables under the app. prefix
  • b63de46, 1f88edd, 6dd1d61: [Routing] moved from :var to {var} (this follows the URI template notation: http://code.google.com/p/uri-templates)
  • 40dac23: [WebProfiler] normalize header name and use a single reference
  • b056a6c, 46f3da5: [TwigBundle] fixed cache problem for some global variables
  • 9770944: [SQLiteProfilerStorage] escape special chars in URLs and IPs
  • 5506e9d: fixed loading of validation files for bundles in a vendor namespace
  • b4ac798, 7b940ce: made it easier to implement alternative app directory structures
  • c38c0c3: refactored Templating (made the renderer argument of Storage ctor mandatory, refactored the Engine class to, simplified the check for a template that extends another one but with a different renderer)
  • 3a6f556: [FrameworkBundle] registered FileSystem as a service, switched commands to use it
  • 2a3d94a: [DependencyInjection] added support for anonymous services in XmlDumper
  • 9ec6955: [Profiler] use base64 encoding which is more efficient than unpack (space wise)
  • a69b9e7, e41df3d: [DoctrineBundle] added missing entry in XSD
  • b47cf79: changed priority meaning to be more intuitive
  • 5ee48c4, 6011073: [DependencyInjection] fixed XML entities in XmlDumper
  • 4460b49: added support for base tag for Link and Form
  • 055b6e4: made a big refactoring of the templating sub-framework (better separation of concerns, made TwigBundle independant of the PHP Engine, removed one layer of abstraction, made it easier to create a new Engine for any templating library, made engines lazy-loaded, reduced memory footprint)
  • 75c6f47: removed the magic discovering of format in template name
  • a365ab2: changed the template name format (from bundle:section:template.format.renderer to bundle:section:template.renderer.format)
  • e84c867: [FrameworkBundle] added some unit tests
  • 7ac6d59: changed the bundle name to be the class name of the bundle, not the last part of the namespace
  • ff91ea5: [DoctrineBundle] added support for MySQL Session Init Listener, refactored driver and driverClass approach to follow the Doctrine DBAL factory more closely for this to work easily
  • 38cbc61: [FrameworkBundle] fixed controller names conversion when a bundle is defined in two different namespaces
  • 98b52b6: better support for cookie handling, use native PHP function to set cookies
  • 11085fd: [Validator] added a significant amount of PHPDoc to the Validator component
  • 5c64ca8: renamed Container::freeze() to Container::compile()
  • d5c9f37: [DependencyInjection] added compiler passes as resources
  • 612dce8: [DependencyInjection] added the possibility to pass the type of compiler pass in ContainerBuilder::addCompilerPAss
  • be35aa1: [HttpKernel] added the possibility to add non-namespaced classes to the compiled class cache
  • b7d2528: added a way for any extension to add classes to the class cache

Documentation

New job postings

  • Two experienced Symfony developers at OnlineVille - full-time based in Montpellier, France - Contact: admin [at] onlineville [dot] com

New plugins

  • ksWdCalendar: (no description)
  • pmModelUtils: adds extra functionality to our Propel (or Doctrine) models.
  • sfTCPDFReloaded: allows you to easily create a pdf file. You can also import an existing pdf in the background.

Updated plugins

  • sfDoctrineShortUrl:
    • added the notion of unallowed domain
    • renamed the is_malware field into is_warning (there is no reliable method to detect malware pages)
  • sfDoctrineActAsTaggable:
    • fixed errors with numeric tags
  • apostrophePeople:
    • updated hide/show ajax in index view
    • removed personSlim template as js updates make it obsolete
    • removed some bad class files
  • sfRADIUSAuth:
    • fixed plugin config to automatically set sf_guard_callable option
    • updated readme to reflect changed plugin config needs
  • sfDataSource:
    • fixed an error retrieving a table name from a query
  • sfGrid:
    • added an option to handle custom URI paramenters in a link widget
  • sfDoctrineJQueryUISortable:
    • added an option to allow superclass relationships
  • sfDoctrineRestGenerator:
    • do not remove zero filters from the request parameters
    • fixed parameters cleanup when the passed parameter is an empty value
    • made json the default format for generated APIs
  • sfPropel15:
    • updated externals to use Propel 1.5.6
  • ExtjsGenerator:
    • fixed a strange ColumnModel bug where the column config option sortable would get overridden when creating the ColumnModel with Ext.ComponentMgr
    • found a better way to fix the ColumnModel sortable bug
    • fixed a bug with how the gridpanel CheckBoxSelectionModel is instantiated by ColumnModel that was causing an error when checking a column
  • sfProjectAnalyser:
    • fixed alert reporting for admin generated modules
  • apostropheBlog:
    • fixed sorts were busted in blog and event admin
    • event sort by "date" (start date) now has a secondary sort by start time
    • posts always have a secondary sort by descending pub date and events have a secondary sort by descending start date and time
    • event slots based on tags and categories no longer show events that already happened
    • you can now edit content in an area if there are no events or blog posts found either by filtering or because there are none in the engine
    • tweaked the labels for next and previous buttons for blog post and event date filters
    • wrapped the blog header area in logic to not output the area markup if there are no slots
    • set disqus_needed slot for all post and event templates
    • added an app.yml option to let you limit the amount of items on a blog/events page
  • apostrophe:
    • added an Area to the media engine that can be customized for when there are no media items present
    • cleaned up and styled the Permissions UI that was busted previously
    • removed _privileges.php from a module it was no longer in use
    • moved the Apostrophe badge outside of the logged-in buttons
    • updated the a-drag handle box to use modern a_button helper
    • updated history browser
    • limited the slots available in the area that is displayd when there are no media items to display to just a Rich Text slot
    • you will now see only links to pages you are allowed to visit
    • renamed the 'area_add_content_label' option to be 'area-label'
    • shortened the noMediaItemsArea to being a singleton slot that gets default content from pages.yml fixtures in sandbox if you use them
    • apostrophe:publish-all-pages task sets published_at for all published pages (not archived pages)
    • commited first draft of SlideShare support
    • fixed bugs affecting viddler and potentially other media embed services
    • updated error404Success and noMediaItemsArea
    • Viddler now has caching of its requests that require an api call on every page load of the media repo or a page with a video slot
    • apostrophe:migrate now upgrades tables to UTF-8
    • added some additional logic to the addSlot label for when there is only a single slot enabled in an a_area
    • tag editor columns are now sortable
    • put popular tags in order of usage

They talked about us

Published in #A week of symfony