0

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

  • 应用程序(控制器,块,动作,...)

  • ext(外部库)

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

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

在调用类中,我有:

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

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

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

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

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

4

1 回答 1

0

更好的策略是使用库提供的命名空间。改变这一点将是非常不寻常的。

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

只需让你的自动加载器更聪明一点,以便在 ext.js 中寻找外部库。您可以保留一个小的名称空间注册表,您可以在那里找到。

更好的是,开始使用composer

于 2012-12-02T23:14:36.447 回答