Symfony development never stops and therefore this week the symfony 2.0 dependency injection component was tweaked and improved. Meanwhile, tens of plugins were heavily updated, adding up most of the nearly 400 changesets committed this week.

Development mailing list

Development highlights

  • r25406: [1.3, 1.4] removed duplicate is_string check in sfWebController
  • r25410: [1.2, 1.3, 1.4] changed project:validate task to strip comments in PHP classes to avoid false positives
  • r25411: [1.2, 1.3, 1.4] changed project:validate task to generate less false positive
  • r25458: [1.2, 1.3, 1.4] updated Turkish translations of the admin generator
  • r25459: [1.2, 1.3, 1.4] added the module name when including a partial in the admin generator
  • ...and many other changes

Symfony components

  • dependency injection:
    • r25436: [2.0] added more tests
    • r25445: [2.0] enhanced some error messages
    • r25448: [2.0] added support for constants in XML
    • r25449: [2.0] removed on and off as valid Boolean in XML
    • r25504: [2.0] refactored loaders (loaders now returns a BuilderConfiguration instance, the base Loader class has been removed, all built-in loaders now just implements LoaderInterface, the loaders do not take a container anymore in the constructor)
    • r25505: [2.0] renamed ServiceDefinition to Definition in Builder
    • r25552: [2.0] added support for Loader extensions
    • r25555: [2.0] fixed XML loader to behave like Yaml for extension configuration
  • output escaper:
    • r25435: [2.0] added a test for ArrayDecorator::count() method

Development digest: 375 changesets, 45 bugs reported, 20 bugs fixed, 12 enhancements suggested, 5 enhancements closed, 9 documentation defects reported, 6 documentation defects fixed, and 13 documentation edits.

Documentation

New symfony bloggers

