Jump to main content Jump to doc navigation

Чтобы использовать недавно созданную XML схему, вам необходимо создать PHP скрипт, который будет анализировать XML схему внутри xPDO PHP классов и карт.

Загрузка xPDOManager и xPDOGenerator

Создайте файл PHP, где у вас будет доступ к xPDO инстансу. Затем давайте установим вывод логов в браузер через Log Target и немного расширим его, чтобы получить более подробную информацию.

$xpdo->setLogLevel(xPDO::LOG_LEVEL_INFO);
$xpdo->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

Теперь нам надо будет загрузить классы xPDOManager и xPDOGenerator, чтобы помочь нам с развертыванием модели.

$manager = $xpdo->getManager();
$generator = $manager->getGenerator();

Настройка шаблонов класса и карты

Установка шаблонов совершенно необязательна. xPDO предоставляет вам несколько базовых шаблонов, которые будут работать нормально.

xPDO предоставляет вам шаблоны классов и карт по умолчанию. Однако для этого примера мы хотим создать файлы классов и карт с PHPDoc форматированием вверху, поэтому нам нужно переопределить шаблоны классов и карт по умолчанию.

Для этого мы просто переопределим переменные в объекте $generator:

$generator->classTemplate= <<<EOD
<?php
/**
 * [+phpdoc-package+]
 */
class [+class+] extends [+extends+] {}
?>
EOD;
$generator->platformTemplate= <<<EOD
<?php
/**
 * [+phpdoc-package+]
 */
require_once (strtr(realpath(dirname(dirname(__FILE__))), '\\\\', '/') . '/[+class-lowercase+].class.php');
class [+class+]_[+platform+] extends [+class+] {}
?>
EOD;
$generator->mapHeader= <<<EOD
<?php
/**
 * [+phpdoc-package+]
 */
EOD;

Обратите внимание на тег phpdoc-package, который мы создали. Это взято из атрибута нашего тега "модель", который мы определили ранее в схеме. Эти шаблоны предоставят нам основу для наших файлов классов и карт с PHPDoc комментариями.

Генерация файлов

Наконец, мы хотим разобрать это в файл:

$schema = '/path/to/storefinder.mysql.schema.xml';
$target = '/path/to/storefinder/model/';
$generator->parseSchema($schema,$target);

Этот код исполняет метод анализа схемы, а затем выводит общее время, затраченное скриптом на выполнение. Запустите его и вуаля! - наш model/ каталог теперь содержит подкаталог storefinder/, который заполнен всеми нашими файлами карт и классов.

Заключение

С помощью xPDOGenerator преобразовывать файлы ваших XML схем в используемые PHP классы и карты очень просто. Теперь, когда у нас есть наш PHP код, мы перейдем к этапам как его использовать.

В качестве примера построения классов модели из существующей базы данных взгляните на следующую страницу: Обратный инжиниринг xPDO классов из существующей таблицы базы данных

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • Fabian Christen
  • Dannevang Digital
  • Sepia River Studios
  • CrewMark
  • Chris Fickling
  • deJaya
  • Lefthandmedia
  • Murray Wood
  • eydolan
  • Following Sea
  • Anton Tarasov
  • Stéphane Jäggi
  • Raffy
  • Snow Creative
  • A. Moreno
  • Nick Clark
  • JT Skaggs
  • Helen
  • YJ
  • krisznet
  • Richard
  • Yanni

Budget

$301 per month—let's make that $500!

Learn more