modX.getService
Последнее обновление not available | История страницы | Улучшить эту страницу | Сообщить о проблеме
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
Budget
$306 per month—let's make that $500!
Learn moremodX::getService¶
Примечание: getService перемещен на уровень xPDO
Загружает и возвращает экземпляр именованного класса обслуживания. Возвращает ссылку на экземпляр класса обслуживания или значение null, если он не может быть загружен. Вы можете подумать, что это простая инъекция зависимости.
Обратите внимание, что экземпляр класса создается только один раз: последующие вызовы возвращают ссылку на сохраненный экземпляр.
Синтаксис¶
API Doc: modX::getService()
object getService (string $name, [string $class = ''], [string $path = ''], [array $params = array ()])
-
$name
(string) ключ, который однозначно идентифицирует службу. -
$class
(string) полное имя класса, совместимого с оператором "new", ИЛИ вы можете использовать "точечную нотацию" для указания вложенных папок относительно$path
. -
$path
(string) полный путь к каталогу, содержащему рассматриваемый класс. -
$params
(array) передается в качестве второго аргумента в конструктор. Первый аргумент всегда является ссылкой на xPDO/MODX.
Примеры¶
Получение сервиса modSmarty
.
$modx->getService('smarty','smarty.modSmarty');
Получить пользовательский, определенный пользователем сервис под названием 'modTwitter' из пользовательского пути ('/path/to/modtwitter.class.php'), и передать некоторые пользовательские параметры.
$modx->getService('twitter','modTwitter','/path/to/',array(
'api_key' => 3212423,
));
$modx->twitter->tweet('Успех!');
Еще один пример использования getService внутри пользовательского Extra:
// Используйте путь, чтобы указать непосредственно на соответствующий вложенный каталог:
if(!$Product = $this->modx->getService('mypkg.product','Product',MODX_CORE_PATH.'components/mypkg/model/mypkg/')) {
return 'НЕ НАЙДЕН';
}
// Или используйте точечную нотацию в имени класса и укажите $path на каталог модели:
if(!$Product = $this->modx->getService('mypkg.product','mypkg.Product',MODX_CORE_PATH.'components/mypkg/model/')) {
return 'НЕ НАЙДЕН';
}
У getService
могут возникнуть проблемы с пространствами имен PHP.
Смотрите также¶
- modX
- MODX Services
- xPDO.loadClass – similar to getService, but it just loads the class and doesn't instantiate it.
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
Budget
$306 per month—let's make that $500!
Learn more