Symfony turned 4 this week. Despite being a mature and stable project, symfony still shows an impressive and vibrant development activity. In addition, the last alpha of symfony 1.3 was released this week with tons of fixes and some new features.

Development mailing list

Development highlights

  • r22929: [1.2, 1.3] fixed forgetful autoloader when reloaded without an application configuration (reverted)
  • r22935: [1.3] fixed sfMessageSource_MySQL produces blank white screen if mysql extension disabled
  • r22936: [1.3] removed check for GET variables when checking whether a template is cachable, limited caching to GET requests
  • r22945: [1.3] fixed using CSS selector in sfTestFunctional::click()
  • r22955: [1.3] enhanced propel Web Development Toolbar
  • r23063: [1.3] rewrote task autoloader initialization and reloading so autoload.yml is respected and newly-generated classes are immediately available
  • r23073, r23074: [1.2, 1.3] added an exception in sfValidatorFile when file_uploads is disable in php.ini
  • r23075: [1.3] fixed error when passing an option that does not exist
  • r23077: [1.3] added a new default_params options for sfObjectRouteCollection
  • r23079: [1.2, 1.3] fixed wrong class name generated for filter if not specified in generator.yml
  • r23080: [1.3] fixed cache option "vary" with custom values creates wrong cacheKey
  • r23113: [1.3] added additional Constant checking for delivery strategy in mailer
  • sfDoctrinePlugin:
    • r22921: [1.3] moved creation of doctrine model builder options and cli configuration arrays to plugin configuration class, added filtering through the event dispatcher via doctrine.filter_model_builder_options and doctrine.filter_cli_config events
    • r22930: [1.3] fixed bug in the inheritance with the FormFilters
    • r22958: [1.3] fixed blocked inheritance in doctrine forms
    • r22987: [1.3] Array
    • r23018: [1.3] changed new "smart" form filter logic to use validators rather than widgets when building the query
    • r23019: [1.3] cleaned up use of cli config in doctrine tasks, added method to doctrine base task to prepare project and plugin schema files for doctrine
    • r23020: [1.3] corrected doctrine task documentation
    • r23048: [1.3] added configuration cascade to the merging of plugin and project doctrine schema files
    • r23062: [1.3] fixed placement of BaseFormFilterPropel
    • r23063: [1.3] rewrote task autoloader initialization and reloading so autoload.yml is respected and newly-generated classes are immediately available
    • r23064: [1.3] added type hints to generated form classes
    • r23156: [1.3] fixed implementation of data loader task in build tasks, fixed use of merged schema file in doctrine clean task, made deletion of old doctrine model and form files more precise in delete task
  • sfPropelPlugin:
    • r22939: [1.3] merged changes from sfPropel14Plugin sandbox
    • r22943: [1.3] fixed propel "Cannot fetch TableMap" exception
    • r22948: [1.3] added filtering of phing arguments through propel.filter_phing_args event
    • r22949, r22950: [1.3] added propel:build task
    • r23018: [1.3] changed new "smart" form filter logic to use validators rather than widgets when building the query
    • r23062: [1.3] fixed placement of BaseFormFilterPropel
    • r23064: [1.3] added type hints to generated form classes
    • r23117: [1.3] fixed empty_value for generated propel validators
    • r23169: [1.3] added bound validation on integer types
  • ...and many other changes

Symfony components

  • yaml:
    • r22986: refactored true and false value array so that the code is more obvious and a tiny bit faster
  • templating:

Development digest: 243 changesets, 37 bugs reported, 34 bugs fixed, 12 enhancements suggested, 13 enhancements closed, 3 documentation defects reported, 5 documentation defects fixed, and 17 documentation edits.

Documentation

New developers for hire

  • Ender Technology Corp.: is Los Angeles web design & development company specializing in database driven web applications utilizing the LAMP stack. Our favorite framework for complex custom web applications is Symfony with which we have years of experience.

New symfony bloggers

