Получить конфигурацию модуля в ZF3

Я хотел бы получить конфигурацию моего модуля из контроллера в Zend Framework 3.
Я искал, и кажется, что стандартный способ сделать это в ZF2 заключается в использовании

$this->getServiceLocator()

чтобы получить доступ к конфигурации в module.config.php,
Тем не менее, это не будет работать в ZF3, так как нет getServiceLocator() метод.

Каков стандартный способ достижения этого?

2

Решение

Не знаю, нашли ли вы ответ, так как существуют разные решения, как писал Тасманиски. На всякий случай, позвольте мне поделиться тем, что очень помогло бы мне, когда я начал играть с ZF3:

MyControllerFactory.php

<?php
namespace My\Namespace;

use Interop\Container\ContainerInterface;
use Zend\ServiceManager\Factory\FactoryInterface;
use DependencyNamespace\...\ControllerDependencyClass; // this is not a real one of course!

class MyControllerFactory implements FactoryInterface
{
/**
* @param ContainerInterface $container
* @param string $requestedName
* @param null|array $options
* @return AuthAdapter
*/
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
// Get config.
$config = $container->get('configuration');

// Get what I'm interested in config.
$myStuff = $config['the-array-i-am-interested-in']

// Do something with it.
$controllerDepency = dummyFunction($myStuff);

/*...the rest of your code here... */

// Inject dependency.
return $controllerDepency;
}
}

MyController.php

<?php
namespace My\Namespace;

use Zend\Mvc\Controller\AbstractActionController;
use DependencyNamespace\...\DependencyClass;

class MyController extends AbstractActionController
{
private $controllerDepency;

public function __construct(DependencyClass $controllerDepency)
{
$this->controllerDepency = $controllerDepency;
}

/*...the rest of your class here... */
}
4

Другие решения

Вы должны ввести свои зависимости через сервис-менеджер.
В основном вам нужно создать 2 класса контроллер а также ControllerFactory это создаст контроллер со всеми зависимостями.

1

По вопросам рекламы [email protected]