我正在实现接口自动装配。
config/services.yaml 示例工作得很好,但是当使用 config/services.php 而不是 config/services.yaml 时,config/services.php 中的代码不会被触发。
所以这有效:
# config/services.yaml
services:
# ...
App\Util\Rot13Transformer: ~
# the ``App\Util\Rot13Transformer`` service will be injected when
# an ``App\Util\TransformerInterface`` type-hint is detected
App\Util\TransformerInterface: '@App\Util\Rot13Transformer'
但这并不:
// config/services.php
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use App\Util\Rot13Transformer;
use App\Util\TransformerInterface;
return function(ContainerConfigurator $configurator) {
$services = $configurator->services();
$services->set(Rot13Transformer::class);
// the ``App\Util\Rot13Transformer`` service will be injected when
// an ``App\Util\TransformerInterface`` type-hint is detected
$services->alias(TransformerInterface::class, Rot13Transformer::class);
};
这是一个错误还是我错过了什么?
我还在 config/services.php 中添加了无效的 php 代码,并且没有抛出任何错误。所以这让我得出结论,config/services.php 根本没有运行。
慕森王