Archive for June, 2008

The wait is over: symfony 1.1 released

As you may know, we have been working for a very long time on the next stable version of symfony. Now the day has come to celebrate the immediate availability of the long awaited 1.1 stable release of the symfony framework!

Fabien, the core team, and contributors have achieved a tremedous amount of work to provide a full set of exciting new features. We have already talked a lot about them, but one more time, here is what you get in symfony 1.1:

  • The new architecture of symfony is more configureable and decoupled, allowing you to use or replace part of the framework very easily,
  • The new object-oriented form framework makes form creation and reuse a breeze,
  • The brand new task system allows to quicly make extensible batch scripts and command line utilities,
  • Symfony has now a decent YAML parser, with verbose error reporting,
  • The new plugin manager is now compatible with the PEAR standard API, handles plugins dependencies, and provides options for a better control on what you install,
  • The formats handling system can make your app behave and respond differently whether an iPhone, a bot, or a browser is requesting it,
  • The Propel 1.2 ORM is now bundled as a plugin, which means you can very easily switch to Doctrine or even to Propel 1.3 if you prefer,
  • The bundled sfCompat10Plugin will ensure that your 1.0 based projects will still work after having upgraded to 1.1!
  • The routing is now cached, so you can expect a significant performance boost when you got plenty of routes in your app. Also, the routing class is no more a singleton so you can now extend and reference it easily to fit your needs,
  • Even if that's not really a feature, more than 8,500 unit and functional tests guarantee the overall stability of the framework codebase. We doubled the number of tests between 1.0 and 1.1!

Installing and updating symfony

To install symfony 1.1 via PEAR, you have now to explicitely declare the version you want to install. So, if you want to install the 1.1.0 version stable, you must run:

$ pear install symfony/symfony-1.1.0

Whereas if you want the 1.0 version stable:

$ pear install symfony/symfony-1.0.17

If you prefer to download a standalone archive, grab the symfony-1.1.0.tgz or the symfony-1.1.0.zip archive and uncompress it somewhere on your disk.

If you are new to symfony, maybe the simplest solution is to download the sandbox :

And if you are a SVN afficionado, just checkout the 1.1 branch:

$ svn co http://svn.symfony-project.com/branches/1.1/ /path/to/symfony

Everything else is explained in great details in the symfony installation guide.

Upgrading your existing symfony projects

If you plan to upgrade an existing symfony 1.0 based app to use the brand new 1.1 version, please read carefully the UPGRADE file bundled in every distributed package and versionned in the SVN repository. If you are currently using symfony RC2 in your project, just be sure to run the symfony project:upgrade command just after having updated the symfony library.

As a side note regarding the symfony repository (which has just passed the 10.000th commit), and because we have today two stable versions of symfony (1.0 and 1.1), the trunk directory has been removed.

Regarding the documentation

The whole documentation has been updated to reflect the changes between symfony 1.0 and this new release. The community has surpassed all our expectations by contributing translated resources in 10 new languages in less than 15 days!

We have added a lot of useful tips in the cookbook and the fourth first chapters of the book for the new forms framework are available. The API documentation can also helps you finding easily what you need in the whole symfony codebase.

Maintenance

Symfony 1.1, as a transition release, will be maintained for one year starting from today, whereas 1.0 will still be supported until January 2010.

Next releases

Fabien and the core team have already begun working on the future 1.2 milestone, which will be date driven and no more feature-driven. Also, release cycles will be drastically shorten. You can expect interesting features and improvements to come in this next release, beginning with the brand new admin generator based on the new forms system provided by symfony 1.1. More information on this topic are to come, so stay tuned but please enjoy this new 1.1 version first ;-)

Thanks

We would like to address a special big thanks to Fabian Lange, who has done a fantastic work on symfony recently. Also, kudos to Carl Vondrick and Dustin Whittle for their very appreciated work on symfony.

And last but not least, the biggest thank will go to you, the symfony user community, for the growing interest in the project, for your contributions and for making symfony better and more widespread, day after day, so, one more time: thank you.

