Getting failure to load manually loaded class using DI

This line returns true:


However I’m getting

NOTICE: PHP message: PHP Fatal error: Uncaught Yiisoft\Di\NotFoundException: No definition or class found or resolvable for “iDb” while building “iDb”. in /var/www/vendor/yiisoft/di/src/Container.php:533

for simple command class

use iDb;
class Command
  public function __construct(iDb $db) {}

loaded using DI like

require_once("idb.php");  // sadly not using autoload or namespaces for this class
$config    = ContainerConfig::create();
$container = new Container($config);
$injector  = new Injector($container);
$c       = $injector->make($fullClassname);

Hm maybe some manual config for the container would help…

Funny, doing

    $config    = ContainerConfig::create()
            'iDb' => 'iDb'

gives me

NOTICE: PHP message: PHP Fatal error: Uncaught Yiisoft\Definitions\Exception\NotInstantiableClassException: Can not instantiate iDb. in /var/www/vendor/yiisoft/definitions/src/Helpers/DefinitionExtractor.php:50

A reason why would be helpful, hehe.

Oh, when reading the code I see a commit from 2012 where I made the iDb constructor private… Changing it to public fixes it.