LiveStreetи ORM

Отбих се от тази статия, но тя е само уводна част от този инструментариум. Няма нито дума за кеша, странирането, дървовидния масив. Ще се опитам да дам възможно най-много информация на читателя, без да го претоварвам. Ще започваме ли?

Ще разгледам всичко, като използвам приставката за форума като пример. Първо трябва да създадем скелета на плъгина:

Изходните файлове могат да се видят в github, няма да се спирам на описанието на плъгина.

Сега нека създадем модул, наречен форум.

Трябва да опишем модула като ModuleORM и в метода Init трябва да наследим родителя на метода Init от обикновения модул:

Преди да опишем обекти, трябва да помислим за всички връзки между тях, така че да е по-лесно да се манипулира чрез гетъри:

И опишете създадените обекти:

Category.entity.class.php

Forum.entity.class.php

Topic.entity.class.php

Post.entity.class.php

Read.entity.class.php

Сега всичко това може да се манипулира без дефиниране на класове в модула на плъгина, например:

Филтърът #cache може също да приема следните параметри:

Има няколко вида връзки:

След като опишем обектите, следните методи ще бъдат достъпни за нас:

Таблиците в базата данни трябва да бъдат именувани по следния начин: prefix_ _ (или посочете имената им в конфигурацията) и ако името на обекта съвпада с името на модула, тогава е достатъчно да именувате таблицата така: prefix_ . Полетата също имат свои собствени стандарти: _ или просто .

Това е всичко, господа, благодаря ви за вниманието. Напомням ви, че най-новите източници на форума могат да бъдат намерени в git.

UPD: Направих корекции в статията, благодаря на ort за коментарите му.

Hardcore conf в C++. Каним само професионалисти.