Дефенирование конфигурации как сервиса? конфигурации типа такой symfony.com/doc/current/components/config/definiti... когда ключ-значение - не хватае и я сделал class DownloadMap private static $filter = "key" => "category" "field" => "property__category__multi_string ] private static $order =
ну и в контроллере вызов DownloadMap::getOrder( но вот что если надо переопределить в следующем проекте? вернее не "что если" а на реально над пихать в сервис-контейнер?parameters download_map_class: namespace\DownloadMa services download_map class: %download_map_class криво или нет получается $this->container->get("download_map")->getOrder( как можно такое сделать?
Для более гибкого и настраиваемого подхода вы можете использовать сервис контейнер и инъекцию зависимостей. Вместо использования статического класса DownloadMap, вы можете создать сервис DownloadMapService и зарегистрировать его в сервис-контейнере.
Пример:
Создайте класс DownloadMapService:namespace App\Service class DownloadMapServic
private $filter private $order public function __construct(array $filter, array $order
$this->filter = $filter $this->order = $order
public function getFilter(
return $this->filter
public function getOrder(
return $this->order
}Зарегистрируйте сервис в файле конфигурации сервис-контейнера:services App\Service\DownloadMapService arguments $filter: ['key' => 'category', 'field' => 'property__category__multi_string' $order: - ['key' => 'name', 'field' => 'name' - ['key' => 'format', 'field' => 'control__mimeType__string' - ['key' => 'size', 'field' => 'control__fileSize__string']Теперь, в вашем контроллере или другом месте, где нужно использовать DownloadMapService, вы можете инжектировать его через контейнер:$downloadMapService = $this->container->get('App\Service\DownloadMapService') $downloadMapService->getOrder();
Этот подход позволит вам легко переопределить параметры и настройки DownloadMapService для разных проектов, достаточно изменить конфигурацию в файле сервис-контейнера.
Для более гибкого и настраиваемого подхода вы можете использовать сервис контейнер и инъекцию зависимостей. Вместо использования статического класса DownloadMap, вы можете создать сервис DownloadMapService и зарегистрировать его в сервис-контейнере.
Пример:
Создайте класс DownloadMapService:namespace App\Serviceclass DownloadMapServic
private $filter
private $order
public function __construct(array $filter, array $order
$this->filter = $filter
$this->order = $order
public function getFilter(
return $this->filter
public function getOrder(
return $this->order
}Зарегистрируйте сервис в файле конфигурации сервис-контейнера:services
App\Service\DownloadMapService
arguments
$filter: ['key' => 'category', 'field' => 'property__category__multi_string'
$order:
- ['key' => 'name', 'field' => 'name'
- ['key' => 'format', 'field' => 'control__mimeType__string'
- ['key' => 'size', 'field' => 'control__fileSize__string']Теперь, в вашем контроллере или другом месте, где нужно использовать DownloadMapService, вы можете инжектировать его через контейнер:$downloadMapService = $this->container->get('App\Service\DownloadMapService')
$downloadMapService->getOrder();
Этот подход позволит вам легко переопределить параметры и настройки DownloadMapService для разных проектов, достаточно изменить конфигурацию в файле сервис-контейнера.