DependencyInjection:从目录加载类

时间:2014-06-11 07:16:56

标签: php symfony dependency-injection

我们使用DependencyInjection和标签加载类并将它们添加到链中。我喜欢从目录中自动加载来扩展功能。

目录结构: X\   Y \     MyBundle \       例\         HelloWorldExample.php

我想将所有类添加到所有包中的Example目录中的链中。 Command或Doctrine2组件之类的东西与Command和Entity目录一样。

我在谷歌上找不到任何东西(或者我使用了错误的关键词......)。有人可以帮忙吗?

谢谢!

编辑:

我已经在Symfony2应用程序中使用了Dependency Injection组件。此时我使用标记服务(http://symfony.com/doc/current/components/dependency_injection/tags.html)加载类,但是如果它们位于特定目录中,我希望通过自动加载此类来扩展此功能(在上面的结构中它将是示例)。

我不想遍历目录/文件。

1 个答案:

答案 0 :(得分:0)

Composer非常适合这种情况(以及加载外部依赖项) - 请参阅https://getcomposer.org/

首先,在根文件夹中创建一个composer.json文件:

{
  "autoload": {
    "psr-0": { "X": "src/" }
  }
}

运行composer update创建自动加载文件,然后运行PHP文件中的require 'vendor/autoload.php';

鉴于您有一个定义类src/X/Y/MyClass.php的文件\X\Y\MyClass,您应该在调用时自动加载定义,例如$x = new \X\Y\MyClass();