внедрение зависимостей — PHP-DI Не найдено ни одной записи или класса для «имени интерфейса»

Итак, я пытаюсь настроить php-di в первый раз, но у меня возникли проблемы со сборщиком. Я продолжаю получать ошибку:

Uncaught exception 'DI\NotFoundException' with message 'No entry or class found for 'IConnection'' in /path/PHPDiContainer.php'

Где я иду не так в настройках моего контейнера?

<?php
require_once 'vendor/autoload.php';

use repositories\Connection;
use irepositories\IConnection;
use DI\ContainerBuilder;

$container = DI\ContainerBuilder::buildDevContainer();
$builder = new DI\containerBuilder();
$builder->addDefinitions([
IConnection::class => DI\object(Connection::class)
]);
$container = $builder->build();
$connection = $container->get('Connection');
... Code to show it works.
?>

3

Решение

IConnection::class возвращает полное имя класса: irepositories\IConnection, Итак, вы регистрируете соединение под этим именем в PHP-DI.

Если ты хочешь получить это, Connection не будет ничего соответствовать Вам нужно сделать:

$connection = $container->get('irepositories\IConnection');
// or
$connection = $container->get(IConnection::class);
3

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

Других решений пока нет …

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