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.

Contents:

Overview

Several modules are gaining shape:

Module Dependencies

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

Modules

Schema

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.

Formulas

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.

Indexing

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.

Storages

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

Queries

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

Tables

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

Scopes

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