-
-
Notifications
You must be signed in to change notification settings - Fork 324
Entries are not fetched in array parameters of the constructor's factory #488
Copy link
Copy link
Closed
Milestone
Description
Hello there :) And thanks for this lib :)
I think I have found a bug, or at least a weirdness. Imagine I'd like to configure a KLogger service.
<?php
use Katzgrau\KLogger\Logger;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
return [
'logger.dir' => sys_get_temp_dir(),
'logger.level' => LogLevel::DEBUG,
'logger.prefix' => 'a_prefix_'],
LoggerInterface::class => DI\object(Logger::class)->constructor(
DI\get('logger.dir'),
DI\get('logger.level'),
['prefix' => DI\get('logger.prefix')]
),
];This configuration does not. The logger prefix is not correctly translated. I get the following error:
[Sun May 21 13:00:07 2017] PHP Catchable fatal error: Object of class DI\Definition\EntryReference could not be converted to string in /home/jjanvier/psr15_middleware/vendor/katzgrau/klogger/src/Logger.php on line 157
[Sun May 21 13:00:07 2017] PHP Stack trace:
[Sun May 21 13:00:07 2017] PHP 1. {main}() /home/jjanvier/psr15_middleware/examples/src/app.php:0
[Sun May 21 13:00:07 2017] PHP 2. DI\Container->get() /home/jjanvier/psr15_middleware/examples/src/app.php:20
[Sun May 21 13:00:07 2017] PHP 3. DI\Container->resolveDefinition() /home/jjanvier/psr15_middleware/vendor/php-di/php-di/src/DI/Container.php:124
[Sun May 21 13:00:07 2017] PHP 4. DI\Definition\Resolver\ResolverDispatcher->resolve() /home/jjanvier/psr15_middleware/vendor/php-di/php-di/src/DI/Container.php:287
[Sun May 21 13:00:07 2017] PHP 5. DI\Definition\Resolver\ObjectCreator->resolve() /home/jjanvier/psr15_middleware/vendor/php-di/php-di/src/DI/Definition/Resolver/ResolverDispatcher.php:58
[Sun May 21 13:00:07 2017] PHP 6. DI\Definition\Resolver\ObjectCreator->createInstance() /home/jjanvier/psr15_middleware/vendor/php-di/php-di/src/DI/Definition/Resolver/ObjectCreator.php:70
[Sun May 21 13:00:07 2017] PHP 7. ReflectionClass->newInstanceArgs() /home/jjanvier/psr15_middleware/vendor/php-di/php-di/src/DI/Definition/Resolver/ObjectCreator.php:138
[Sun May 21 13:00:07 2017] PHP 8. Katzgrau\KLogger\Logger->__construct() /home/jjanvier/psr15_middleware/vendor/php-di/php-di/src/DI/Definition/Resolver/ObjectCreator.php:138
[Sun May 21 13:00:07 2017] PHP 9. Katzgrau\KLogger\Logger->setLogFilePath() /home/jjanvier/psr15_middleware/vendor/katzgrau/klogger/src/Logger.php:126A workaround is to configure the service as the following:
<?php
use Katzgrau\KLogger\Logger;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
return [
'logger.dir' => sys_get_temp_dir(),
'logger.level' => LogLevel::DEBUG,
'logger.options' => ['prefix' => 'yamo_'],
LoggerInterface::class => DI\object(Logger::class)->constructor(
DI\get('logger.dir'),
DI\get('logger.level'),
DI\get('logger.options')
),
];Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels