Symfony published this week three new maintainance releases of its 1.2, 1.3 and 1.4 branches. Next week, the Symfony Live 2010 conference will host tens of sessions, workshops and social events attended by hundreds of symfony fans. Moreover, the first alpha version of Symfony 2 will be previewed during the conference.

Development mailing list

Development highlights

Symfony 1.X branch:

  • r27736: [1.3, 1.4] fixed sfValidatorDoctrineChoice in cloned forms (embedForEach) doesn't function correctly
  • r27738, r27989: [1.2, 1.3, 1.4] fixed XSS hole in select checkbox and radio widgets
  • r27750: [1.3, 1.4] updated generated stub task to guess a default connection name based on ORM
  • r27752: [1.3, 1.4] fixed initializion of output escaper array iterator
  • r27755: [1.3, 1.4] fixed double escaping of partial vars
  • r27836: [1.3, 1.4] fixed submission of disable form fields by browser
  • Milestone 1.4.2 completed
  • Milestone 1.3.2 completed
  • r27954: [1.3, 1.4] fixed enabling of local csrf protection when disabled globally
  • Milestone 1.2.11 completed

Symfony 2.X branch:

  • 661a..febc: [DependencyInjection] removed Iterator interface support from Container as there is no real-world use case
  • 7a26..b054: [DependencyInjection] added annotations support in the service Definition
  • 8e81..718b: [Yaml] added specific exception classes
  • 5d85..d804: [DependencyInjection] added the extension files in the list of loaded resources
  • 4735..9d1f: [DependencyInjection] fixed XSD validation local path locations for extensions
  • 9e57..86e8: [DependencyInjection] added a way to configure extensions in plain PHP, added a fluent interface to BuilderConfiguration

sfDoctrinePlugin:

  • r27742: [1.3, 1.4] fixed generation of enum pk form widgets
  • r27747: [1.3, 1.4] fixed doctrine pager iteration
  • r27748: [1.3, 1.4] fixed form filtering by 0 on a number column
  • r27749: [1.3, 1.4] updated doctrine forms to allow setting of defaults on numeric fields from within configure
  • r27842: [1.3, 1.4] fixed typo, fixed consistent use of field rather than column name in doctrine form generators
  • r27915: [1.3, 1.4] fixed use of array union operator

sfPropelPlugin:

  • r27748: [1.3, 1.4] fixed form filtering by 0 on a number column
  • r27749: [1.3, 1.4] updated propel forms to allow setting of defaults on numeric fields from within configure
  • r27915: [1.3, 1.4] fixed use of array union operator
  • r27940: [1.3, 1.4] fixed field name used when propel unique validator throws a non-global error

...and many other changes

Development digest: 344 changesets, 28 bugs reported, 50 bugs fixed, 6 enhancements suggested, 12 enhancements closed, 6 documentation defects reported, 5 documentation defects fixed, and 12 documentation edits.

Documentation

New Job Postings

  • Web developer with Symfony at Webstyle Systems - full-time based in Wroclaw, Poland - Contact: programista [at] ws-webstyle [dot] com
  • Symfony freelance at Hypios - full-time based in Paris, France - Contact: jobs [at] hypios [dot] com

New symfony bloggers

