我们使用DependencyInjection和标签加载类并将它们添加到链中。我喜欢从目录中自动加载来扩展功能。
目录结构: X\ Y \ MyBundle \ 例\ HelloWorldExample.php
我想将所有类添加到所有包中的Example目录中的链中。 Command或Doctrine2组件之类的东西与Command和Entity目录一样。
我在谷歌上找不到任何东西(或者我使用了错误的关键词......)。有人可以帮忙吗?
谢谢!
编辑:
我已经在Symfony2应用程序中使用了Dependency Injection组件。此时我使用标记服务(http://symfony.com/doc/current/components/dependency_injection/tags.html)加载类,但是如果它们位于特定目录中,我希望通过自动加载此类来扩展此功能(在上面的结构中它将是示例)。
我不想遍历目录/文件。
答案 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();
。