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
- Discussions about sfYaml commit has broken symfony 1.3 checkout and symfony coding standards
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
- 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
- Updated Japanese translation of Jobeet tutorial
- New Converting Propel Project To Doctrine page
- Updated How to contribute to symfony page
- Updated symfony 1.2 book:
- chapter 16: removed debug_message from documentation as it is deprecated
- chapter 19: corrected symfony version
- 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.
- 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
- I'vRead: (English) twitter book-reading recording site
- 01DB Metravib site support: (English, and French) support for clients of 01DB-Metravib
- Handy-Sparen.de: (Deutsch) a pretty mobile site for cheapest tariffs in germany
- SivuTieto: (Finnish) web analytics service
- Dirri: (Finnish) web directory
They talked about us
- Slides of symfony Day 09 in Cologne
- Vídeo resumen del Symfony Day 09
- 30 добрых советов разработчику на symfony
- Speaking at PHP NorthWest 09
- Faire des liens entre applications dans un projet symfony, revue des trois méthodes proposées
- Презентация: “30 Symfony Best Practices” (30 лучших советов для разработчиков на symfony)
- Tips for configuring CSS in symfony
- Magic Symfony!
- Se publica Symfony 1.0.21
- Command Line Simplified - Symfony Alias
- Lien de la semaine #10
- FOSS Saturday: sfFbConnectGuardPlugin – sfGuard meets FB Connect
- Symfony se hace con SwiftMailer
- PHPカンファレンス2009、「テックデイ」開催される
- [symfony] sfPropelPagerのgetNbResultsがおかしい
- [Mac]netatalkの.AppleDoubleでsymfonyコマンドがつまずく時がある
- 1º Festival Software Livre de Belo Horizonte
- A Symfony filter to catch all of one's own exceptions
- symfony in pratica
- Symfony: la mejor manera de programar
- PHPカンファレンス2009 に参加してきました。
- Symfony Doctrine or Propel
- sfCaptchaGDPlugin en Symfony
- Which design patterns does Symfony implement
- Symfony or Zend Framework
- fabienさんとのsymfonyツアー&symfony MeetUpに参加しました
- PHPカンファレンス2009に参加
- siwapp, selenium and symfony 1.2
- symfony - とりあえずprojectとか作ってみた。
- Sympal : le CMS / CMF du framework Symfony
- symfony 1.0.21 in safe mode
- Symfony and Godaddy
- PHP::symfony 1.2 を勉強中・・・4~7日目
- [ symfony ] symfony 1.0 と 新しめのPEARの組み合わせで起きる、プラグインインストール時のエラー
- 【第44回】PHPカンファレンス2009に行ってきました。
- Começando com o symfony
- Utilizzo inappropriato di Symfony
It makes me sad, that sfMailer dosent have a componseFromPartial or composeFromComponent with equilliviant composeFromComponentAndSend and composeFromPartialAndSend