Plugins

  • New plugins
    • dmTagPlugin: allows to add tags to your records. It packages a Doctrine behaviour, two front widgets and an admin interface to manage tags.
    • ahDoctrineEasyEmbeddedRelationsPlugin: Easily embed related forms and add new as well as edit and delete existing related records within one form.
    • sfDefineEnvironmentConfigCachingPlugin: provides a convinience of handling original yamls for defining environmental configurations.
    • apostrophePlugin: Apostrophe is a content management system. Apostrophe is open source, and built upon the great work of other open source projects. That's why our apostrophePlugin is a plugin for the Symfony web application framework.
    • laiguAdminThemePlugin: packages a new admin generator theme based on AJAX requests via ExtJs. You can use laiguAdminThemePlugin to create yours master-detail relations.
    • sfDoctrinePaginationOnLoopPlugin: allows you simply go through any table data on loop which means if we reach the end of the table we must start from the beginning. Reverse order should also work.
  • Updated plugins
    • tdBlogPlugin: fixed some minor errors
    • sfSympalTagsPlugin: added a table method to return Content objects matching a certain type, reworked a method used by sfSympalBlogPlugin to use a better query and also to return only a query
    • sfSympalBlogPlugin: added a module to handle the listing of posts that match a specific tag, modified breadcrumbs
    • sfSympalCommentsPlugin: loaded the stylesheet in first so that it can be overridden easily by a theme stylesheet
    • sfSympalPlugin:
      • splitted the published portion of the query into a separate function so that it can be used independently in other places
      • improved the pager headline language based on how many results & pages are returned
      • improved the stock 404 message that seems to most commonly occur if you have an sfSympalContent record without any related content type record
      • cleared the cache only if the route has changed
      • made the published_at slot renderer format configurable
      • fixed issue where slug is set to menu name and used for label
      • reworked the menu item test as I dive into reworking and finishing its functionality
      • added test for hasChildren() and simplified the function slightly
      • made automatic form rich date changing configurable
      • fixed issue where rootSlugs is not an array
      • fixed issue with CreatedBy is not present
      • disallowed the deleting of yourself as a logged in user to avoid locking yourself out of Sympal
      • enhanced theme configurations for available and disabled
      • enhanced the themes modules to allow previewing and making it the default theme globally or for the current site by clicking buttons next to each theme
      • refactored content routing to standalone class so it can be used and cached with the menus
      • fixed shortcuts and adding shortcut to go between frontend and admin
      • changed editor save to not disable edit mode when save is complete
      • added menu to change language/culture
      • fixed count of comments
      • fixed change language menu from showing when i18n is off
      • added more control over what happens when you access some unpublished content
      • added online/offline functionality
      • added a right panel with statistics in it to the dashboard
      • initial entry of Zend lucene search functionality
      • added clear cache progress screen inside a fancybox
      • trying out fix for issue where context needs to exist for install
      • improved task for building search indexes
      • fixed issue with plugin install
      • more configuration options for install and speeding things up a bit
      • added breadcrumbs to admin pages
    • diemPlugin:
      • removed dmAuth and dmAuthAdmin modules
      • improved user integration for social websites where each user has a page and can self register
      • added unit and functional tests for user integration
      • added default user widgets (form and signin)
      • made password required when creating a new user
      • refactored user actions
      • improved admin secure page style
      • updated test project for new theming syntax
      • added user pages to test project
      • added action.method_not_found to allow to extend actions with new methods
      • made some action getters public to ease actions extension
      • applied main/login -> main/signin convention change to PluginDmPageTable
      • provided automated upgrade task for theming and user changes
      • removed theme keys and renamed dmTheme->path to dmTheme->dir
      • updated dmThemeManager to accept both old and new theme declaration syntax
      • removed deprecated access_links configuration
      • updated front html sitemap to exclude new main/signin page
      • refactored dmFront actions to support user integration and be more extensible
      • added signin/signout routes for admin and front
      • updated front and admin toolbars to use new routes and new theming API
      • updated project skeleton configuration for new login actions and theming API
      • simplified dmZone.js
      • overrided dmUser module in test project
      • added exception check in dmTestFunctional
      • improved front security functional tests
      • renamed "Project" to "Content" in skeleton modules.yml
      • PluginDmPageTable now adds a dmUser/signin widget when it creates the main/signin page
      • proper doctypes generation + compliant html for each doctype
      • fixed dmModuleManagerConfigHandler when Diem is embedded in the project
      • fixed diagram generation use tempnam
      • removed temp file and fix exception message
      • fixed possible issue if trying to create basic pages when service container is not loaded
      • added unit tests for theming, project config, project loremizer and DmTaggable behavior
      • Swift mailer is now loaded by default on each request
      • now stylesheets containing @import are never cached
      • added dm.form_generator.validator_class event to allow plugins to change form validators classes
      • added dispatcher dependency to dmAdminGeneratorBuilder
      • added dm.admin_generator_builder.config event to allow to change the generator config
      • media library nor more replaces media files, but create a new media for each uploaded file
      • existing medias are now intelligently suffixed
      • added PluginDmMediaForm->setMimeTypeWhiteList method to ease the media form validation
      • removed deprecated class dmGalleryMediaForm. Admin gallery now just uses DmMediaForm
      • added functional tests for admin galleries
      • simplified handling of embedded media forms
      • added unit tests for embedded media forms
      • improved DmGallery Doctrine Template and added hasMedia(DmMedia) method
      • removed deprecated attribute in DmMediaForRecordForm
      • added "enabled" option to event_log and request_log services
      • disabled log services when request has a "dm_nolog" parameter
      • removed useless code in dmBaseLinkTag
      • allowed to embed relations lists into admin forms
      • allowed to add an empty field to the form by adding a "_empty_" field in the admin generator form display section
      • escaped page name in default search results widget
      • fixed flash messages translations in admin
      • fixed dmBaseActions->download() default file_name
      • added dm.content_chart.filter_modules event to allow to modify the modules shown in the content chart
      • improved performances in dmDoctrineTable by caching isI18n
      • removed deprecated code in dmFilesystem
      • changed default front layout class to dm_layout
      • added dmMenu->moveToFirst() & dmMenu->moveToLast() methods
      • added dmAlternativePlugin
      • dded jquery.jstree beta2
      • added page_tree_view service with two implementations (front & admin)
      • made front & admin page panel use the new jstree
      • updated page tree sprite icons
      • removed deprecated class dmRecursivePageList
      • removed dmFlowPlayerPlugin tests from test project
      • moved project to Git repository
    • sfPhpunitPlugin: fixed notice, updated amftest case, fixed problem with using sabreamf multiple times, autocomplete for fixture magic methods, the default environment can now be set in runtime using the --env option, fixed path on windows
    • tdVisitorCounterPlugin: fixed daily visitors chart max value bug
    • sfPropel15Plugin: fixed problem with return values for preDelete behavior for SfPropelBehaviorSymfonyBehaviors
    • csSecurityTaskExtraPlugin: updated README, tweaked the layout for group testing, better implementation (actually pulls from cached security.yml file) takes into account security handler, added symfony bootstraping in order to take advantage of security config handlers, added optional "module" argument to only view security for a particular module, allowed optional argument for targeting a specific module, added ability to filter by module for user/group security tasks, normalized keyword formats, added multiline credentials for better readability
    • pmModuleEnablerPlugin: performance optimization
    • sfXssSafePlugin: added helper to truncate escaped text, added class for cleanup
    • bhLDAPAuthPlugin: recursive fix
    • omCredentialsMapPlugin: optimization off sfFinder uses
    • sfEasyAuthPlugin: extra credentials no longer have to refer to a class
    • pkBlogPlugin: fix for upcoming events query
    • npAssetsOptimizerPlugin: moved the general configuration to 'all' envs instead of the prod one by default
    • sfSolrPlugin: refactored some part (try to remove SolrPhpClient direct dependency), fixed some test
    • sfExtjs3Plugin: added Ext.form.Checkbox config
    • sfJqueryReloadedPlugin: upgraded plugin to use latest stable release of jQuery v1.4.1, reverted the upgrade because it seems to break a number of heavily used jQuery plugins
    • dmMediaUploadifyerPlugin: made action use ->renderAsync, added assets configuration, fixed possible issues when using without a virtual host, renamed module to dmMediaUploadifyerAdmin to match new plugin admin module conventions, removed dmMediaLibrary module and added a route to the upload action (flash doesn't like "+" in urls), made admin routing config handler load Diem routes in last position, fixed uploading more than 3 files
    • swToolboxPlugin: added custom pager and hydratation option to the swDoctrineDatagrid
    • sfDependencyInjectionContainerPlugin: updated plugin to make it compatible with sf 1.4, updated README
    • sfDoctrine2plugin: added proxy class generation task, added app and env to task so it works in all scopes, added a task for checking if the project is production ready, fixed option name and indenting
    • dmGoogleMapPlugin: now accepts decimal coords with ->coords() method, fixed issue with launcher in admin application
    • sfPropelParanoidBehaviorPlugin: created branch to fix plugin using sf 1.0 mixins implementation, fixed mixin call for use with symfony 1.0 propel builders
    • sfJqueryFormValidationPlugin: started re-engineering plugin to add support for embedded forms and to clean up the code

New symfony powered websites

  • My Poker Tour: (French) site pour vous aider à organiser vos parties de cartes entre amis
  • Montreal Web Conference: (English) Meet the experts of web development in person and discover the web of tomorrow. Confoo is a major web conference. It cover every aspect of development, from back-end to frontend, from security to scaling, Confoo is also very much about PHP.

They talked about us

Published in #A week of symfony