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

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