ATK (or Agile Toolkit) is a collection of PHP frameworks and components designed to simplify development of data-intensive Web App.
Mostly used in the building of admin systems as well as data manipulation web apps, ATK UI is very simple to learn for those who never used PHP in the past:
ATK Data is a very powerful and modern replacement for ORM and Query Builders — many developers use it exclusively for persistence abstraction.
If you didn’t follow our progress, last year..
Last few years our team has been working on improving quality of the code, adoption of standards, better documentation and also improving the development process in general.
But also added a lot of new features. Here is a quick look at major versions released in 2018 and 2019:
- ATK Data 1.3 — Introduced full support for Oracle and PostgreSQL (in addition to MySQL and SQLite) with all their quirks.
- ATK Data 1.4 — Significantly improved Array and Session persistence (conditions, traversal), added CSV persistence, introduced DeepCopy pattern and insert lookups.
- ATK UI 1.4 —Implemented Wizard, Console, ProgressBar, AutoComplete and Login add-on
- ATK UI 1.5 —Implemented Table column filters, Conditional form improved modal windows, Improvements to Tabs
- ATK UI 1.6 — Update to Fomantic UI, Grid Column Resizer, Lookup field, Accordion form, Implemented Selenium test-suite, Dynamic scroll, Code coverage improvements
- ATK UI 1.7 — Introduced VueJS component support, multi-line form and many other improvements
What is planned for v2?
First — let me also mention two frameworks that are sitting behind the scenes — ATK Core and ATK DSQL. Some of the changes required here on the low level:
- ATK Core 2 — will namespace resolution mechanism to improve support for
- ATK Core 2 — introduces support for translations traits (non-english)
- ATK Core 2 — refactors ContainerTrait for flexibility and better design
- ATK Data — to formally introduce support for User Actions
- ATK UI — to add User Action Executors and support for User Actions in Grid, CRUD and Card components
- ATK UI — fully revamped Card implementation
- ATK Data — refactor documentation layout
- ATK Data — new pattern in editing multi-record data
- ATK UI — officially release related-record form layout (e.g. invoice lines)
- ATK Data — move lots of code from Field into Field\Type classes
- ATK Data — move lots of code out of Model class
- ATK Schema — improve test-suite and add documentation
- ATK API — introduce support for user-actions
- ATK Data and UI — add translations
- ATK UI — use VueJS more extensively
- Refactor Some_Classes into Some\Classes
- Finally remove some old backward compatibility code
Finally — during our weekly team meetings we have agreed on many “conventions” which we will strive to honour even if some behaviour is to change (like the way how change label of Save button in a form or how to enable/disable “Edit”/”Delete” actions in a CRUD)
Will the v2 break my app?
For the most apps, there won’t be much effect. We intend to keep the apps working, so if you notice any breaking change which has slipped past our test-suite, please report and help us fix it!
If you are using stable version of the framework, you should be OK. There will be some beta releases, but they wouldn’t be installed. To be safe, you can specify
<2 as a version number for
If currently use
develop branch, I advise you to switch to
legacy/v1 branch. You can also help us maintain this branch by back-porting bug-fix releases.
Discuss V2 plans with our team.
We are a small team of core developers who believe that building web apps should be simple and fun (and also have inherent fear of custom CSS rules).
We welcome you to try ATK UI / ATK Data, which can be used together with other PHP apps or frameworks under the terms of MIT license.
For new users — you can learn ATK here: https://www.udemy.com/web-apps-with-php-and-atk for free.
Our weekly meeting schedule is here: https://atk.saasty.app/