Cover of the book Symfony 5: The Fast Track

Symfony 5: The Fast Track is the best book to learn modern Symfony development, from zero to production. +300 pages showcasing Symfony with Docker, APIs, queues & async tasks, Webpack, SPAs, etc.

A week of symfony #150 (9->15 November 2009)

Symfony project development got a boost this week with the release of the second beta of symfony 1.3, the first alpha of Lime 2 testing framework and the creation of symfony 1.4 branch.

Development mailing list

Development highlights

  • r23714: [lime 2.0] fixed regression: is(), like() etc did not return the result of the test anymore
  • r23720: [1.3] preventing sendHttpHeaders to run multiple times. Once send the method will silently do nothing
  • r23724: [1.3] sfCacheSessionStorage will set session_id() to $this->id
  • r23725: [1.0] stimulating autoloading in sfFunctionCache by calling class_exists before calling static methods
  • r23727: [1.2, 1.3] added timestamps for the releases to the changelog
  • Milestone 1.3.0 beta2 completed
  • r23738: [1.3] added errormessage when tests passed to sfTestFunctionalTask or sfTestUnitTask are not found
  • r23740: [1.3] added errormessage when none of the tests passed to sfTestFunctionalTask or sfTestUnitTask are not found
  • r23744: [1.3] refactored match_names in sfFinder so that it is more readable and perhaps even faster
  • r23762: [1.3] updated Swift Mailer to the latest 4.1 version
  • r23763: [1.3] added some configuration to the project:send-emails task (number of messages and time limit)
  • r23799: [1.3] removed need for runtime insertion of lowercase module name into *_module_config.yml.php files. The module name is already inserted correctly by the sfDefineEnvironmentConfigHandler
  • r23810: [1.3] set svn:eol-style property to native and svn:keywords property to Id on all .php files
  • r23822: [1.3] fixed loading of application-less plugin autoloader when multiple plugins are enabled
  • r23852: [1.3] fixed assumption in propel upgrade
  • r23864: [lime 2.0] improved mock error message when multiple methods could have matched an invocation
  • r23880: [lime 2.0] added methods LimeTest::extendStub() and LimeTest::extendMock()
  • r23881: [1.4] created the 1.4 branch
  • r23882: [1.3] sfI18N now correctly rejects invalid dates when using a culture that has the dot as separator, and correctly respects am/pm markers
  • r23886: [1.0] fixed notice on undefined uri in sfCacheFilter
  • r23888: [1.3] reporting error on empty url for sfWebController#redirect
  • r23889, r23890: [1.3, 1.4] changed sfDomCssSelector to not use a deprecated method
  • r23892: [1.3, 1.4] added Countable and Iterator interface to DOM CSS selector
  • r23897: [1.3] updated sfProtoculous javascript externals
  • r23898, r23899, r23900: [1.2, 1.3, 1.4] default fields are created for %%variables%% in the title of the edit, list and new action, if possible
  • r23901: [1.2, 1.3, 1.4] The last exception is reset on every new page call in functional tests
  • r23902, r23903, r23916, r23918, r23920, r23921: [1.3, 1.4] updated some tests to use the new API
  • r23907, r23911: [1.3] improved sfApplicationConfiguration getXYZDir caching when not using the project optimize task by lazy caching
  • r23910: [1.3, 1.4] changed CLI tests to use the new admin generator instead of the old one
  • r23917: [1.2, 1.3, 1.4] added sfFormField and sfFormFieldSchema to the safe classes in sfView. Widgets are always expected to be escaped by the developers
  • r23922, r23932, r23937, r23939, r23940: [1.4] removed deprecated stuff
  • r23923: [1.3, 1.4] changed the routing handler cache file so that it consumes less memory
  • r23925: [1.2, 1.3, 1.4] fixed sfMemcacheCache delete() operation
  • r23942: [1.4] removed internal methods that were used by the parameter holder
  • r23948, r23949: [1.2, 1.3, 1.4] improved searching for symfony script file on windows
  • r23951: [1.2, 1.3, 1.4] fixed file validator on certain mac os configurations
  • r23953: [1.3, 1.4] made empty redirect check faster and type tolerant
  • r23970: [1.3, 1.4] improved sfPager so that it doesn't need to recount when resultsCounter exists (reverted)
  • r23973: [1.2, 1.3, 1.4] replaced last reference of $sf_symfony_lib_dir with sfConfig::get('sf_symfony_lib_dir')
  • sfDoctrinePlugin:
    • r23745: [1.3] fixed issues in pagers, switched from IteratorAggregate to Iterator, simplified prevention of unnecessary queries, removed some whitespace
    • r23912, r23914: [1.3, 1.4] updated some Doctrine test to use the new test API
    • r23919: [1.3] made crud generator respect singular and plural name
    • r23924, r23930, r23931: [1.3] fixed defaults for singular and plural name for generate crud tasks in case none are specified
    • r23927: [1.3, 1.4] added a new option to change the generator class for forms and filters
    • r23950: [1.2, 1.3, 1.4] fixed doctrine modules when dealing with multiple primary keys
    • r23967: [1.3, 1.4] corrected problem with validation when i18n is used
    • r23977: [1.2, 1.3, 1.4] fixed image saving for Doctrine
  • sfPropelPlugin:
    • r23709: [1.3] added debug information for Propel in dev environment by default
    • r23737: [1.3] refactored propel initialization to sfPropelPluginConfiguration, cleaned up sfPropelDatabase to avoid creating multiple PropelConfiguration objects, removed Propel runtime classes from sfAutoload since Propel has its own autoloader, deprecated sfPropel::import() since Propel::importClass() allows autoloading
    • r23739: [1.3] added hooks for specifying custom propel runtime and generator paths
    • r23909: [1.2, 1.3] updated SfObjectBuilder so that Propel objects do not query the I18N table when they are new
    • r23919: [1.3] made crud generator respect singular and plural name
    • r23924, r23930, r23931: [1.3] fixed defaults for singular and plural name for generate crud tasks in case none are specified
    • r23927: [1.3, 1.4] added a new option to change the generator class for forms and filters
    • r23967: [1.3, 1.4] corrected problem with validation when i18n is used
  • ...and many other changes

