Сценарий установки расширения eZPublish - PullRequest
0 голосов
/ 26 марта 2012

Я пишу расширение для eZPublish, которое имеет собственный eZPersistantObject, поэтому ему нужна собственная таблица базы данных.

Есть ли способ предоставить что-то вроде setup.php или чего-то такого, что запускается при активации расширения и создает таблицу?

Спасибо за ваши ответы.

Ответы [ 2 ]

2 голосов
/ 27 марта 2012

eZ Publish не предоставляет такой возможности, когда речь идет об установке расширения (и это неправда, если вы говорите, что для этого нужно что-то изменить в базе данных, требуется только автозагрузка).

Что касается вашей проблемы, единственное, что вы можете сделать, это добавить файл .dba в ваше расширение, чтобы он проверялся при использовании проверки / обновления системы в вашем интерфейсе администратора.Файл может быть сгенерирован с помощью скрипта ezsqldumpschema.php в bin / php (вы заметите, что некоторые вещи отсутствуют, такие как кодировка, ...)

Если ваше расширение предоставляет интерфейс администратора,не стесняйтесь добавлять некую функцию pre_check в начале скрипта каждого представления.Это должно проверить существование таблицы по файлу dba и создать его при необходимости (или предложить пользователю).

0 голосов
/ 26 марта 2012

Похоже, что при установке расширений в вашей CMS вы также должны выполнить дальнейшие шаги вручную, например, внести изменения в базу данных. См. http://doc.ez.no/eZ-Publish/Technical-manual/4.x/Installation/Extensions Так что я не думаю, что eZPublish поддерживает такую ​​настройку.

Конечно, вы можете делать это вручную, например, CREATE TABLE IF NOT EXISTS для каждого запроса. Грязное решение: поместите ваш setup.php где-нибудь в папке расширений, сделайте его доступным для записи и после первого выполнения просто удалите его. Просто добавьте unlink(__FILE__); в конце setup.php.

Если вам нужно более чистое решение, у вас может быть каталог со сценариями миграции базы данных и таблица, которая отслеживает, какие из этих сценариев были выполнены. После каждого запроса вы затем проверяете наличие новых сценариев миграции и выполняете их при необходимости.

...