A week of symfony #149 (2->8 November 2009)

Symfony documentation was heavily updated this week, mostly the new Jobeet 1.3 book. Meanwhile, symfony 1.3 continued polishing some features before its long-awaited final release. ORM development activity was frenetic and both Propel and Doctrine were updated to their latest versions.

Development mailing list

Development highlights

  • r23502: [1.3] made test working under windows as well (ignores line breaks)
  • r23511: [1.3] fixed project:optimize help
  • r23515: [1.3] fixed Form Helper use of Rich Text Editors broken by changes in autoloader
  • r23520: [1.3] references to external modules in bundled xhtml11 dtd
  • r23521: [1.3] added unit tests for sfDebug and sfTimer[Manager]
  • r23526: [1.3] updated propel upgrade to be smarter and include consideration for nested set builders
  • r23543: [1.0] fixed deprecated use of split for PHP 5.3
  • r23544: [1.3] moved getMailer() method from sfAction to sfComponent
  • r23545: [1.3] refactor the project:send-emails task to give a getMailer() method for all tasks
  • r23549: [1.3] refactored the app:routes task to give a getRouting() method for all tasks
  • r23567: [lime 2.0] fixed generating a mock class does not trigger autoloading to allow existing classes to be stubbed
  • r23568: [1.3] added some more useful output to response tester's isValid method
  • r23569: [lime 2.0] added a return value can be configured even if a callback is specified for a mocked method
  • r23600: [1.3] added real cache key (including prefix) to the partial info panel to aid checking the cache
  • r23651: [1.3] made sfTask::getRouting() lazy
  • r23675: [lime 2.0] added method ->parameter() to the mock for setting constraints on single method parameters
  • r23677, r23678: [lime 2.0] pushed deprecated methods LimeTest::compare(), LimeTest::compare(), LimeTest::hasMethod() and LimeTest::isa() down to class lime_test
  • r23679: [lime 2.0] mocks always use parameter matchers to compare method parameters now. As a result the error messages when a method is called with wrong parameters are now more clear
  • r23680: [lime 2.0] implemented method LimeTester::unregister()
  • r23682: [lime 2.0] exception objects can now be passed to LimeTest::expect(). They are compared using the new constraint classes which allows for a more flexible usage of expect() with custom exceptions
  • r23685: [lime 2.0] renamed the assert*() methods to match the more simple method names in LimeTest and LimeMockInvocationMatcherParameter
  • sfDoctrinePlugin:
    • r23516: [1.3] added a test to check if the BaseForm class exists when building Doctrine or Propel forms
    • r23518: [1.3] fixed cascade schema.yml across multiple plugins generates Plugin classes to wrong directory
    • r23539: [1.3] fix to Doctrine model building to allow packages
    • r23601: [1.2] updated Doctrine to 1.0.13
    • r23668: [1.3] fixed doctrine form inheritance when the foreign key on one inheritance model references another inheritance model
    • r23690: [1.3] improved timings in doctrine logging
  • sfPropelPlugin:
    • r23516: [1.3] added a test to check if the BaseForm class exists when building Doctrine or Propel forms
    • r23692: [1.3] now using propel 1.4.0 stable tag
    • r23696: [1.3] updated Propel sfWebDebugPanel to respect configuration done in DebugPDO
    • r23697: [1.3] made Propel sfWebDebugPanel creation less magic and more explicit
  • ...and many other changes

Symfony components

  • dependency injection:
    • r23506: added support for service references in parameters
  • yaml:
    • r23504: fixed a notice on non-defined constant

Development digest: 199 changesets, 35 bugs reported, 22 bugs fixed, 4 enhancements suggested, 2 enhancements closed, 8 documentation defects reported, 17 documentation defects fixed, and 16 documentation edits.


  • Updated Italian translation of Jobeet tutorial
  • Updated 1 day 1 ticket, and How to contribute to symfony pages
  • Updated symfony 1.3 reference:
    • chapter 6: added two missing options in the reference book for the admin generator, fixed date_Format info
    • chapter 14: added documentation for the module.yml configuration file
  • Updated Italian, and French translations of symfony 1.3 reference
  • Updated Jobeet 1.3 / Practical symfony 1.3 book:
    • chapter 1: updated chapter 1 of Jobeet
    • chapter 3: fixed Doctrine specific shortcut, changed all doctrine:build* task to use the new doctrine:build task
    • chapter 4: added the short version of include_slot() for default values
    • chapter 5: replaced redirect() calls with the new support for objects
    • chapter 7: use the new Iterator interface of Pager
    • chapter 9: added a paragraph about --only-failed option of test:all, added a tip about the new --xml option of test:all
    • chapter 10: added usage of useFields() in Jobeet chapter 10, added a tip about how to not generate form and filter classes, replaced redirect() calls with the new support for objects
    • chapter 11: replaced redirect() calls with the new support for objects
    • chapter 13: replaced redirect() calls with the new support for objects, changed all doctrine:build* task to use the new doctrine:build task
    • chapter 15: replaced usage of contains() by matches()
    • chapter 19: use the new Iterator interface of Pager, changed all doctrine:build* task to use the new doctrine:build task
    • chapter 20: changed all doctrine:build* task to use the new doctrine:build task
    • chapter 21: replaced redirect() calls with the new support for objects
    • chapter 23: changed all doctrine:build* task to use the new doctrine:build task
  • Updated Italian translation of Jobeet 1.3 / Practical symfony 1.3 book
  • Updated Deprecations and removals in symfony 1.3 (added is_internal setting in the list of deprecated settings)

New Job Postings

