Symfony project smashed all records this week with the simultaneous release of three stable versions (1.2.10, 1.3.0 and 1.4.0), nearly 500 changesets commited to the repository, 130 bugs fixed, 14 new plugins and 36 updated plugins. A new symfony book called More with symfony was announced for advanced users. Hundreds of posts and tweets were published all around the world covering the best symfony week ever.

Development mailing list

Development highlights

  • r24590: [1.2, 1.3, 1.4] fixed obtaining error from mysqli session storage
  • r24591: [1.2, 1.3, 1.4] added requirements to DELETE action of sfObjectRouteCollection.class.php
  • r24593: [1.3, 1.4] removed old lazy_cache_key setting from generator
  • r24595: [1.3, 1.4] enhanced parameter validation task to produce less false positives
  • r24605: [1.3, 1.4] refactored sfWidgetFormDate.class to allow easier extension and tests, as well as being easier to read
  • r24607: [1.2, 1.3, 1.4] no longer adding duplicate entries in sfMemcacheCache.class metadata cache when key is already existing
  • r24613: [1.2] added project:validate task to symfony 1.2 to enable checking for deprecated code already before upgrading to 1.3
  • r24615: [1.3, 1.4] updated page and action caching to consider GET parameters
  • r24619: [1.0, 1.2, 1.3, 1.4] fixed incorrect array access of lastModified header which only was an array pre 1.0. This was effectively preventing 304 Not Modified response from working correctly
  • r24622: [1.0, 1.2, 1.3, 1.4] allowed __() and sfI18N->__() and sfMessageFormat->format() to take an object with a __toString() method
  • r24628: [1.3, 1.4] updated date validator to ignore date_format option if tainted value is an array
  • Milestone 1.2.10 completed
  • Milestone 1.3.0 completed
  • Milestone 1.4.0 completed
  • r24705, r24706: [1.2, 1.3, 1.4] optimized project:validate task
  • r24857: [lime] added output when the parser cannot read the test output
  • r24942: [1.2, 1.3, 1.4] updated japanese translation of the admin generator
  • r24961, r24962: [1.3, 1.4] using var export on serialisation to prevent invalid php code
  • r24986: [1.3, 1.4] patched class manipulator to work with source that uses an eol other than PHP_EOL
  • sfDoctrinePlugin:
    • r24537: [1.3, 1.4] decoupled relation name from form field name when calling embedRelation(), allowed embedding of type one relations
    • r24598: [1.3, 1.4] fixes issue with attributes in databases.yml
    • r24604: [1.3, 1.4] fixed issue where local is an array
    • r24606: [1.3, 1.4] fixed sfDoctrineRecord::call() so proper exception is thrown
    • r24617: [1.3, 1.4] fixed issue with base model classes not having tokens replaced from properties.ini
    • r24618: [1.3] removed sfDoctrineRecordListener class which is not used
    • r24620: [1.3, 1.4] fixed module option being ignored in *:generate-admin task
    • r24625: [1.3, 1.4] updated doctrine:dql task to render NULL for null values when in table mode
    • r24632: [1.3, 1.4] fixed issue with magic setters/getters for a field with a underscore and number at the end (reverted)
    • r24634: [1.3, 1.4] catching Doctrine validation exceptions so you don't get internal server errors in admin generator if you use Doctrine validation
    • r24637: [1.3, 1.4] fixed inconsistent case in doctrine crud
    • r24641: [2.0] updates for Doctrine 2 to make plugin work again
    • r24745: [1.3, 1.4] fixed replacing of tokens in doctrine stub and base model classes
    • r24970: [1.3, 1.4] fixed inclusion of linked doctrine schema files
    • r24971: [1.3, 1.4] fixed sfFormDoctrine::removeFile fails to remove files
    • r24993: [1.3, 1.4] updated checking for logged trace to be a bit more responsible
  • sfPropelPlugin:
    • r24597: [1.3, 1.4] fixed casting of propel i18n objects to string
    • r24620: [1.3, 1.4] fixed module option being ignored in *:generate-admin task
    • r24621: [1.3, 1.4] fixed column name used when generating propel route collections
    • r24993: [1.3, 1.4] updated checking for logged trace to be a bit more responsible
  • ...and many other changes

