Создание CMS Модель данных. Поиск

В предыдущей статье на примере создания объектной модели простого сайта производились одиночные загрузки сущностей из базы данных по их идентификаторам конструкцией Object::Create($id), при этом мы знали, у какой сущности (чаще всего класса), какой идентификатор, так как сами создавали эти сущности и в крайнем случаи могли просто заглянуть в базу данных. На практике загружать сущности по идентификатору проблематично, если нас интересуют сущности, о существовании которых можно только догадываться, то есть, не имея информации об их идентификаторах. Более того существует необходимость загружать несколько сущностей разом, отвечающих некоторым условиям. продолжение…

Создание CMS Модель данных. Конструирование

Продолжаем тему объектной модели данных. В этой части речь пойдет о модуле Data, являющимся, по сути, ORM системой. Для наглядности работы модуля Data c его помощью будет создано содержимое простого сайта.

Модуль Data состоит из классов Data, Object, Multy, Query и набора классов Cond*. Сам модуль – это статический класс Data, остальные классы используются для представления структур данных, с которыми он работает. Для представления сущностей в программном коде используется класс Object. Не важно, какого типа сущность – класс данных, объект данных или связь между ними – для всех Object. Класс Multy используется для ассоциации с набором сущностей, в частности, для представления множественных свойств. Классы Query и Cond* необходимы для осуществления поиска по объектной модели (в базе данных) с учетом гибких условий.
продолжение…

Создание CMS Выбор языка программирования

При выборе языка программирования я исходил из следующих соображений: доступность, известность, удобство, безопасность, скорость разработки и личные предпочтения. Выбрал PHP. Конечно, хотелось бы, чтоб PHP был чист от шелухи предыдущих версий, более изящен синтаксически, с полной поддержкой юникода и объектно-ориентрованного программирования. PHP не запрещает творить небезопасные вещи, поэтому многое в плане безопасности зависит от архитектуры создаваемой системы. продолжение…