extension_packages
Последнее обновление Nov 27th, 2019 | История страницы | Улучшить эту страницу | Сообщить о проблеме
extension_packages
Имя: Extension Packages Тип: String(a JSON encoded array of key value pairs) По умолчанию: Да
Используйте этот параметр для автозагрузки пакетов, расширяющих базовые классы, например, если вы расширяете 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 = '')