Symfony components

  • yaml:
    • r24603: tagged release 1.0.0
    • r24654: fixed a possible loop in parsing a non-valid quoted string
    • r24656: fixed \ usage in quoted string
    • r24716: fixed YAML dump when a string contains a \r without a \n
    • r24719, r24720: changed Exception to InvalidArgumentException
  • event dispatcher:
    • r24601: tagged release 1.0.0

Development digest: 459 changesets, 68 bugs reported, 130 bugs fixed, 10 enhancements suggested, 27 enhancements closed, 21 documentation defects reported, 20 documentation defects fixed, and 45 documentation edits.

Documentation

New Job Postings

  • LAMP Web Developer at Codero - Contact: adrianf [at] codero [dot] com

New developers for hire

  • Maple Design Ltd: is a web development agency based in Southampton, UK. We are experienced PHP5 developers and handle development work for a number of creative agencies as well as our own clients. We've used Symfony since 2007.

New symfony bloggers

Plugins

  • New plugins
    • dmWidgetGalleryPlugin: packages a Diem front widget for displaying image galleries.
    • sfYandexYMLPlugin: some classes helping to create XML files for the Yandex.Market service (http://market.yandex.ru).
    • sfApplePushNotificationServicePlugin: adds Apple push notification service integration for your projects.
    • sfPropelOraclePlugin: facilitates communication between a symfony project and system management data base Oracle.
    • sfDeploymentPlugin: helps you deploy your applications by supporting single and multiple deployment targets for web, application and database, deployment via ssh, scp, sftp, ftp, svn, git and filecopy, deployment of various database and storage backends.
    • sfMCronPlugin: provides a convenient work with cron. This plugin allows to execute function & class methods according certain time specification. With this plugin you can add, delete handlers, watch their list. Display priorities launch, monitor the work of handlers.
    • sfActivemqPlugin: adds Activemq support for your symfony apps.
    • dmCoreTranslatorPlugin: designed to help translators to provide Diem translations. It generates data/dm/i18n/en_**.yml files. Missing translations are generated automatically using the Google translate API.
    • swCombinePlugin: (no description)
    • sfQuickCommentPlugin: provides a really simple component for developers to include a quick comment box that allow logged user to comment on every thing. This plugin could be considered as a "commentable behavior" for doctrine object.
    • sfPaymentMolliePlugin: contains an adapter that supports transaction with the Mollie iDEAL API. By using the sfPaymentMolliePlugin you can easily support transactions with the following dutch banks: ING, ABN Amro, Rabobank, SNS, Fortis, Friesland Bank.
    • sfDoxygenPlugin: provides tasks to generate your sourcecode documentation via Doxygen.
    • nExtJs3Plugin: (no description)
    • sfTwittThisPlugin: send twitts using bit.ly api to reduce url.
  • Updated plugins
    • sfTaskExtraPlugin: fixed deprecated use of sh for execute()
    • sfFormExtraPlugin: added sfWidgetFormDoctrineJQueryAutocompleter, changed the sfFormLanguage to take the current user culture into account, added a date_widget option to sfWidgetFormJQueryDate, fixed incorrect octal parsing of dates in javascript
    • sfSuperCachePlugin: created the 1.3 branch, made a small optimization, backported some changesets from 1.0
    • sfThumbnailPlugin: fixed package.xml for symfony > 1.0, removed 5.3.0 deprecated features
    • sfGuardPlugin: removed old code
    • sfFeed2Plugin: fixed package.xml for symfony 1.3/1.4
    • sfDoctrineGuardPlugin: removed old code, fixed missing parent::Setup() call for form, fixed issue with real property names, fixed validator, added tests for forgot password, added tests for register and forgot password, added invalid key for register
    • diemPlugin:
      • added french and german translations
      • added dm.i18n.not_found event
      • fixed admin code editor use deprecated dmFilesystem->copyRecursive method
      • removed deprecated dmFilesystem->copyRecursive method
      • fixed admin dmError generator.yml
      • removed deprecated template tidyOutput
      • added postgresql support
      • updated admin generator processFormActions part to match latest symfony update
      • updated dmMessageFormat to allow to format objects with a toString method
      • improved dmValidatorCssClasses
      • fixed time delta on server log chart
      • made content chart use weeks instead of months
      • fixed escaping in admin config panel
      • added dmString::escape static method
      • removed useless escaping from the dmConfigForm class
      • added dmFormField->getHelp method
      • fixed dmFormField when fluent interface is used many time in the same string generation
      • disabled no script name redirection when running functional tests
      • updated static calls to Doctrine_Core
      • improved front drag & drop zones and widget are now more usable
      • added dmAdminGenerateTask clear option to regenerate a module
      • disabled selection on front & admin tool bar menus
      • fixed bug in widget_renderer service
      • improved zone and widget draggable helper appearance
      • fixed pages secure option
      • added login page and disabled it in sitemap generation and search engine population
      • improved permission and group toSring method
      • added sf_login and sf secure configuration in dmAdminPluginConfiguration
      • removed useless model declarations in admin default modules.yml
      • added template field to DmLayout (now each layout can declare its own template)
      • removed deprecated lazy_cache_key config from skeleton
      • fixed skeleton sf_login and sf_secure configs
      • added changeToDisabled and changeToReadOnly shortcut methods to dmForm
      • added dmSearchIndex->fixPermissions method and cleaned the whole class
      • added dmFrontGenerateTask->generateLayoutTemplates method
      • made dmFrontPluginConfiguration change sf_login and sf_secure configs only if set to default
      • made dmFrontPageViewHelper and dmFrontPageEditHelper extend the abstract dmFrontPageBaseHelper
      • added login and secure actions to dmFront
      • made impossible to secure the login page
      • improved DmFormSignin and made it extend BaseDmFormSignin
      • improved the signin page template
      • refactored search subframework to be more flexible and testable
      • refactored seo_synchronizer service to handle multilinguism
      • fixed usage of dmDoctrineQuery->isActive in admin generated module actions
      • made DmPage is_secure field, DmWidget, DmAutoSeo and DmMailTemplate translatable (compatibility break)
      • added DmSetting table in admin database core diagram
      • added translation tables in admin database diagrams
      • fixed admin search engine querying
      • fixed search engine description when many culture indices
      • added search_engine service dir option
      • added search_index service culture and name options
      • added the new search_document service with a culture option
      • added the new search_hit service with score and page_id options
      • added page_i18n_builder service to listen page creation and create missing translations
      • removed search_engine logger dependency
      • removed search_index logger and filesystem dependencies
      • removed layoutType index on DmArea table
      • changed front and admin automatic functional tests default env to prod
      • fixed dmRecordLoremizer on translatable tables
      • improved dmDoctrineQuery->whereIsActive method to handle translated is_active fields
      • added dmDoctrineQuery->fetchOneArray shortcut method
      • added dmDoctrineRecord->hasCurrentTranslation
      • enhanced dmDoctrineRecord preSave hook to notify an update even if only the translated table has been modified
      • added dmDoctrineRecord->toArrayWithI18n method
      • fixed dmDoctrineRecord->getI18nFallback() should return null on new records
      • removed translation table id field from human columns
      • made dmDoctrineTable->getColumnDefinition return the translated column definitions
      • made dmDoctrineTable->getIdentifierColumnName method use the translated fields
      • added dmFormDoctrine i18n fallback capabilities
      • added dmI18n->getCultures and setCultures method
      • refactored PluginDmAutoSeoTable
      • improved performances on DmLayout creation
      • fixed action modification detection when saving a DmPage record
      • added dm.page_post_save event
      • removed deprecated PluginDmPage->getDmAutoSeo() method
      • made PluginDmPageTable->findOneBySlug method use an innerJoin for the translation as we search on the translated slug
      • added PluginDmWidget->toArrayWithMappedValue() method with i18n fallback capability for value field
      • fixed bug when refreshing page on dmPageSynchronizer before moving it in the tree
      • made dmPageTreeWatcher synchronize SEO for each culture
      • added dmBackup->setDir method to ease unit tests
      • deprecated dmFrontPageIndexableContentTask
      • fixed dm:setup task when no models are declared in user schema.yml
      • added dmSyncPageTask
      • removed deprecated dmGenerateMigrationTask
      • made dmFrontFunctionalTest expect a 401 status code on login page
      • made dmSeoSynchronizerThread run the synchronization for each culture
      • removed culture tests in dmCoreUser to ease multilingual tests
      • fixed dmLinkTag attributes to remove
      • fixed dmLinkTag detection of empty params
      • added 21 unit test files
      • made dmTestHelper and dmPageTestHelper more robust
      • made culture selection in front application follow the current page even if the slug has changed
      • added widget_css_class_pattern page_helper option
      • removed page_helper_service dependence to i18n service
      • added automatic i18n query inclusion on front list component
      • fixed dmWidgetBaseForm use latest widget default value to use the translated value
      • made dmFrontPageViewHelper and dmFrontPageEditHelper extend dmFrontPageBaseHelper
      • made front_helper service extend dmConfigurable and easier to extend
      • dropped compatibility fix on front base actions
    • pkToolkitPlugin: fixed bug that doesn't allow 12PM times to validate, removed logging calls that were superfluous and also invoked getSql() which no longer exists in 1.2, changed redirection code from 302 to 301 ( moved permanently ) in dmInitFilter->redirectTrailingSlash and dmFrontInitFilter->redirectNoScriptName, pkTrace now loads helpers the Symfony 1.3+ way
    • ncPropelChangeLogBehaviorPlugin: if a modified column does not exist anymore the plugin won't throw an exception as it used to, tables without 'created_at' field will work as well, replaced 'getId' with 'getPrimaryKey' in ncPropelChangeLogBehavior, if a related table has multiple columns pointing to the object that is beign inspected all of them will be look for changes, fix for error while looking for changes in related objects without the 'changelog' behavior or the 'toString' method
    • pkContextCMSPlugin: getTreeInfo and getAccordionInfo now respect the $livingOnly parameter properly, navigation changes, history browser now shows the latest 10 revisions, various forms built with helpers have been converted to Symfony forms, the breadcrumb can now be extended with additional li's via the _breadcrumbExtra partial
    • csDoctrineActAsAttachablePlugin: removed __call method from template which causes problems if multiple templates are being used, improved helper
    • sfDoctrineApplyPlugin: Zend should NOT be the fallback autoloader
    • sfAdminDashPlugin: lots of improvements
    • sfPhpDocPlugin: edited packages.xml for 2.0.0 release
    • sfDatagridPlugin: set one formatter per ORM
    • sfSocialPlugin: made fully compatible with symfony 1.4, minor aesthetic fixes
    • sfAssetsLibraryPlugin: improved compatibility with sf1.4
    • sfEasyAuthPlugin: removed generated base classes from the repo, implemented a new remember me feature that works and doesn't touch the database, updated documentation
    • sfDoctrineGuardExtraPlugin: use new mailer system, removed retrieveByUsernameOrEmailAddress model function, removed sfGuardExtraMail class, moved mail code to seperate function to better override, fixed coding standards, change from Doctrine to Doctrine_Core, fixed coding standard, changed email send methods to public to access from other actions
    • iaBotControlPlugin: removed deprecated call to Form helper
    • csDoctrineActAsSortablePlugin: adds error handling for uniqueBy option, fixed sortTableProxy function
    • pkBlogPlugin: changed template for pkContextCMSBlogEven, in excerpt view posts and events show a 75 word preview of the post if there is no excerpt, attached media now full width above post, fixed date format, added support for event start and end times
    • sfZendMailPlugin: added clearAttachments helper method
    • sfSympalPlugin:
      • tons of updates for Symfony 1.4
      • fix for lazy loading
      • added test for query count
      • fixed submenus
      • fixed double call of label getter
      • made menu manager configurable
      • made plugin schema file check less restrictive
      • fixed invalid HTML
      • fixed Internet Explorer JavaScript errors
      • removed duplicate field from menu item admin gen
      • fixed issue with disabling i18n
      • fixed ContentList sorting
      • fixed plugin enabling
      • fixed current ancestor
      • fix when secondary menu doesn't exist
      • fix to allow the configuring of layout for non sympal content
      • query optimizations
      • made breadcrumbs class configurable
      • moved \ route to end to allow overriding
      • added register event
      • fix for configuration form showing hidden fields
      • added admin generator styling
      • Dashboard style changes
      • fixed blog install
      • moved code to sympal_edit_slot module
      • fixed content list filtering
      • added rounded corners to top menu bar
      • removed sidebar and reimplemented the menu management of the tree
      • refactored routing to be a bit simpler
      • fixed issue with updated_at not being unset from form
      • removed right sidebar from dashboard
    • sfImageTransformPlugin: supported symfony 1.3/1.4 plus other bug fixes
    • sfMediaLibrary: changed directory structure to the standard one, started to refactor the plugin
    • sfLucenePlugin: removed sfContext dependency, updated unit test, cleaned API, replaced lime_test::get_temp_directory() calls to sys_get_temp_dir(), updated task to work with the provided sfApplicationConfiguration, updated model behavior to work with the provided sfApplicationConfiguration, added faceting search, removed sfLucene object from sfLuceneCriteria, handle multiValued field right from the indexer, add default value with sort in sfLuceneCriteria, added default value for criteria, updated unit test
    • sfExtjsThemePlugin: replaced instances of sfLoader::loadHelpers() method with method from sfApplicationConfiguration, fixed bug with missing statement close when credentials are configured for a boolean column, added preliminary support for credentials to editformpanel, added config option to generator to not use unique id's with the grid jsonreader, switched from record.id to safer record.get('id'), fixed warning in editformpanel if no credetials defined
    • sfPaymentPlugin: added external definition to the dependency injection component, renamed sfTransactionAdapterInterface to sfTransactionGatewayInterface
    • sfSympalDoctrineThemePlugin: updated theme
    • sfSympalJwageThemePlugin: updated jwage theme
    • sfSympalCommentsPlugin: fixed request param syntax
    • sfDateTime2Plugin: updated deprecated sfLoader::loadHelpers methods
    • sfUnobstrusiveWidgetPlugin: disable datepicker if the related input (or select) is disabled
    • swFunctionalTestGenerationPlugin: added support for test-formatter / skeletons

New symfony powered websites

  • Online-Slovník.cz: (Czech) Czech-English dictionary
  • dum-zahrada-shop.cz: (Czech, and Slovak) electric tools, household articles e-shop
  • greenhell.cz: (Czech) carp fishing competition
  • seminare.fav.zcu.cz: (Czech) seminars at FAV / University of West Bohemia in Pilsen
  • Openchords.org: (English) enter or search GUITAR CHORDS, listen to them on the fly and arrange the results. It enables you to listen to complete arrangements and send them to anyone, anywhere
  • PCMasters: (Deutsch) German technology news paper

They talked about us

Published in #A week of symfony