Jump to main content Jump to doc navigation

extension_packages

  • Имя: Пакеты расширений
  • Тип: String (JSON-кодированный массив пар ключ-значение)
  • По умолчанию: Да

Используйте этот параметр для автозагрузки пакетов, расширяющих базовые классы, например, если вы расширяете modUser. Формат должен быть массивом JSON пар «key/value», где ключ - это пространство имен (то есть имя пакета), а значение - путь к его модели.

Этот эффект здесь аналогичен другим структурам, например, CodeIgniter, который позволяет переопределять базовые классы с помощью специального префикса имени класса "MY_".

Используйте это только тогда, когда вы расширяете основные классы, которые используются во время initialize()

Sample value

[
    {
        "extendeduser": {
            "path": "[[++core_path]]components/extendeduser/model/"
        }
    },
    { "articles": { "path": "[[++core_path]]components/articles/model/" } }
]

Вы можете использовать

[[++core_path]]

плейсхолдеры.

Другой пример

Если ваше расширение использует другой префикс таблицы, вы должны указать это в своем JSON, используя tablePrefix ключ, например:

[
    {
        "extendeduser": {
            "path": "[[++core_path]]components/extendeduser/model/",
            "tablePrefix": "ext_"
        }
    },
    { "articles": { "path": "[[++core_path]]components/articles/model/" } }
]

Связанные функции

В какой-то момент в истории последних версий addExtensionPackage и removeExtensionPackage удобные функции были добавлены для облегчения добавления и удаления данных в настройках extension_packages.

addExtensionPackage

boolean addExtensionPackage ([string $pkg = ''], [string $modelpath = ''], [array $options = array()])

Аргумент $pkg действительно указывает подпапку в названной директории модели. В большинстве пакетов это имя совпадает с пространством имен пакета, но другие пакеты могут указывать несколько подпапок в своей модели. Обратите внимание, что массив $options может указывать ключ "tablePrefix", например:

$modx->addExtensionPackage('mypkg', '/path/to/core/components/mypkg/model/', array('tablePrefix'=>'mypre_'));

removeExtensionPackage

Когда пришло время для очистки, удалите ваш узел из extension_packages массива, используя эту вспомогательную функцию:

boolean removeExtensionPackage (string $pkg = '')

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
  • Chris Fickling
  • CrewMark
  • 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