У меня есть класс настроек:
<?php
declare(strict_types=1);
namespace App;
class Settings
{
private $settings_dir;
private $settings_file_name;
//..
public function __construct(string $dir, string $file_name)
{
$this->settings_dir = $dir;
$this->settings_file_name = $file_name;
//...
}
//...
}
И конфиг для PHP-DI:
<?php
return [
//...
\App\Settings::class => DI\autowire()
->constructorParameter('dir', __DIR__),
\App\Settings::class => DI\autowire()
->constructorParameter('file_name', 'app.php'),
//...
];
Когда я запускаю свое приложение, оно говорит:
DI \ Definition \ Exception \ InvalidDefinition: запись «App \ Kernel» не может быть разрешена: запись «App \ Settings» не может быть разрешена: параметр $ dir of __construct () не имеет значения, определенного или предположительного
Когда я устанавливаю все значения одним методом, он работает нормально:
<?php
return [
//...
\App\Settings::class => DI\autowire()
->constructor(__DIR__, 'app.php')
];
Что не так?Я не делал никаких дополнительных настроек DI.
PHP-DI v6.0.2, PHP 7.2.5