Skip to content

adtechpotok/symfony-aware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status License

Aware

Пример использования

Сервис
<?php

use Adtechpotok\Aware\Interfaces\EntityManagerAwareInterface;
use Adtechpotok\Aware\Traits\EntityManagerAwareTrait;

class SomeClass implements EntityManagerAwareInterface
{
    use EntityManagerAwareTrait;
    
    public function someMethod()
    {
        dump($this->em); // $em - дефолтный EntityManager, аналог '@doctrine.orm.default_entity_manager'
    }
}
Объявление сервиса
services:
    some.service:
        class: SomeClass
        calls:
            - {method: setEntityManager, arguments: ['@doctrine.orm.default_entity_manager']}
Таблица соответствий
Aware Service
ConnectionAware @doctrine.dbal.default_connection
CacheAware @cache.app
ContainerAware @service_container
DoctrineAware @doctrine
EntityManagerAware @doctrine.orm.default_entity_manager
EventDispatcherAware @debug.event_dispatcher
FilesystemAware @filesystem
FileLocatorAware @file_locator
FileLinkFormatterAware @debug.file_link_formatter
HttpKernelAware @http_kernel
KernelAware @kernel
LoggerAware @monolog.logger
PropertyAccessorAware @property_accessor
ReaderAware @annotations.cached_reader
RequestStackAware @request_stack
StopwatchAware @debug.stopwatch
Объявление сервиса в Symfony >= 3.3
services:
    _defaults:
        autowire: true
        
    some.service:
        class: SomeClass

Важно! При объявлении сервисов, которые требуют использования тэгов - этот способ не подоходит, Symfony игнорирует тэги при autowire.