Symfony development returned this week to its usual frenetic activity with tons of important fixes and additions. Firstly, symfony 1.3 unveiled a brand-new email support based on SwiftMailer 4. Secondly, a major performance improvement was introduced in the routing system. Lastly, both Doctrine and Propel showed an intense activity, symfony 1.0.21 was released and YAML component started support for the 1.2 YAML specification.

Development mailing list

Development highlights

  • r21808: [1.3] added email support with SwiftMailer 4
  • r21812: [1.3] added sl translations for the admin generator
  • r21821: [1.3] disabled mailer web debug panel if mailer factory has not been created
  • r21831: [1.3] added sensible default for the mailer configuration when generating a new application
  • r21835: [1.3] added a timer for factories initialization
  • r21843: [1.3] made some major performance improvements to the routing system
  • Milestone 1.0.21 completed
  • r21844: [1.3] changed the default cache setting for the routing to null as this is the best option for most projects
  • r21845: [1.3] removed default values from generated config files as we have now the reference guide and because they are always out of sync
  • r21856: [1.3] updated mailer debug panel to capture mailer using the mailer.configure event
  • r21858: [1.3] added more deprecated stuff
  • r21859: [1.3] cleaned up fixtures configuration files
  • r21864: [1.2, 1.3] fixed fieldset title displayed even if no field to display
  • r21869: [lime 2.0] fixed error handler
  • r21872: [1.3] enhanced plugin:publish-assets task to accept 0-n plugin names as arguments
  • r21876: [1.3] added default_format option to the request (reverted)
  • r21881: [1.3] made sfValidatedFile standalone to ease overriding
  • r21884: [1.3] switched YAML to use the 1.2 specification by default
  • r21888: [1.3] added more flexibility to sfFunctionCache
  • r21889: [1.3] added pager convenience methods isFirstPage(), isLastPage()
  • r21890: [1.3] added min/max options to sfValidatorChoiceMany
  • r21897: [1.2, 1.3] fixed generate:project error message
  • r21899: [1.3] added an exception when the --installer of generate:project does not exist
  • r21908: [1.3] made some optimizations by replacing is_null() by null ===
  • r21911: [1.0] fixed possible notice in sfCacheFilter (reverted)
  • r21912: [1.3] implemented Iterator and Countable on sfPager
  • r21918: [1.3] view cache manager now accepts params in factories.yml, added two params to enable or disable use of vary headers and host name in cache key generation, default to use all (as in symfony 1.0 1.1 and 1.2)
  • r21934: [1.3] renamed model_class to queue_model for mailer configuration + added a queue for Propel
  • r21955: [1.3] refactored mail queues, added a new queue based on the filesystem
  • r21959: [1.3] added a time option to the mailer queue classes and removed the max option
  • r21979: [1.2, 1.3] fixed incorrect access to response in sfViewCacheManager
  • r21985: [1.3] updated mailer code with newest version of SwiftMailer
  • sfDoctrinePlugin:
    • r21790: [1.2] updating Doctrine to 1.0.11
    • r21822: [1.2, 1.3] fixed exception thrown when sorting column is wrong
    • r21862: [1.2, 1.3] fixed double translation of help texts in the admin generator
    • r21879: [1.3] fixed sfWebDebugPanelDoctrine HTML generation
    • r21884: [1.3] switched YAML to use the 1.2 specification by default
    • r21887: [1.3] added back SQL queries in the logs as it makes easier to debug
    • r21901: [1.2, 1.3] fixed passing sorting options correctly in the admin generator tabular header
    • r21936: [1.3] fixed issue with missing data/sql directory
    • r21942: [1.3] implemented sfFormDoctrine::embedRelation()
    • r21947: [1.3] fixed issue with field being required when it has a default value
    • r21951: [1.3] added developer-friendly methods to form filter classes to avoid calling processValues multiple times
  • sfPropelPlugin:
    • r21822: [1.2, 1.3] fixed exception thrown when sorting column is wrong
    • r21862: [1.2, 1.3] fixed double translation of help texts in the admin generator
    • r21884: [1.3] switched YAML to use the 1.2 specification by default
    • r21886: [1.3] added SQL highlighting for Propel
    • r21887: [1.3] added back SQL queries in the logs as it makes easier to debug
    • r21894: [1.2, 1.3] fixed propel:data-dump fails to dump columns with capital letters in the column name
    • r21901: [1.2, 1.3] fixed passing sorting options correctly in the admin generator tabular header
    • r21925: [1.3] removed setClass() in sfPropelPager as it segfault
    • r21934: [1.3] added a queue for Propel
    • r21951: [1.3] added developer-friendly methods to form filter classes to avoid calling processValues multiple times
  • ...and many other changes