Plugins

  • New plugins
    • sfDoctrineThumbnailablePlugin: provides easy thumbnail making for your doctrine models.
    • slapOrmPlugin: slapOrm is an abstract layer that turns your LDAP tree into an object oriented collection written in PHP for the symfony framework. It can generate code for your model files and grant you with methods for easy access of your data.
    • sfMongoDBCachePlugin: a reliable and shared cache system for your symfony project. This allows symfony to use a Mongo database to store its cache.
    • sfCurlRequestHandlerPlugin: another simple way to perform remote has an standalone library for PHP CURL extension. The two filters in the package offer a Symfony support to the requests.
    • sfDoctrineJCroppablePlugin: allows you to effortlessly add image editing capabilities to your admin generator backend. You'll be able to add images to your models and be presented with the awesome Jcrop jQuery plugin.
    • sfMisSessionExpirationPlugin: handles Symfony session expirations.
    • sfSqlDesignerPlugin: allows you to draw your schema tables using a drag and drop UI provided by wwwsqldesigner.
  • Updated plugins
    • sfXstandardEditorPlugin: created the initial directory structure, created initial basic widget and added license files, started adding in customised and professional version settings for editor
    • sfFacebookConnectPlugin: included Facebook's JS Animation library, keep the facebook signature parameters in Iframe applications, jQuery/Prototype loading of Facebook Connect, new function for agnostic facebook javascript (fbml VS iframe)
    • swToolboxPlugin: add regex to find the host
    • nahoMailPlugin: fixed Strict notice in nahoMail::loadHelper
    • sfExtjsThemePlugin: fixed bug with stateful checkboxes not having the proper stateId, fixed bug with non-editable foreign columns and custom params, added notice support to edit, re-enabled field override to show help icons on fields
    • pkBlogPlugin: don't use configure to set up plugin doctrine form classes (requires manual editing of the generated project level classes), started working on the pkCalendar engine module, more consistency in the templates
    • diemPlugin:
      • fixed some bugs in admin interface
      • made front components more robust
      • fixed front widget edition
      • added configureServiceContainer method to project configuration class to allow developper to configure the service container
      • disabled admin list pager select when no results
      • made admin javascript loading more precise
      • added admin breadCrumb and search form on object creation interface
      • removed all max_per_page configuration in generators
      • fixed doctrine generated templates
      • added module replacement in module manager config handler
      • improved generator.yml file generation
      • fixed bug in widget type manager
      • removed links in front template generation when module has no page
      • improved ajax error handling on front widget edition
      • implemented form html generation chainability: echo $formname?->label('Name')->field()->error();
      • made form field class overridable
      • improved front actions class differential generation
      • merged all Diem doctrine schemas into one
      • removed deprecated dmMigrate task and dmBuildModel task
      • improved size detection in media image tag
      • added unbindKey jQuery method
      • renamed formManager to forms in actions and components and made it implement ArrayAccess
      • improved front slug generation
      • added getHrefPrefix method to link subframework
      • first alpha version of Diem5
      • added preloadPagesForRecords method in dmDoctrineTable
      • replaced front routing config handler by dmFrontRoutingConfigHandler to handle user special urls
      • added preloadPages method to front actions and components
      • added renderHead method to front layout helper service
      • added dmRedirect module to allow seo team to perform 302 redirections without .htaccess
      • added url_redirect permission
      • added smart 404 functionality
      • massive performance improvement on search index reconstruction
      • added search_page service to service container
      • added isIndexable attribute to widget view classes
      • implemented fast and extensible indexation for model view widgets
      • made form manager create non-existent forms on demand
      • made form manager user model name as key
      • modified front action generator according to previous modifications
      • made list widgets acccept filter modules by local relation
      • added admin modules google analytics & google webmaster tools
    • pkMediaCMSSlotsPlugin: fixed slideshow for emap
    • swOptimizeRoutesPlugin: completed Apache REST support, added option to prefix url and path, started to work on the lighttpd server output handler
    • sfEasyGMapPlugin: added getter for info window, added GMapGeocodedAddress sample and fix api_keys for geocoding
    • mgI18nPlugin: fixed css conflict with other jquery ui css, improved speed load, added custom themes
    • sfAssetsLibraryPlugin: fixed callback for urls in tinyMCE
    • sfSphinxPlugin: fixed Doctrine pager to keep sorting
    • sfZendMailPlugin: added alternate way to get email body that is more inline with the sf1.0 way
    • sfDatagridPlugin: added order_by_for_filter into the admin generator and getOrderByForFilter and setOrderByForFilter to help you to sort filter select tag into foreign keys, added languages files for calendar (fr and en), added IE7 compat for admin generator
    • dcLDAPAbstractionPlugin: now the user can exclude certain attributes (ie: userPassword)
    • sfFilebasePlugin: added unit tests, merged from branch imagetransform, added doctrine behaviour
    • sfEasyAuthPlugin: updated README, rebuilt the model
    • sfDoctrineGuardPlugin: moved config.php into plugin configuration class, added test coverage of user table class, changed all queries to the appropriate table class' createQuery() method, added tests for sfGuardValidatorUser, fixed phpDoc, tests and tasks for symfony 1.3
    • pkPersistentFileUploadPlugin: added new markup option, corrected documentation
    • pkToolkit: new forceScale option to pkDimensions allows forced resizing of images that are smaller than the target size
    • sfMapFishPlugin: fixed preg_replace limitation, modified coordinate in GeoJSON from string to float, fixed the preg_replace limitation and the coordinates in GeoJSON, updated README about geometry column declaration, fix WKT test failed
    • sfSSOPlexcelPlugin: updated README
    • psToolboxPlugin: included IE workaround
    • sfUnobstrusiveWidgetPlugin: fixed optgroup rendering in sfUoWidgetFormSelect widget
    • pkImageConverterPlugin: when netpbm is turned on (which is the default), but netpbm fails (probably because it is not installed), gd is automatically tried instead
    • pkContextCMSPlugin: vhost.sample reflects, updated documentation to cover lack of need for explicit disabling of netpbm

New symfony powered websites

  • Perq: (English) a business application for employee leave time
  • Deskjobs.ro: (Romanian) a recruitment platform
  • Goalie Gigs: (English) online Goalie Rental Marketplace for Hockey Goalies
  • Biblioteca MCPC: (Spanish) sistema de Consulta de Material Bibliográfico
  • RUOSC: (Spanish) sistema de Registro Único de Organizaciones de la Sociedad Civil
  • #CMAX.gg: (English) marketplace for auctioning Online Game Servers and Hosting Services
  • Smallville Site Web: (French) French website devoted to TV show Smallville

They talked about us

Published in #A week of symfony