Tools For Better Developers

Osm Admin: Modules

2021 December Osm Admin

2 years ago ∙ 1 minute read

I'm still working on indexing, and it seems to get one more refactoring. But more on that later.

Meanwhile, let's review Osm Admin modules, their responsibilities and dependencies.



Several modules are gaining shape:

Module Dependencies

In the above schema, you can see what modules are required by every other module.



The central module that other modules depend on is Schema. It collects information about data classes and properties, and puts them into the $osm_app->schema.


The Formulas module defines classes for the inner structure of a query: property selection, filters, and sorting. It also contains a rudimentary parser for expressions like parent.title.


The Indexing module contains a generic engine for propagating data changes through the rest of the database. It introduces the concept of indexed properties, and it adds information about indexes and indexed properties into the schema.


The Storages module defines how data objects are stored, and where they are retrieved from.


The Queries module defines the query syntax for retrieving objects from storages, and storing them.


The Tables module creates database tables for storing data objects there.


The Scopes implements scopes, and creates database tables for storing scope-specific data.