Symfony News alex 29 Jun 2008 No Comments

A week of symfony #78 (23->29 june 2008)

Unbelievable week for symfony: more than 200 changesets committed and 60 bugs fixed, great symfony 1.1 development activity, lots of symfony 1.0.x fixes, 3 new plugins released, nearly 20 plugins updated, 1.0.17 version released and lots of cookbook tutorials translations published.

Development mailing list

Development highlights

  • r9755, r9756: [1.0, 1.1] fixed coding standard + typo
  • r9757: [1.1] added truncate options to auto_link_text text helper
  • r9770, r9771: [1.0, 1.1] fixed possible notice in generator config handler
  • r9774: [1.1] added extension depedencies to pear package
  • r9777, r9784: [1.0, 1.1] fixed autoload paths on windows
  • r9778: [1.1] added support for highlighting multiple phrases in highlight_text
  • r9787: [1.1] removed remaining 'noxsd' occurrences
  • r9789: [1.1] re-added getCurrentRouteName to sfPatternRouting class
  • r9790: [1.1] fixed PH_EOL in phpmailer for 1.1
  • r9793: [1.1] fixed error reporting value for the test environment and added a migration task
  • r9802: [1.1] fixed sfMemcacheCache ignores multi-memcache-server configuration and defaults to localhost
  • r9805, r9806: [1.0, 1.1] fixed i18n XLIFF do not handle entities correctly
  • r9829, r9830: [1.0, 1.1] backported encoding fix for MySQLiConnection from creole trac. fixes
  • r9832, r9833: [1.0] fixed issue with incorrect calculation of uri prefix (now using http_host)
  • r9834: [1.1] sfWebRequest->isSecure now recognizes HTTP_SSL_HTTPS option correctly
  • r9835: [1.1] added a sfValidatorTime that works for time types in schema.yml
  • r9846, r9847: [1.0, 1.1] added generation of a .zip file when creating a sandbox
  • r9853: [1.1] fixed I18N timestamp handling
  • r9855, r9857: [1.0] fixed generated admin returning to first page regardless on which page the edit was started
  • r9856, r9858: [1.0, 1.1] removed double licenses from gettext files (with the permission of Qiang Xue)
  • r9859: [1.1] fixed CRUD templates when using the --with-show option
  • r9860: [1.1] fixed identifier name length check for Propel Generator
  • r9861, r9862: [1.0, 1.1] fixed getColumnFilterTag() component type
  • r9864: [1.1] fixed problem with sfPropel class initialization
  • r9878: [1.1] renamed sfForm::getFormField() to sfForm::getFormFieldSchema()
  • r9886: [1.1] cleaned sfMessageSource_XLIFF
  • r9887: [1.1] added a retry mechanism to sfMessageSource_XLIFF->save() that will recreate incorrect xml files
  • r9888: [1.1] fixed Propel behavior registration when using functional tests or built-in tasks
  • r9890: [1.1] fxed locking issues with the cache:clear, project:disable, project:enable and log:rotate tasks
  • r9893: [1.0] fixed locking issues with the clear-cache, log-rotate, enable, and disable tasks
  • r9892, r9894: [1.0, 1.1] fixed PHPMailer issue with UTF-8 subject being wrapped in middle of utf-8 char
  • r9897: [1.1] added a min and a max option for sfValidatorDate
  • r9906: [1.1] fixed m2m propel data loading
  • r9922: [1.1] fixed genurl() with relative_url_root parameter set
  • r9925: [1.1] added the widget when calling the formatter for the sfWidgetDormSelectRadio widget
  • r9926: [1.1] fixed addSortCriteria case sensitive problem
  • r9942: [1.1] added sfSession::regenerate and added calls on authentication/credential change to protect against session fixation attacks
  • r9944: [1.1] fixed sfForm::toString() silence exceptions
  • r9945, r9947: [1.1] fixed 404 page when raised by a non existant route
  • r9956, r9957: [1.0, 1.1] fixed convertUrlStringToParameters breaks urlencoded parameter
  • r9959, r9960: [1.0, 1.1] fixed gpc_magic_qutes and array in cookie
  • r9966: [1.1] moved _convert_options() function to TagHelper as FormHelper is not always loaded (when sf_compat is off for example)
  • r9967: [1.1] moved get_id_from_name() function to TagHelper as FormHelper is not always loaded (when sf_compat is off for example)
  • r9968: [1.1] removed FormHelper dependency for JavaScript helpers
  • r9969: [1.0] changed escaping of metas (and title) from htmlspecialchars to htmlentities to preserve intended encoding
  • Completed Milestone 1.0.17
  • Updated dwhittle branch
  • ...and many other changes

