Skip to content

Instantly share code, notes, and snippets.

What would you like to do?

Changes 4.2.3 to 4.2.4

Note: for diff see:


  • 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


  • 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 obsoletes:

  • removed Form_Field->setNotNull() use validateNotNull instead
  • removed Form_Field->setDefault() and getDefault(), use set() / get()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.