Итак, я пытаюсь настроить 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.
?>
IConnection::class
возвращает полное имя класса: irepositories\IConnection
, Итак, вы регистрируете соединение под этим именем в PHP-DI.
Если ты хочешь получить это, Connection
не будет ничего соответствовать Вам нужно сделать:
$connection = $container->get('irepositories\IConnection');
// or
$connection = $container->get(IConnection::class);
Других решений пока нет …