I wrote the AI application framework. Available under GPLv3 outdb.1.0.
It is based on a db that does not manage the data based on #id but the URL. So what you enter into the database has permalink. This makes life very easy because with a query you can display and edit without losing id.
It is also divided into applications and services. There may be many applications on the same site in the same database. Similar services, individual pieces with UI for how it looks and input in the database.
On the database:
The outdb table contains all url records what service the URL is and who is the owner.
The service table contains the services. Each service definitely has a file in /app/$iste/kati.php it is running. It can also have a table that will store the information. It can also have a Father Service ie the outdb example The topic of the service does not have a father service, but the article service has the father’s service, the topic.
The rest of the tables are from the services.
with the first URL clicks user will find all relevant to that url. From the parent service to the next and thus collects all the information from the database. It also gets the services associated with it, so there may be depth in the correlation of data to any extent.
So if you see the $outdb with print_r you will see all db tables related to the url. From Service to Service.
In fact, the outdb is in the outdb folder, which has the db frame and the outdb function to retrieve data from the database.
So if I want to put an article on kati.gr/neo_arthro I put url neo_arthro and service article. So in this url will open the /app/site/arthro/index.php file with the $outdb variable containing all database information related to neo_arthro
This is the outdb.
The app contains the application defined in config.php.
The next innovation is the db framework. Examples.
// This is INSERT
$input = array (“id” = 2, “name” = “trikas”, “tel” = “210423423”);
// This is a SELECT table field (array) $table[“id”] / row (array) $row[“id”] / field $field.
// Using LIMIT 1; return 1 row or `field
$table = db(«SELECT * `pelates`»).
$row = db(«SELECT * FROM `pelates` WHERE `id` = 1 LIMIT 1; «);
$field = db(«SELECT `name` FROM `pelates` WHERE `id` = 1 LIMIT 1;»);
For a social network i have made it, but anything can happen. The most unbelievable thing i found it opens the way for creating applications that do not exist and does not restrict the levels and the connection between the tables of the db.
In early form is at koinoniko.gr
The developer to work on a site enters the admin and places the services. shapes the tables to have what he wants. And then it creates the application with the $outdb and some templates UI.
It’s so easy to create an app that just needs to make the appearance of the app.