Development digest: 209 changesets, 49 defects created, 62 defects closed, 8 enhancements created, 20 enhancements closed, 4 documentation defects created, 10 documentation defects closed and 60 documentation edits.

Book and documentation

Wiki

  • New developers for hire:
    • Ross Motley (ross.motley [at] gmail.com): axperienced application developer based in London UK. 7 years web development experience with a particular emphasis on creating agile enterprise systems as well as the usual ecommerce/CMS projects.
    • Artform Webdevelopment: Dutch company based in Boekel, the Netherlands. We offer a full range of specialties, from SEO consulting to design and implementation of small and large scale web applications. We have extensive knowledge of PHP and Symfony.
    • Michael Bodnarchuk (davert [at] mydixi.com): experienced web developer with strong knowledge of PHP5, MySQL, and Symfony. Lead developer of myDixi social networking platform. Always avaible for hire as a freelancer developer for symfony-based sites. Located in Kiev, Ukraine.
    • Aaron Hall (adhall [at] gmail.com): US-based web developer with 4 years professional experience, PHP/MySQL application development expertise, a diverse skillset and several Symfony-based applications in production.
  • New symfony blogger:

Plugins

  • New plugins
  • Updated plugins
    • sfExtjsThemePlugin: restored related drop-down combo-boxes, restored autocompletion and sorting for related-comboboxes, start of splitting out combobox from foreignFieldColumn, added editable check for comboboxes, resolved some issues where unncessary renderer and editor parameters were being set to foreignkeycolums that were editable, fix for hidden related columns, fix scope of combo-autoload, added relatedFieldName property, fixed some editor-popup-window properties, changed _edit_ajax_form method-definitions, added setting of namespace to addSortCriteria and processSort to fix the sorting problem with executeJsonAutocomplete, reimplemented related-combos (changed prevent changing focus, to allow adding new relted items from pop-up, changed renderers, improved preloading to combo-store), reimplemented edit-pages, moved combo-store definition from foreignFieldColumn to comboBoxAutoLoad.js, corrected the naming and namespaces on some files and overrides, added Ext.ux.form.Checkbox back into default config as it makes checkboxes much nicer, changed implementation for tinyMCE + new plugin, implemented fieldset, added symfony-ajax-debugger integration
    • sfPropelPlugin: fixed admin_double_list cannot handle objects of the same class, fixed include path for behaviors, added mixins for doCount in doCountJoin, fixed path to base class in forms, added support for propel 1.3 nested sets, fixed tests, updated fixtures settings, fixed m2m fixtures, fixed sort criteria case sensitivity, fixed sfPhing for phing 2.3
    • sfGuardPlugin: fixed remember me functionality
    • dgDojoPlugin: updated documentation
    • sfAssetsLibraryPlugin: improved Windows compatibility, fixed wrong exception parameter, fixed untranslated exception messages
    • sfFeed2Plugin: added Image support to sfFeed2Plugin
    • sfXssSafePlugin: migrated to htmlpurifier 3.1.1, released 0.6.1 version
    • sfPropelPlanetPlugin: added a new author column in entry schema, updated according templates (breaks BC), added strict requirements to bundled routes, added CDATA clauses in RSS tags to avoid problems with entities, added simple css theme settings, added the planet:feed-purge task to purge entries older than a given date or amount of time
    • sfDoctrinePlugin: locked Doctrine externals to a tag
    • sfPropelSlotBehaviorPlugin: released 0.1.4 version
    • sfExtjs2Plugin: added quote except for scope key, fixed recursion error for items-surrouding (they where not surrounded with [] but with {})
    • sfDynamicCMSPlugin: fix bug with requirements & i18n activated for routing.yml generation
    • sfPropelImpersonatorPlugin: backported trunk patch on 1.0 stable branch
    • sfPropelFinderPlugin: added sfPropelFinder::withColumn() method, withColumn() automatically adds missing joins, added sfPropelFinder::findFirst() and sfPropelFinder::findLast() methods, added sfPropelFinder::relatedTo() method, made findLast() accept a column parameter, added sfPropelFinder::findByXXX() and sfPropelFinder::findOneByXXX() methods, sfPropelFinder::from() now accepts an array of Propel objects
    • sfGuardDoctrinePlugin: use trunk/ instead of 1.1-branch with sf 1.1, since 1.1-branch doesn't work with sf 1.1
    • sfPhotoGalleryPlugin: released 0.1.3 and 0.1.4 versions
    • sfAdvancedAdminGeneratorPlugin: added one-to-many foreign_class auto setting feature (nesting, rest), added conditions to object_actions tag
    • sfPropelActAsSluggableBehaviorPlugin: merged all changes and added the "unique" parameter, released 0.4 version
    • sfLucenePlugin: fixed better routing, fixed readme to explain how to enable propel behaviors