Symfony components

  • yaml:
    • r21883: started support for the 1.2 YAML specification

Development digest: 262 changesets, 34 bugs reported, 57 bugs fixed, 5 enhancements suggested, 24 enhancements closed, 4 documentation defects reported, 12 documentation defects fixed, and 26 documentation edits.

Documentation

New developers for hire

  • Sinergics: is a computer software company from Spain. We work with Symfony and are specialized in providing solutions with different frontends (web, desktop, android, iPhone) using the same backend services. We usually work with our computer software company partners helping them with those technologies they do not master.
  • Chris Sedlmayr (chris@sedlmayr.co.uk): UK based developer, 4 years commercial experience on small and large web apps. PHP, symfony, HTML, CSS, MYSQL. Available for Full time job offers.
  • smart pixel media: we provide custom made solutions for our customers, from smaller sites to complex ajax-driven applications - of course based on symfony. Located next to Stuttgart, Germany.

Plugins

  • New plugins
    • cleverFilesystemPlugin: permits to have an abstract access to the filesystem, whatever its type. The plugin currently supports the traiditonnal "disk" filesystem and FTP servers, and provides an easy way to add support for additionnal file storage systems (FTP, etc.).
    • sfNewsletterPlugin: gives the admin the option to send a newsletter to subscribed users.
    • sfTaskLoggerPlugin: allows you to run tasks and store the results in the database and in a log file.
    • sfPaymentPaybox2Plugin: part of the sfPayment plugins suite and brings Paybox support.
    • caPropelTreePlugin: allows administration of data based on a tree (add the node to the parent, delete node, edit node, move the node to another location, extensibility and adaptation to your function, implemented i18n and i10n)
    • caMarkdownEditorPlugin: markdown WYSIWYG editor
    • sfFbConnectGuardPlugin: extends sfGuard to enable Facebook Connect. With sfFbConnectGuardPlugin, sites can allow users to seamlessly register and sign in with Facebook Connect while still using sfGuard.
  • Updated plugins
    • sfFacebookConnectPlugin: direct retrieval of the FAcebook Uid
    • diemPlugin:
      • fixed bad default method table in admin generator builder
      • working on DmSettings wich allows to store configuration in the database
      • updated dmDataService to provide default configuration
      • removed SiteI18n Table
      • fixed page tree style in front edition
      • removed useless dm_site table and all dependencies to DmSite
      • updated settings form
      • fixed bad css compression on front when not logged
      • improved admin modules security
      • assigned credentials to admin module to unshow them in the menu
      • speed up credential checks in dmUser
      • removed deprecated dmGraphViz admin module
      • fixed minor bugs in dmConfig admin interface
      • added french translations
      • updated configuration credentials
      • fixed bug when an empty credential is sent to the user
      • improved configuration panel
      • fixed i18n initialization on dmDoctrine records
      • added default settings to dmDataService
      • improved admin & front toolbar
      • implemented basic doctrine i18n fallback
      • added tons of functional tests for i18n and settings
      • moved default culture calculation to dmApplicationConfiguration
      • removed deprecated dmYaml & dmYamlDumper
      • fixed missing attribute in dmMediaImageTag when method is not fit
      • improved performance on config loading by using doctrine statement
      • implemented Symfony Dependency Injection Container in the following Diem services: search_engine, doctrine_config, filesystem, user_log, page_tree_watcher, file_backup, helper, cache_manager, sitemap, page_helper, widget_type_manager
      • added event notification after serviceContainer creation
      • made possible to customize the metaCache class
      • improved performance on dmHtmlMenu
      • updated diem to match new Symfony 1.3 requirements
      • added autogenerated graphs
      • added dmUserLogEntry, dmBrowser, dmWidgetView and dmAuthLayoutHelper to sfServiceContainer
      • separated autogenerated database diagram in 3 parts (project, user and core)
      • improved performance in dmAdminRecursivePageList and dmFrontRecursivePageList
    • sfPaymentPayPalPlugin: added the function applyConfiguration, payment for multiple items, added setProduct and addProduct methods, rewriting validateIpn that considers most cases, static logger with relative properties, write name and email on the header
    • firesymfonyPlugin: initial commit
    • sfPhpunitPlugin: refactored bootstrap workflow for functional tests, tasks are not overwriting existing files by default now, updated documentation
    • sfPropelImpersonatorPlugin: made it work with Propel 1.3, find a way not to call initXxxXxxs() on every passes but only on first addition for each object, fixed population of an empty propel objects
    • seSwiftMailerPlugin: fixed a bug related with SMTP connection
    • nahoMailPlugin: fixed bug from Swift 3.3.3 when having a body + one attachment caused body being wiped
    • sfPhpBbConnectPlugin: updated readme, added helper onlineGuests
    • wspNopastePlugin: removed generated base classes from version control
    • sfWebDesktopPlugin: created the initial directory structure
    • sfWeatherPlugin: fixed the xml update of weather.com
    • sfPropelMigrationsLightPlugin: made less mysql-specific
    • swFormExtraPlugin: fix 'required' option issue when updated afterward
    • uvmcDoctrineTaskExtraPlugin: files are now listed before asking user for their deletion
    • ckWebServicePlugin: fixed ckWsdlGenerator bug
    • pkMediaPlugin: selected Tag heading in left browser partial
    • pkToolkitPlugin: it's now possible to edit an aspect of the CRUD object that is actually stored by a relation specific to the user, minor tweaks accommodating the official jquery typeahead plugin, don't redisplay edit button on validation errors
    • sfGridPlugin: removed not ready for production from readme
    • sfCryptoCaptchaPlugin: the helper captcha_image() was not valid W3C, fixed the problem with some browsers kept in the cache the first image generated, updated the helper back to the time() instead of rand()
    • sfEasyGMapPlugin: GMap Infowindow v3
    • pkImageConverterPlugin: by popular demand pkImageConverter uses gd by default, reverted to using netpbm by default (although the new gd support can still be turned on by setting netpbm: false for the pkimageconverter key)
    • sfJqueryReloadedPlugin: updated autocomplete plugin from 1.02 to 1.1
    • vjAuthPlugin: first import for stable state
    • sfEasyCommentsPlugin: fixed query so that placeholders are really taken in account
    • sfAssetsLibraryPlugin: fixed TinyMCE-related bugs
    • sfExtjsThemePlugin: re-enabledd override for radiogroup, bugfix for grid plugins to apply generator params to plugin config
    • sfDoctrineSimpleForumPlugin: added first import of the plugin
    • sfFormButtonsPlugin: changed submit_button_to_remote to use separate javascript and html option arrays, updated readme to latest version
    • swCrossLinkApplication: added note on performance, added options to specify only routes to load, overwrite the compile method so cross link are not compiled
    • sfDoctrineApplyPlugin: now based on Zend Mail
    • sfMemcachePlugin: fixed newline at end of file
    • sfFeed2Plugin: added small extra check, added image example for images
    • sfJqueryFormValidationPlugin: added support for sfValidatorFile validator, tweak of sfValidatorFile validator, tweak of file validation error messages
    • ncPropelChangeLogBehaviorPlugin: fixed various bugs, fixed not showing oldValues for updated fields

New symfony powered websites

They talked about us

Published in #A week of symfony