Конфигурация в глобальном. php или локальном. php не работает, но работает из module.config. php в ламинатном api - PullRequest
0 голосов
/ 08 мая 2020

Конфигурация в global.php или local.php не работает, но работает с module.config.php в API-интерфейсе ламината.

Таким образом, когда режим разработчика включен, он работает с local.php, но как только я развертываю, он не т. Но когда я добавляю детали базы данных в module.config.php, это работает.

public function __invoke($services)
{
    $db    = 'Db\StatusLib';
    $table = 'status';
    if ($services->has('config')) {
        $config = $services->get('config');
        switch (isset($config['statuslib'])) {
            case true:
                $config = $config['statuslib'];
                $db     = isset($config['db']) ? $config['db'] : $db;
                $table  = isset($config['table']) ? $config['table'] : $table;
                break;
            case false:
            default:
                break;
        }
    }

    if (! $services->has($db)) {
        throw new DomainException(sprintf(
            'Unable to create %s due to missing "%s" service',
            TableGateway::class,
            $db
        ));
    }

    return new TableGateway($table, $services->get($db));
}

https://github.com/laminas-api-tools/statuslib-example/blob/master/src/TableGatewayFactory.php#L26

https://github.com/laminas-api-tools/statuslib-example/blob/master/config/module.config.php#L12

return [
    'statuslib' => [
        // 'array_mapper_path' => 'path/to/PHP/file/returning/array.php',
    ],
    'service_manager' => [
        'aliases' => [
            Mapper::class => ArrayMapper::class,

            // Legacy Zend Framework aliases
        ],
        'factories' => [
            ArrayMapper::class        => ArrayMapperFactory::class,
            TableGatewayMapper::class => TableGatewayMapperFactory::class,
            TableGateway::class       => TableGatewayFactory::class,
        ],
    ],
];

Как только я перенесу эти конфиги в local.php или global.php, то выдает следующую ошибку:

Не удалось создать службу с именем «StatusLib \ TableGateway». Причина: невозможно создать StatusLib \ TableGateway из-за отсутствия службы "Db \ StatusLib"

Что мне не хватает?

ОБНОВЛЕНИЕ

И кеш отключен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...