Stable release 4.1 is finally here
For all of you who have tried version 4.0.3 and have been stuck with it for a while, now it’s the right time to upgrade. There are a lot of new features and I’ll try to quickly go over the ones which are most important.
Complete list of changes can be found here:
Models without Controllers
Finally models can be used to the full potential without Controllers. Actually, controller is still used, but as developer you don’t need to worry about it. So take your Form or Grid and use setModel(‘User’);
The older way with controllers should still work fine.
<?page?> in your templates.
Agile Toolkit takes care of URL generation in dynamic content, however you might need to know URLs in your static templates. Use <?page?>about<?/?> to generate URL to the specified page.
Now you can use one of several form styles. try $form->setFormClass(‘vertical’). See documentation for other styles.
Even Better User Interface
4.0 branch wasn’t very ugly, but the new UI is much cooler. The jQuery UI theme is slightly enhanced, to give your Agile Toolkit application that refined look. There is however “elephant” theme as well which is designed to look similar to old theme.
New layout is now using “flexible” / fullscreen grid system. That means that 10-grids will be expanded automatically to full width. You can also use grids inside other elements, which works nicely for pop-ups and frames.
New exception system
There is a new way to throw exceptions now. “throw $obj->exception(’nuff said’);”. This connect exceptions object into the application and allows to have transparent validation, object-specific exception selection and additional information gathering. The syntax is also cooler.
initLayout() is called automatically
If you used to call initLayout() from your init() method, you shouldn’t do that anymore. It’s now done automatically after init() is completed. If you do, you will get an exception and therefore should be easy to spot and fix.
Added dynamic methods
If you have been relying on $this->frame() or $this->ajax() function, you should use this controller as those functions are now obsolete.