Agile Toolkit is an open source (AGPL v3 license) software that provides a new, efficient and object-oriented PHP framework for web developers who want to develop powerful and rich web apps.
Agile Toolkit is inspired by the Desktop Toolkits, such as QT, .NET or Cocoa, in order to provide smart web application framework for all types of web programmers.
While providing payed support for commercial usage, Agile Toolkit is free for open source projects.
What's New in This Release: [ read full changelog ]
· Added PSR-2 compliance to many core files. Will continue to improve other classes too.
· Added composer.json. Agile Toolkit can be installed through Composer now
· when calling setController, second argument can specify name or default options
· Security fixes in Logger
· added each() method (similar to jQuery) for model and dsql. Will execute specified callable for each row.
· added support for into templates
· api->addSharedLocation() is now called (if defined) by PathFinder before any locations are initialized
· added ApiInstall for building installers. For now undocumented as it might still change. Use with care.
· improved error outputting. Removed obsolete code and better highlight line which produced error
· improvements in Tester
· upgrade to jQuery 1.8.3 and jQuery UI 1.9.2
· added tools/getjq which automates bungling of jquery and jquery ui (also updates PHP)
· remove ability to debug models through GET argument
· improved support for nested namespaces, added PSR-0 compliance for pathfinder
· prevent readonly field from erasing field value
· added VirtualPage, allowing you to create separate blank page and display that instead. Useful in popups.
· added PHPCS sniff configuration for Agile Toolkit style validation (tools/phpcs)
· sql migration scripts now can output things with "select 'blah';" during migrations
· bug-fixes as usual
· CRUD is refactored using VirtualPage and new button. Now much more extensible and faster.
· CRUD->addRef() allow to drill into model's hasMany() relation through crud inside expander. Uses VirtualPage
· CRUD->addFrame() is a handy way now to create pop-up with some UI. Uses VirtualPage
· CRUD now shows better labels on buttons and dialogs (Add User instead of Add)
· allow_add, allow_edit, etc are now protected. Don't change them directly, specify through add() options.
· severely improved handling of NoSQL models
· added MemCache support
· added Session support
· added loadBy and similar methods
· several bug fixes
· severily improved handling of NoSQL models
· added support for caching (addCache())
· group() supports expressions now
· casting DSQL to string executes getOne() instead of returning selecting
· above fix revelaed many minor bugs. fixed them.
· added dsql->fieldQuery(), similar to model->fieldQuery(). Will delete other fields and query only specified one
· dsql->sum() improved
· order() for DSQL and Models chaining rule changed. Last call to order() will now be the main sorting order. Calling order with multiple arguments behaves in same way
· expr("hello, [name]",array('name'=>'world')) is now properly supported. Currently does not escape, BUT WILL!
· will silently ignore incorrect join type (otherwise it's considered as table alias creating SQL errors)
· added Model_Table->tryDelete()
· added sorting and limit support for Model (non-relational)
· hasMany can now be aliased by specifying 4th argument, which is then used inside ref().
· changed scrolling behaviour and vertical sizing of frameURL / dialogURL
· fixed form's behaviors with shortened names
· improved icon-only button handling (uses text=false)
· checkboxes widget has 2 new methods - select_all and unselect_all
CSS and LESS:
· separated out mixing into atk4-mixins.less
· removed prefix (used to be 'ui-icon') from Button->setIcon().
· readonly fields are displayed with nl2br
· form->setLayout() also supports SMlite object (if you don't want to specify a file)
· see HTML produced by any view by calling view->debug()
· added Menu_jUI - jQuery-compatible menu
· added View_DropButton
· added View_Flyout
· menu URL can be jQuery_Chain now
· Quicksearch and Grid cleaned up
· CompleteLister total counting changed. instead of $totals['row_count'] use $total_rows
· Filter improved
· Grid's multi-value fields will now show value instead of key.
· Cleaned up model type => form field type associations in MVCForm
· setProperty() is now obsolete, so use setAttr()
· added ability to specify a different Logger class through $logger_class property
· added destroySession into ApiWeb
· removed Form_Field->setNotNull() use validateNotNull instead
· removed Form_Field->setDefault() and getDefault(), use set() / get()