Wednesday, November 29th, 2006
symfony, the popular PHP Ajax framework, has released a beta of their 1.0 framework.
New Features in 1.0
Easier installation and larger compatibility. Symfony is now compatible with
magic_quotes_gpcset to on and PHP 5.2. Pake and phing are now bundled with the core classes, so symfony has no more external dependency. It is very easy to link a symfony application to the symfony libraries (through the
config/config.phpfile), and PEAR is no more a prerequisite. The symfony command line now works out the box (for PEAR, SVN or .tgz).
Major performance improvement. Many parts of the code have been refactored, with performance in mind. The result is a performance increase of 50% to 500%, depending on your platform.
New plugin system. Extending symfony has never been easier. A plugin can package classes, modules, helpers, filters, web assets, fixtures, data models, unit tests, and so on. Plugins can be installed with one command. Check the Plugins page for a list of already available plugins.
New unit test library. Symfony is now bundled with its own unit and functional test framework, called
lime, and a bunch of automated tests utilities, such as the
sfDomCssSelectorclasses. Symfony itself has more than 2800 unit and functional tests that guarantee its quality of code.
Updated default pages for error 404, error 500, insufficient credentials, unavailable page, and deactivated application (thanks justinm for the design!). These pages are both much nicer and much easier to customize than before.
Easier templating. Components and components slots now work perfectly on every situation, even with cache set to on. Their code was refactored to be fast and effective. The new temlate fragment tools, called slots, are faster than component slots, require no extra file or configuration to add a dynamic zone to a layout. And the icing on the cake: Ajax actions have no layout by default.
Better and more flexible Model layer. Symfony is now ORM independent: it is still bundled with Propel by default, but can work with others (such as Doctrine) in a snap. Database schemas can now be written in YAML instead of XML. Persistent support and specific database encoding are now supported natively.
New mixin feature. The
sfMixinclass introduces mixins in PHP, allowing core classes modification without inheritance, addition of new methods to existing classes, and multiple inheritance.
New behaviors for Propel classes. A behavior is a group of properties and methods that can alter the Propel generated classes. To make a Propel class sortable, to add a pessimistic lock, or to change the deletion by a
is_deletedflag, you now need only one line of code with behaviors.
More user-friendly development tools. The symfony logs and the web debug toolbar now display more information about time and execution bottlenecks, thanks to the new
sfTimerclass. The symfony command line now has a color output (in *nix). The logging mechanism (via the
sfLoggerclass) is more flexible and easier to extend. Logs rotation and cleaning are automated.
More flexible filter system. User filters can now be registered anywhere in the filter chain (even before the security filter).
New many-to-many relationships are now supported in the admin generator.
Easier deployment. The
freezetask is implemented and fully functional. It transforms a symfony project into a self sufficient program by adding in the symfony libraries and assets.
Updated creole, Propel, script.aculo.us (1.6.5) and prototype (1.5.0_rc1)
- And more than 200 bug fixes and small enhancements
Posted by Dion Almaer at 1:54 pm