Some new symfony powered websites

  • MeioAlternativo: (portuguese) great source of proxys, tips, utilities and list os msn web messengers, a lot of stuff to help people by-pass firewalls on job and school

They talked about us

Symfony News alex 29 Jun 2008 No Comments

symfony 1.0.17 is out

The symfony team is proud to announce the immediate availability of symfony 1.0.17. Lot of bugfixes in this release and more than 20 tickets closed.

  • r9969: changed escaping of metas (and title) from htmlspecialchars to htmlentities to preserve intended encoding. fixes #2860.
  • r9959: fixed gpc_magic_qutes and array in cookie (closes #3458).
  • r9957: fixed convertUrlStringToParameters breaks urlencoded parameter (closes #3788).
  • r9892: fixed PHPMailer issue with UTF-8 subject being wrapped in middle of utf-8 char. fixes #2957.
  • r9861: fixed getColumnFilterTag() component type (closes #2861).
  • r9855: fixed generated admin returning to first page regardless on which page the edit was started. fixes #1280.
  • r9829: backported encoding fix for MySQLiConnection from creole trac. fixes #3017.
  • r9806: fixed i18n XLIFF do not handle entities correctly (closes #3792).
  • r9784: fixed autoload paths on windows (closes #1485).
  • r9668: fixed sfBrowser does not create DOMDocument when response is text/xml (closes #3766).
  • r9538: fixed sfFillInForm to work correctly with nested arrays like: article[description][].
  • r9260: fixed cache corruption in the production environment for admin generated content.
  • r9216: fillin: fixed bug with html documents having extra attributes in head tag.
  • r9209: added third mode for fillin xhtml, same as xml but without prolog (+test). fixes #3568.
  • r9182: fixed phpmailer EOL line style using now PHP_EOL constant. fixes #3313 #3562.
  • r9177: 1.0: backported fix from r8926. fixes #2161.

As usual, the PEAR and Debian packages are going to be available very soon.

As symfony 1.1 will be released soon, we will have 2 stable versions available in the PEAR repository. So, to install the latest 1.0 version with PEAR, you must specify the full version as show below:

$ pear install symfony/symfony-1.0.17

or when upgrading:

$ pear upgrade symfony/symfony-1.0.17

We've updated the installation page to reflect these changes.

Symfony News alex 29 Jun 2008 No Comments

Next Page »