Fi1osof
16 дек. 2013 г., 15:14

Краткое описание map-файла в примерах

Всем, для кого еще не совсем понятно что к чему в мап-файле, советую к ознакомлению краткий экскурс.
gist.github.com/Fi1osof/92d94e2ba8d6095c795b#file-gistfile1-php-L3 Название пакета (регистр имеет значение). Это особенно критично, если используется нестандартный префикс для таблиц. То есть префикс указывается в настройках пакета, и если имя пакета будет не то, тогда не будут получены настройки пакета и будет использоваться префикс по умолчанию. Приведет к SQL-ошибке.
gist.github.com/Fi1osof/92d94e2ba8d6095c795b#file-gistfile1-php-L5 Имя таблицы в БД (без учета префикса. Полное название таблицы формируется динамически).
gist.github.com/Fi1osof/92d94e2ba8d6095c795b#file-gistfile1-php-L6 Это на самом деле не имеет значения. Истинное наследование пляшет от расширения класса, то есть в основном файле класса, к примеру class Order extends xPDOSimpleObject{}.
gist.github.com/Fi1osof/92d94e2ba8d6095c795b#file-gistfile1-php-L20 Данные колонок (используется в том числе и в создании таблицы в БД на основе мета-данных класса). Создание таблиц на основе мап-данных класса выполняется через метод $modx->getManager()->createObjectContainer($className);
gist.github.com/Fi1osof/92d94e2ba8d6095c795b#file-gistfile1-php-L104 Индексы таблицы. Так же участвуют в создании таблицы.
gist.github.com/Fi1osof/92d94e2ba8d6095c795b#file-gistfile1-php-L203 НЕ жесткие связи с другими классами. То есть позволит, к примеру, получить $object->getOne('Status'). Но при удалении объекта связанные объекты не будут удалены.
gist.github.com/Fi1osof/92d94e2ba8d6095c795b#file-gistfile1-php-L229 Жесткие связи. То есть при удалении объекта все связанные объекты OrderProduct так же будут автоматически удалены из БД.

Добавить комментарий