Next release for Agile UI will coincide with next release of Agile Data and introduction of some “add-ons”, which some may say are “Very Essential” for web apps. I wanted to write about those up-coming features and provide some links where you can follow up with the development and perhaps even help out.
['type'=>'password'] only contributes to the way how password is displayed on the Form and in the Grid, but this will be further extended inside Agile Data to rely on password hashing to store password encrypted.
The UI will not be affected by this change. Reading password will from the database will always contain “null” and storing password “null” will not change it. The UI persistence will convert “” into null to make sure you don’t reset your password into empty ones, but through $model[‘pass’]=”” you can still set it like that.
Agile Data will also recognize the fact that your password could be stored un-encrypted and will encrypt it for you next time you load/save the model.
You might not know that there is a separate project implementing Migrations on top of DSQL (https://github.com/atk4/dsql). It was initially created as a proof-of-concept that DSQL language can be further extended.
This time it gains integration support for Models and ability to discover existing database structure. So something like this create or alter your database as per structure of the User model:
$m = new \atk4\schema\Migration(new User($db));
SQLite has a pretty poor support for altering columns (so only adding new fields), but MySQL will be able to adjust fields without data loss. I will leave other database implementation to contributors.
Ability to add multi-step wizard into your application is useful in many different situations. With our current set of components building this interactive component with buttons and a clean PHP code around it would be very timely.
Awesome and much needed high-level component allowing to drill down into CRUD items by clicking on their name. If you you work with more than a single Model and those models reference each-other, than this component would let you link up those CRUDs together and display even more data.
DataManager should give you ability to also organize referenced items into tabs.
Login Addon (https://github.com/atk4/login)
Login add-on would allow your application to create basic user interface — users can log-in, log out, register, change their passwords etc. This is not core feature of Agile UI or Agile Data because the functionality provided by the authentication addon is simply too high-level.
Tutorial — Installer + Admin
Finally — with all of the new exciting features and new add-ons, I will be able to create a new exciting tutorial. Starting with an
- Show greeting message to the user
- Show a Form where user can provide database credentials
- Run Migration for models, while showing a real-time ProgressBar.
- Show CRUD for the User model allowing you to add few users.
The other file,
admin.php of this tutorial will rely on “Login” add-on to do the authentication but could contain a pretty extensive multi-level administration system using DataManager and centered around your models and their references.
I am really excited about the new features and looking forward to publishing this tutorial, so be sure to follow me to try it first!