New symfony bloggers


  • New plugins
  • Updated plugins
    • sfExtraWidgetsPlugin: changed rating star style
    • sfEasyAuthPlugin: added base classes, added an option to allow users to log in with their email addresses or user names, confirmation emails can now be sent as HTML to improve deliverability, password reset emails are now sent in html, no need to redirect users after the auto-log-in filter so that has been removed to try to resolve problems with user sesions, the user filter now trims the user name and email address before searching for users, fixed a bug that would only return ea users who were authenticated, updated README, added a warning to the app.yml file about creating an sfEasyAuthUser class
    • sfGuardPlugin: created 1.3 branch
    • sfTaskLoggerPlugin: added new option thats allows to log only if there were things processed by the task, added new option to check if the task was already run once today, aded new option to check if the task is already running, fixed log file name and Propel schema
    • pkToolkitPlugin: cleaned up photo icons, new suggested standard fixtures settings, pkDoctrine::orderByList() allows query results to be returned in a fixed order by passing an array of object IDs, pkZendSearch now uses pkDoctrine::orderByList to provide portability between databases, use pkSignin::signin when privileges are lacking so that there's a chance for the user to log in, pkCheckboxEnables can now show/hide a selector in addition to the usual selector that gets enabled/disabled, JavaScript for a CRUD AJAX chunk form is now loaded at the end of the form so that jQuery code can affect things created by jQuery code inside the form's template and/or widgets
    • ysfOpenPlugin: fixed default app.yml configuration, added getAccessToken to ysfApplicationWebRequest to fetch oauth access tokens from request
    • sfDoctrineGuardPlugin: removed plugin form classes whose generation has been disabled and added basic test coverage of form classes
    • sfWeatherPlugin: changed weather icons, updated documentation
    • swBaseApplicationPlugin: tweaked CSS
    • pkContextCMSPlugin: implemented and documented view_locked_sufficient_credentials as an alternative to the simplistic "any logged in user can see locked pages" policy which is still the default, the plumbing is now there for page-specific view credentials but the UI needs to be built, fixed the multiple select elements on the page settings form were default HTML multiple select boxes due to a JS error, if you prefer new slots to appear at the bottom of areas rather than the top you can now set app_pkContextCMS_new_slots_top to false, first changes moving toward greater SQL92 compatibility, default users and groups now includes a view_locked permission for the guest group although you still have to tweak app.yml to turn on a credentials check for locked pages, good sfSyncContentPlugin settings for CMS sites
    • lcOpenInviterPlugin: committed first version, changed the $files_basebase_base values to the OpenInviter values, location of _base.php is declared properly now, commented out OpenInviter update procedure
    • sfDoctrineActAsTaggablePlugin: fixed indexes for the tag table were set up with bad schema.yml syntax
    • diemPlugin:
      • refactored the security plugin
      • renamed dmMigrateTask to dmGenerateMigrationTask
      • added admin user module classes for form and export
      • updated all user related classes to match new security subframework
      • changed all admin generator.yml table_method configuration to getAdminListQuery
      • made command line installer more readable
      • made cache_cleaner service extend dmConfigurable
      • disabled model validation in dmModuleManagerConfigHandler
      • fixed bug in dmDoctrineRecord->get
      • fixed bug in dmAdminGenerateTask when generating diem modules
      • fixed bug in dmDataTask when loading security groups
      • improved dmLoremizeTask output
      • fixed dmSecurityUser->signIn
      • fixed auth module layout choice
      • improved admin security modules configuration
      • fixed admin user module
      • made dmSecurityUser more robust and work without context instance
      • fixed auth layout choice when redisplaying the form after a wrong password
      • made possible to have 2 diem modules for 1 model
      • configured with_doctrine_route: false in all generator.yml files
      • made dmAPCCache more robust on cli environment
      • made dmConfig survive when dm_settings table does not exist
      • disabled all model checks in dmModuleManagerConfigHandler
      • added a Doctrine_Connection parameter to dmDb::pdo
      • fixed dmDoctrineQuery->whereDescendantId when the model has two or more diem modules
      • fixed warnings in dmFormDoctrine when embedded forms have been unsetted
      • fixed recursion madness in dmFileLog->fixLog
      • removed seo title prefix & suffix from dmSeoSynchronizer
      • fixed dmAdminFunctionalCoverageTest urls prefixes
      • fixed dmCoreFunctionalCoverageTest user signin simulation
      • made dmMediaResource throw an exception when the source is a new instance of DmMedia
      • removed deprecated noRightClick jQuery function from dmCorePlugins.js
      • fixed front widget filters and wrap classes
      • fixed front ajax edit actions expect a put method instead of a post
      • added dmUserPlugin tasks: change-password and promote
    • sfAtosPaymentPlugin: added setTransactionId
    • cleverFilesystemPlugin: more explicit error messages
    • lcFlowPlayerPlugin: submitted the plugin to the symfony svn repos
    • ncPropelChangeLogBehaviorPlugin: fixed Propel query criteria, whenever a field is rendered the 'table_name.field_name' event is triggered with the value of the field as the parameter
    • sfPhpunitPlugin: fixed SuiteLoader throws an exeption when try to use *, created classes for managing fixtures, added a module for easy runing tests and html visual result of testing, added security off for sfPhpunit module
    • sfFacebookConnectPlugin: added basic remember me filter

New symfony powered websites

They talked about us


I love these weekly summaries :)

Also, typo at "skething"; should be "sketching."
@Patrick, we're glad you like them!

Thanks for your notice, we've fixed the typo.

Comments are closed.

To ensure that comments stay relevant, they are closed for old posts.