Symfony components

  • yaml:

Development digest: 284 changesets, 33 bugs reported, 55 bugs fixed, 8 enhancements suggested, 19 enhancements closed, 2 documentation defects reported, 12 documentation defects fixed, and 16 documentation edits.


New Job Postings

  • Symfony/CSS/Javascript Developer at - remote or full-time based in Quebec, Canada - Contact: m [dot] bittner [at] clickcontact [dot] com
  • Symfony Developer at Bysoft China - full-time based in Guangzhou, China - Contact: hr [at] bysoftchina [dot] com

New symfony bloggers


  • New plugins
    • sfPropelMooDooPlugin: Propel administration generator.
    • sfGoogleClosureCompilerPlugin: gets all javascript urls in a head tag on a HTML page and replace them with compiled version scripts.
    • sfRandomImagesPlugin: provides a helper to show random imagens from a folder.
    • sfFormatSizePlugin: provides a helper to transform any value in bytes into something readable like kB, MB, GB, TB.
    • sfJSLibJQueryPlugin: convenience package containing the jQuery library version 1.3.2 and settings for use with the sfJSLibManagerPlugin.
    • sfJSLibManagerPlugin: a simple plugin to manage the inclusion of a javascript library's js & css assets via a single call to a static method - sfJSLibManager::addLib('my_js_lib')
    • sfJSLibJQueryUIPlugin: convenience package containing the jQueryUI library version 1.7.2 and settings for use with the sfJSLibManagerPlugin.
    • sfJSLibJCropPlugin: convenience package containing the Jcrop library version 0.9.8 and settings for use with the sfJSLibManagerPlugin.
    • dhSimpleSmsPlugin: allows sending of SMS messages via the SMS gateway.
  • Updated plugins
    • sfEasyAuthPlugin: updated README
    • ncPropelChangeLogBehaviorPlugin: the plugin now tries to get the values of the foreign keys in the related table
    • lcOpenInviterPlugin: restored openinviter class deleted the old plugins from the svn, fixed the checkLoginCredentials() bugs caused by the integration of the new version of open inviter
    • pkToolkitPlugin: sfWiddgetFormJQueryDate now allows you to clear the date and go back to null pkArray::removeValue removes a value from a flat array, object retrieval refactorization, introduced a pkTaskTools class, pkWidgetFormStaticText is handy for interleaving detailed instructions with widgets without being forced to template out the entire form
    • sfDoctrineApplyPlugin: corrected min_length message for the second password field and for the reset form
    • sfImageTransformPlugin: preserved transparency when cropping and resizing using the GD adapter, adding alpha support to colorizing using the GD adapter, disabled alpha handling to enable font rendering
    • sfI18NTranslatorPlugin: deleted logger, no more dynamic js, updated README
    • sfTaskLoggerPlugin: added $options and $arguments to the doProcess method, make sfTaskLoggerPurge compatible with the new method signature
    • swFormExtraPlugin: fixed some bugs
    • pkBlogPlugin: fixed a bug with permalink generation on events, added simple upcoming events component
    • sfSimplePagePlugin: separate route prefix from data dir, new configuration from app.yml, more precise 404 error, added i18n (optional) support
    • sfXstandardEditorPlugin: fixed html encoding issue, fixed typo in README
    • sfPhpunitPlugin: now works with sfPropelData class directly, added option connection so it can be changed
    • sfFilebasePlugin: improved Doctrine Behaviour and configuration handling
    • sfDoctrineJCroppablePlugin: using the widgetschema's name format instead of the model's table name for the id stub in order to play nicely with inheritance, added detection and use of sfJSLibManager::addLib('jcrop') if found, updated README
    • sfAdminDashPlugin: added French translation
    • sfDoctrineGuardPlugin: cleaned up model files, added missing action method parameters
    • sfExtjsThemePlugin: added support for tooltip configuration to rowactions to maintain consistancy with other actions
    • sfDoctrineUserPlugin: made a branch for symfony 1.3
    • sfDoctrineSettingsPlugin: made a branch for symfony 1.3
    • sfSyncContentPlugin: removed reference to sfPropelSyncContentPlugin
    • pkContextCMSPlugin: changed footer links, templates at the project level override the plugin, added recursive navigation partial, modified navigation
    • csDoctrineActAsAttachablePlugin: cleaned code up, updated for symfony 1.3, updated query efficiency
    • diemPlugin:
      • switched to symfony 1.4
      • added gallery javascript admin controller
      • added dmMailTemplate module
      • removed deprecated dmModelGeneratorConfiguration and dmModelGeneratorConfigurationField classes
      • fixed admin export and form class generation
      • fixed dmAdminBreadcrumb and made it more flexible
      • removed deprecated admin modules dmArea, dmPage, dmPageView, dmZone and dmWidget
      • fixed admin chart showSuccess template when no image is available
      • improved google webmaster tools interface
      • added duplicate functionality to admin layout module
      • fixed default admin passsword if database has no password
      • added tree javascripts to core assets configuration
      • added mail service
      • added DmMailTemplate to cache_cleaner safe models configuration
      • fixed DmPageView and DmLayout table declaration
      • added french translations
      • improved project skeleton
      • fixed and improved dmBaseActions->download method
      • added doctrine extension DmGallery
      • added removeCsrfProtection, changeToEmail, submit and renderCsrfProtection methods to dmForm
      • made many improvements in dmAdminGeneratorBuilder
      • improved performances in PluginDmMediaFolderTable
      • fixed automatic page view attribution to page model when its module or action has been changed
      • created a new DmArea when a DmPageView is saved
      • improved performances in PluginDmWidget getValues and setValues methods
      • added service container dependency to dmWebResponse
      • refactored dmWebResponse->getAssetAliases and dmWebResponse->getCdnConfig methods to lazy load them
      • made dmAssetCompressor abstract class extend dmConfigurable
      • refactor dmBaseServiceContainer to improve performances by loading only required services for the current request
      • fixed dmAdminDoctrineGenerateModuleTask, dmAdminGenerateTask and dmSetupTask
      • added getStylesheetWebPath, getStylesheetFullPath, getJavascriptWebPath and getJavascriptFullPath methods to helper service
      • refactored asynchronous loading of stylesheets and javascripts on dmCoreEditCtrl.js
      • replaced deprecated sfWidgetFormDoctrineSelect by sfWidgetFormDoctrineChoice in dmWidgetListForm and dmWidgetShowForm classes
      • added checkBackground callback validator in dmWidgetContentMediaForm
      • fixed dmWidgetContentMediaView->doRenderForIndex declaration and implementation
      • added a search page check in dmWidgetAdvancedSearchFormForm->configure method
      • removed csrf protection from dmSearchForm
      • fixed dmWidgetContentTextView->doRenderForIndex method
      • fixed dmFrontActionGenerator to make action classes extend dmFrontModuleActions and not dmFrontModuleComponents
      • added front.base stylesheet to all front pages
      • modified dmFrontUser to store the current theme key in the user attributes, instead of using directly its storage
      • made front codeEditor actions use helper service to find related javascripts to load asynchronously
      • improved performances on front page module actions and made the messages more polite
      • made front page actions use helper service to find related javascripts to load asynchronously
      • removed form csrf protection for front forms wich need admin credentials
      • improved the default search form
      • made possible to skip the cssClass field in the dmWidgetContentMedia form template, and fixed coding standards
      • fixed dmWidgetContentMediaForm jQuery selectors
      • added postSave methods to user model classes according to sfDoctrineGuardPlugin evolution
      • wrote some pieces of documentation and started building the diem website

New symfony powered websites

They talked about us

Help the Symfony project!

As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.


Comments are closed.

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