Today is the day a great portion of the community has been waiting for, even without knowing that it will be today. As our early Christmas present, we finalized the 1.2 release of symfony after some weeks of hard work. We will be revealing more presents soon, stay tuned :-)
symfony 1.2 Features
Let's have a look at what was planned for this release and what is in this package today.
We kept track of all the the new features in our What's new in symfony 1.2? tutorial. Here the main highlights at a glance:
ORM and Admin Generator
One can argue if it is the Admin Generator or the sfDoctrinePlugin that was anticipated most, but both were at the top of our wish list. Because Propel 1.2 was getting old, we upgraded sfPropelPlugin to use version 1.3 of Propel which uses PDO. The Doctrine version included is 1.0.
And for both, we have now a great redesigned admin generator, which was developed with many ideas and requirements from the community, as well as designed to fix plenty of shortcomings of the 1.0 admin generator.
The main byproducts of the admin generator development work also standalone. There is now the great new Routing Framework, which allows RESTful urls which can even directly work on propel objects. Filters can be automatically generated to query for objects, using the new Filter Framework. Oh and well, the Form Framework was also improved, and should ease some of the trouble people had with the 1.1 forms, like automatic nested form saving for related Propel objects.
symfony 1.2 sports more and better testing facilities. Now you can use readymade or custom testers, which allow grouping of testing functionality and reducing the lines of code required to write tests.
The task system was improved as well, allowing to integrate better with plugins, and allowing to leave the application argument out. Tasks now can also
askConfirmation() allowing to write smart, interactive tasks.
Because we wanted you not to be bound anymore to Prototype and Scriptaculous, we moved it a tad farther away from the framework by making a core plug-in out of it. And we published the sfFormsExtraPlugin which will host the various rich components. sfTaskExtraPlugin was created by the core team to ease development of tasks. This allows you even more to use the plugins you want, the frameworks you want, or just the parts of symfony you want for a project.
We continued our pursuit of good documentation by updating the symfony book with details on Doctrine and Propel 1.3. And we will continue to update it. Also more Cookbook Tutorials have been created and translated by the community. They cover advanced and new features not covered in the book.
If you want to translate or write a cookbook, feel free to do so and send it to the core team or the documentation mailing list for review and inclusion. There are also a few languages spoken in the world that are not part of the 29 admin generator translations yet; but we are confident, that you can fix it :-)
How to install and upgrade
As usual the installation and upgrade instructions can be found here, and we want to emphasize that also people upgrading from 1.2 beta or release candidate versions should re-run these instructions.
If you are using symfony via svn you might encounter a problem with respect to the
plugins folder, which just recently included the doctrine and propel plug-in directly, no longer via an external. Certain svn clients have a problem updating this change and you might need to delete those plugins manually before running
symfony 1.2 requires PHP 5.2. It works best with PHP 5.2.4 or above. You might need to upgrade your PHP installation to take full advantage of all features and benefit from better performance.
Upgrading from 1.0
In case you want to run your 1.0 project now with symfony 1.2, you need to upgrade it first to 1.1, using the 1.1 upgrade instructions. I encourage you to try it again even when you tried it before and had some problems with 1.1, because after running the upgrade to 1.2 most of those issues have been resolved, making it a bit easier for upgraders.
Upgrading from 1.1
Upgrading from 1.1 to 1.2 is very easy. From the feedback we received, no 1.1 feature did make any troubles, the issues were mostly either with doctrine, propel or the new admin generator. So this means that there should be almost no work required for a 1.1 to 1.2 upgrade, but you will enjoy refactoring afterwards, because you can remove portions of your code and just use new symfony functionality.
Upgrading from 1.2 svn, beta or rc
Please check the Upgrading from 1.1 to 1.2 instructions, because there have been made some changes that need to be taken care of, especially a security related change in the generation of templates.
Facts and Figures
Do you like fancy figures? Here we go:
- Symfony 1.2 development has resolved 216 tickets targeted for 1.2.
- Test Coverage has increased from 73% coverage in 8500 tests to 75% in close to 9000 tests
- 591 Changesets have been applied to symfony 1.2 core classes
- 95 Plugins declare themselves being compatible with symfony 1.2 already now
Thanks to everybody who has contributed to this release by creating tickets and patches, translating or writing documentation or helping with finding nasty bugs.