Jump to main content Jump to doc navigation

modX::addExtensionPackage

Записывает запись о пакете в системную настройку extension_packages, создавая её заранее, если настройки ещё нет. Сохранённое значение — JSON-массив: каждая запись связывает имя пакета с его опциями, а путь хранится в ключе path.

Пакет загружается при следующей инициализации, а не в текущем запросе: сначала нужно обновить кэш настроек. Далее initialize() читает настройку, подставляет токены вроде [[++core_path]] и вызывает xPDO::addPackage().

Классы пакета становятся доступны loadClass(), newObject() и getTableName(). serviceName и serviceClass уходят в xPDO::getService(), который сам помечен устаревшим в пользу контейнера сервисов.

Ядро пометило хранение в настройке устаревшим в 2.3 — его заменяют записи modExtensionPackage. Код по-прежнему объявляет удаление, которое так и не случилось, поэтому настройка в этой версии продолжает работать.

Синтаксис

boolean addExtensionPackage (string $name, string $path, [array $options = array()])
  • $name (string) имя пакета, используется как ключ записи
  • $path (string) каталог с моделью пакета
  • $options (array) значения tablePrefix, serviceName и serviceClass, по умолчанию array()

Пример

$modx->addExtensionPackage('mypkg', MODX_CORE_PATH . 'components/mypkg/model/', array(
    'tablePrefix' => 'mypkg_',
));

Смотрите также

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
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • JT Skaggs
  • deJaya
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

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

Learn more