Документация для разработчиков
Темная тема

Container

Методы


Контейнер сервисов является источником инстансов сервисов в новом API CRM.

При этом он и сам является сервисом.

Экземпляр этого сервиса (как и большинства других) содержится в DI\ServiceLocator.

При желании можно переопределить контейнер для модификации бизнес-логики, без внесения изменений в ядро продукта.

Метод Описание С версии
public static function getInstance(): Container
Метод возвращает инстанс контейнера.
public static function getIdentifierByClassName
(string $className, array $parameters = null): 
string
Метод возвращает строковый идентификатор для ServiceLocator по названию класса и дополнительным строковым параметрам.
public function getFactory(int $entityTypeId): 
?Factory
Метод возвращает инстанс фабрики для типа $entityTypeId, если она есть.
Не для всех типов сущностей есть фабрики. Также не будет фабрики, если передать entityTypeId несуществующего смарт-процесса.
public function getDynamicFactoryByType(Type $type): 
Dynamic
Метод возвращает инстанс фабрики смарт-процесса для orm-объекта.
public function getUserPermissions
(?int $userId = null): UserPermissions
Метод возвращает инстанс сервиса прав доступа для пользователя с id $userId.
Если $userId не указан, то права доступа будут получены из глобального контекста.
public function getType(int $id): ?Type
Метод вернет orm-объект смарт-процесса по его $id.
Обратите внимание, здесь колонка именно ID, а не ENTITY_TYPE_ID
.
public function getType(int $id): ?Type
Метод вернет orm-объект смарт-процесса по его $id.
Обратите внимание, здесь колонка именно ID, а не ENTITY_TYPE_ID
.
public function getTypeByEntityTypeId
(int $entityTypeId): ?Type
Метод вернет orm-объект смарт-процесса по его $entityTypeId.
Обратите внимание, здесь колонка именно ENTITY_TYPE_ID
.
public function getLocalization(): Localization
Метод вернет инстанс сервиса локализации.
public function getRouter(): Router
Метод вернет инстанс сервиса роутинга.
public function getContext(): Context
Метод вернет инстанс глобального контекста.
public function getOrmObjectConverter(): 
Converter\OrmObject
Метод вернет инстанс конвертера орм-объектов.
public function getItemConverter(): 
Converter\Item
Метод вернет инстанс конвертера элементов.
public function getStageConverter(): 
Converter\Stage
Метод вернет инстанс конвертера стадий.
public function getTypeConverter(): 
Converter\Type
Метод вернет инстанс конвертера смарт-процессов.
public function getUserBroker(): 
Broker\User
Метод вернет инстанс брокера пользователей.
public function getCompanyBroker(): 
Broker\Company
Метод вернет инстанс брокера компаний.
public function getContactBroker(): 
Broker\Contact
Метод вернет инстанс брокера контактов.
public function getDirector(): Director
Метод вернет инстанс сервиса запуска сценариев.
public function getDynamicTypeDataClass(): string
Метод вернет таблет смарт-процессов.
public function getEventHistory(): EventHistory
Метод вернет инстанс сервиса истории.
public function getTypesMap(): TypesMap
Метод вернет инстанс карты типов CRM.
public function getDynamicTypesMap(): 
DynamicTypesMap
Метод вернет инстанс карты смарт-процессов.
public function getRelationManager(): 
RelationManager
Метод вернет инстанс менеджера связей.
public function getTypePresetBroker(): 
Broker\TypePreset
Метод вернет брокер пресетов смарт-процессов.
public function getParentFieldManager(): 
ParentFieldManager
Метод вернет менеджер полей связей.
public function getPullManager(): PullManager
Метод вернет менеджер пушей.
public function getFilterFactory(): 
Filter\Factory
Метод вернет фабрику классов при работе с фильтром.
public function getAccounting(): Accounting
Метод вернет сервис расчетов сумм.
public function getFileUploader(): FileUploader
Метод вернет сервис загрузки файлов.

Пример

use Bitrix\Crm\Service;

$container = Service\Container::getInstance ();
$router = $container->getRouter();
// идентично
// $router = DI\ServiceLocator::getInstance()->get('crm.service.router');
$entityTypeId = \CCrmOwnerType::Deal;
$factory = $container->getFactory($entityTypeId );
if (!$factory)
{
	echo 'factory not found' ;
}

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх