2016-10-20 9 views
1

私は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); 
関連する問題