PHP5.3中的命名空间和外部库 - Doctrine集成

时间:2012-12-02 20:28:50

标签: php namespaces doctrine integration

我想将Doctrine集成到一个新构建的PHP5框架中。我正在使用命名空间。图书馆以地图形式组织:

  • app(控制器,块,操作......)

  • 分机(外部图书馆)

  • sys(内核和路由对象)。

现在我想整合地图分机中的Doctrine。

在通话类中我有:

namespace app\example;
use ext\Doctrine\DBAL\DriverManager;
$conn = DriverManager::getConnection($connectionParams, $config);

为了完成这项工作,我需要将Doctrine中的每个命名空间引用更改为例如:

namespace ext\Doctrine\DBAL;
use ext\Doctrine\Common\EventManager;

在我看来,这是一个非常不优雅的解决方案。

问题: 有没有办法不改变Doctrine命名空间? 是否有更好的策略来处理外部图书馆?

1 个答案:

答案 0 :(得分:0)

更好的策略是使用库提供的命名空间。改变这种情况非常不寻常。

我猜你的主要问题实际上是因为自动加载。请记住,命名空间和目录不必相同。

只需让自动加载器更加智能,即可在ext中查找外部库。您可以保留一个可以在那里找到的小型命名空间注册表。

更好的是,开始使用composer