Plugins

  • New plugins
    • sw2DecorationToolkitPlugin: creates a quick and easy way to get set up with a few handy decoration needs of most web applications.
    • sfSimpleCharsetPlugin: (no description)
    • sfSimpleCharsetEncoderPlugin: allows you to encode any charset to cp1251 and transliterate cp1251 text without iconv library.
    • sfScriptUniterPlugin: packs all javascripts and css files.
    • sfExcelReaderPlugin: provides classes to interpret and output Microsoft Excel data files (.xls) using PHP Excel Reader.
    • sfApplicationMapPlugin: provides tasks to generate application-module-action structure images for your entire project using Graphviz. Useful at the designing stage of projects.
    • sfCacheTaggingPlugin: helps to store cache with associated tags and to keep cache content up-to-date based by incrementing tag version when cache objects are edited/removed or new objects are ready to be a part of cache content.
    • sfPropel15Plugin: bundles Propel 1.5 and replaces sfPropelPlugin in symfony 1.3 and 1.4.
    • sfJqueryTreeDoctrineManagerPlugin: nested Set manager based on jsTree Jquery Plugin.
    • sfCucumberPlugin: generates functional tests out of cucumber features files.
    • sfVideoPlugin: provides easy interface for flash video player to embed in symfony projects.
    • npAssetsOptimizerPlugin: provides a task to optimize web assets used in your project, typically for better frontend performances (CSS files will be combined and compressed with cssmin, Javascript files will be combined and compressed with JSMin, PNG web images will be optimized with pngout if avaible on the system)
  • Updated plugins
    • csDoctrineActAsAttachablePlugin: fixed BackendAttachmentForm issue when dividing attachments by type
    • diemPlugin:
      • added admin loremizer js confirmation with fr translations
      • made dmFrontPageEditHelper support deprecated widgets
      • added more than 100 unit tests
      • renamed dmString::removeAccents to dmString::transliterate and made it use iconv if present
      • added more precise loremization errors
      • added mime_type_resolver_service to the core service container
      • moved layout duplication logic to PluginDmLayout
      • added media_tag_application to the core service container to handle flash medias
      • renamed media widget to image and added a migration script for existent projects
      • removed deprecated dmString::separate method
      • fixed coding style in dmString
      • enhanced dmInlineAssetConfigHandler to handle any type of assets
      • changed the Sortable Doctrine behavior "new" default options to first
      • made dmRecordLoremizer handle link columns
      • fixed bug in dmDoctrineRecord->getPrevNextRecords
      • improved performance in dmDoctrineRecord->getI18nFallback
      • added dmForm->getI18n() method
      • made dmFormField->label accept CSS style classes
      • added dmValidatorLinkUrl which validates both internal and external links
      • renamed sfValidatorDmDate to dmValidatorDate
      • added PluginDmMedia->getMimeGroup method
      • cleaned up PluginDmMediaFolder
      • added PluginDmWidget->getModuleAction method
      • added dmOs::sanitizeDirName method
      • made dmWebResponse->calculateAssetPath more robust
      • added dmValidatorYaml
      • added dmHelper->getOtherAssetWebPath method
      • made dmHtml tag extend dmConfigurable
      • fixed dmMediaResource path from web dir for non image medias
      • cleaned dmMediaTagImage and removed static methods
      • added media mime group as CSS class in media panel to allow droppable filtering
      • added dmUnitTestHelper->ksort method
      • improved ajax error handling in front edition
      • fixed dmUser module missing when updating project from front application
      • added dmWidgetBaseForm->updateWidget method
      • made dmWidgetBaseView more robust
      • improved dmFrontWidgetRenderer
      • made front widget actions overridable
      • fixed XHTML compliance of widget ajax forms
      • created the dmFlowPlayerPlugin
      • fixed some bugs in admin media library
      • added dmValidatorDirectoryName with unit tests
      • fixed messages in some validators
      • added tests for media synchronization
      • added unit tests for media library folder creation
      • fixed media library thumbs for images which name contains a space
      • changed first defaults system in widget forms
      • fixed bug with incorrect filename in dmDiagram module
      • changed the program the dependency graph images are rendered for better clarity
      • removed call to $this->unsetAutoFields() from admin generated forms
      • improved dmString::escape with a quoteStyle parameter
      • made dmMarkdown act as a configurable class
      • made dm:setup task run doctrine:build-forms and doctrine:build-filters in separate threads when possible
      • made direct actions more robust
      • fixed slugify method to be more compatible
      • advanced markdown inclusion with unit tests
      • made dmMediaTagImage guess image size even for static images and use the media legend
      • added tests for dmMediaTagImage
      • removed all sfContext::getInstance() calls from the security user and used events instead
      • tested and implemented advanced markdown link tags
      • improved admin link tags to support internal page links
      • added more admin link tag and front link tag unit tests
      • made PluginDmPageTable->findOneBySource more robust
      • fixed pages deletion in some unit tests
      • improved front pages performance by using asynchronous google analytics tracker
      • improved versioning history interface
      • fixed bug when fetching a user
      • fixed forms creation in dmSetupTask
      • simplified installation
      • fixed random dql queries
      • added sqlite DBM
      • added DmVersionable doctrine behavior
      • added dm.setup.before and dm.setup.after events
      • improved dmUnitTestHelper to clear Diem internal test project
      • improved PostgreSQL compatibility
    • sfAdminDashPlugin: fixed BC with include_partial('sfAdminDash/header'), updated BG translation, updated README, fixed 404 and the throwing of notices for variable not set, breadcrumbs now can sniff the module name when it's different from the object name, fixed "plugin not configured" message when only items and no categories are set up, jQuery is no longer included but plugin now depends on the sfJqueryReloadedPlugin, updated translation files, added pl translation, fixed mixed catalog parameter in _footer partial
    • swBaseApplicationPlugin: throw error if class does not exits
    • sfDynamicsPlugin: experimental performances optimisation, configuration options added and documented for app.yml, asset filter chain now let you customize your packers/minifiers, switched back a prototype to its original version, commented unused features in configuration
    • sfImaginablePlugin: flushed all old assets, started the integration of jQuery Uploadify 2.1.0, moved routing configuration class, removed form/filter classes, updated configuration (config.php/app.yml)
    • pkBlogPlugin: improved symfony 1.3 compatibility, read-more link won't show up if the post is shorter than 30 words, blog post title wasn't linked correctly, upcoming events do not include events that have passed, tagged title no longer appears when no tags are set, fixed the permalink method on event posts, the calendar browsing slot now links to event detail pages via the calendar engine, calendar engine now takes you to today by default, upcoming events now only show times if they exist, blog events now benefit from HTML filtering just like blog posts, routes for events are generated by the start date now instead of published at
    • pkToolkitPlugin: increased default height of FCK Richtext Widget, added Blockquote to default features in Richtext editor, --skip-migrate option skips running doctrine migrations, updated documentation of --skip-migrate option
    • pkContextCMSPlugin: output our own form tags because form_tag is in Url in 1.4 and Form in 1.3 making it difficult to maintain compatibility with both, added editing-now class to edit button when the slot defaults to edit view first, staging should not show index.php in the URL, the new pkContextCMS:refresh task provides an opportunity for slots that contain cached information such as static image URLs to reach out and refresh that information on an occasional basis, refresh task now calls pkTaskTools::setCliHost to make it aware of the site name, reasonable default for app_pkimageconverter_path, suggested settings for app_cli_host, fixed installation instructions for Symfony 1.4, the slot value field is now a Doctrine 'clob', the sandbox now uses the 1.3 branch of sfDoctrineGuardPlugin
    • sfLucenePlugin: added option to change the http method from within the sfLuceneCriteria, updated to Solr 1.4, added task to start/stop solr built in web server, added type hitting, fixed wrong arguments in sfLuceneResults, fixed init-module task, updated schema.xml to use new types introduce by solr 1.4, updated service task to use nohup command, set the LockFactory to single by default, fixed the page number
    • sfSympalPlugin:
      • initial entry of sfSympalDataGridPlugin and many other small improvements and changes
      • fixed yui image uploader in rich text editor
      • fixed 500 internal server error when you view content manager for first time
      • fixed issue with sorting base url
      • added ability to set the initial sort and order for a data grid
      • initial entry of Sympal upgrade management
      • fixed issue with upgrade commands and re-adding web interface to upgrade
      • added admin/ prefix to upgrade routes
      • fix to make permissions checking more specific
      • fixed sympal update code to fall back to trunk if tag does not exist
      • calling upgrade() always to ensure current_version is set
      • fixed issue with writeSetting()
      • added check and message to dashboard for new versions of Sympal
      • added task to show current version and check for new versions of Sympal to upgrade to
      • added sfSympalConfig::getCurrentVersion() method
      • removed breadcrumbs
      • fixed configuration form css and fixed i18n change_culture function
      • fixed change language functionality
      • added save and edit menu button to sympal content module
      • added sympal:configure task
      • fixed issue with route cache not being cleared
      • initial entry of Sympal 0.7.0 changes
      • install refactoring and cleanup
      • fixed issue with lazy loading so queries per page is back down to two
      • added physical getters to avoid lots of call() usage
      • prefied all model classes with sfSympal
      • $sf_sympal_context variable is now available in templates
      • added output for the configured settings
      • set sfSympalContext current sfSympalSite instance based on the current content if it exists to avoid a query to get the Site record
      • enhanced content list form to have dropdown for sort column
      • enhanced table_method to be a dropdown of available methods on the type table class
      • enhanced table_method option name and added empty value
      • added filter event to filter slot raw values
      • added code to render exceptions as html to avoid fatal termination of a page when the content of a page causes an exception
      • detaching ContentSlot from the content record so slots can be re-used in different content
      • added base query, table and collection classes to add Sympal specific functionality
      • added some more test coverage and checks for menu query count
      • enhanced interface for installing additional plugins when installing Sympal from the web
      • added foreign key on sf_sympal_menu_item.root_id
      • tweaked content types so you can add customized versions of existing content types
      • fixed floating editor panel to have Edit and Add menu item links when viewing a content record
      • removed disable_comments integration with pages
      • removed embedded of content slot forms
      • fixed plugin web installer to allow one click download and install
    • sfTaskExtraPlugin: updated unit test bootstrap to find lib/vendor/symfony
    • swToolboxPlugin: added Google Analytics Asynchronous Tracking Code, updated doc
    • sfApplePushNotificationServicePlugin: added debug mode to listen.er task, changed message format
    • sfDateTime2Plugin: added a implementation of strptime (this PHP function only exists on Linux)
    • zsI18nExtractTranslatePlugin: made compatible with symfony 1.3/1.4
    • sfAuthorizeNetCIMPlugin: added some documentation, used settings from the app config file, improved validation/parsing of years on paramaters, added error and response codes to exception objects, added more profile transaction actions, added hooks for symfony logging infrastructure
    • sfDoctrineGuardPlugin: branching sfDoctrineGuardPlugin for Symfony 1.3 and 1.4 version in preparation for a new version, initial entry of new version with registration and forgot password functionality, fixed issue with relation class name, fixed wrongly referenced relationship names in methods, removed primary key on ip address as it causes problems for local networks
    • sfPaymentPlugin: added base form for the sfPaymentPlugin, added some inline documentation, added abstract base class for gateway classes, updated sfSellable interface, added basic implementation for the payments service container, updated the sfPaymentFormAbstract with some relevant base methods, updated sfTransactionInterface and added basic sfTransaction implementation, added sfPaymentForm class
    • sfDoctrineGuardExtraPlugin: added checkForm tests, fixed temp username in register test
    • psToolsboxPlugin: fixed the get method, added params name when building the cache name string
    • pkMediaCMSSlotsPlugin: support for the new pkContextCMS:refresh task, fixed bug in refreshSlot for buttons
    • pkMediaPlugin: API throws a helpful exception if the hostname is unknown, use a modern configuration class for the plugin
    • pkImageConverterPlugin: log PDF command lines for easier debugging
    • sfEasyAuthPlugin: the schema.yml file is now static
    • sfPhpunitPlugin: changed the way the fixtures work, added ability to get propel objects from loaded fixture
    • sfPaymentPayPalPlugin: renamed gateway class
    • sfDoctrineApplyPlugin: you can now reset your your password by typing in your email address OR your username
    • sfDoctrineGraphvizPlugin: extended readme, added other png files generation for both mcd & mld
    • sfSympalBlogPlugin: upgraded sfSympalBlogPlugin for Sympal 0.7.0
    • sfSympalCommentsPlugin: updated for Sympal 0.7.0
    • sfSympalTagsPlugin: updated for Sympal 0.7.0
    • sfSympalJwageThemePlugin: updated for Sympal 0.7.0
    • sfSympalDoctrineThemePlugin: updated for Sympal 0.7.0
    • swDoctrineAssetsLibraryPlugin: some refactoring to support flv and bug fixes

New symfony powered websites

  • annunci-auto-usate.com: (Italian) classified ads site especially for cars
  • Blumenversender: (Deutsch) flower service comparison site
  • Prepaid: (Deutsch) this site real rocks the german-szene
  • PowerDNS GUI: (English) web based GUI which aids in administering domains and records for the PowerDNS name server software with MySQL backend

They talked about us

Published in #A week of symfony