包括Zend框架应用

问题描述:

我有使用标准结构的ZF应用其他的库:包括Zend框架应用

application/ 
    <etc> 
library/ 
    Zend/ 
public/ 
tests/ 

我也有一个独立的库使用以下结构:

library/ 
    <classes> 
tests/ 
    library/ 

两者都使用GIT中为源控制。我想将该库包含在应用程序中,但我正在努力寻找一种可行,可维护的方法来完成此操作。图书馆的“图书馆”文件夹中的内容结构,以便适用于自动加载,所以最好我想库的内容/在ZF应用程序的库目录存在:

library/ 
    Zend/ 
    <classes> 

我不能使用git子模块,因为我不能将子库作为子模块包含在子库中,子模块本身必须存在于子文件夹中(所以我最终会得到库/ something/<类>)。

我一直在玩these subtree extensions git,这很酷,并解决第一个问题(让我把我的库项目的库文件夹拆分成它自己的回购)。但我仍然有问题,不直接将此回购的内容包含到我的库文件夹中。

我试图避免添加一个全新的文件夹自动加载只为这个lib。

有谁知道一个很好的解决方案,或者是否有人使用略有不同的项目结构来避免这种情况?

+2

嗯,我不能对Git的问题发表意见,因为我使用SVN,但就直接放置我把其他的lib中'库/ PackageName“并从那里加载它们。 – prodigitalson 2010-09-08 23:53:37

+0

问题在于库中的类已经在PackageName中命名空间了,所以我唯一的方法就是创建一个我的库的拆分库,作为库/ PackageName/*和子模块包含它,这似乎很麻烦。 – 2010-09-09 08:13:47

+0

由于命名空间冲突,你不能说明你的意思 - 你可以注册你自己的自动加载器命名空间,并将它指向任何你想要的地方,所以像'PackageName/PackageName'这样的东西不应该是一个问题。 – prodigitalson 2010-09-09 17:24:18

你试图把单独的库旁边的Zend在/库和添加:

autoloaderNamespaces[] = "YourLibName" 

要的application.ini?那就是我会做的。

如果它没有这样做还添加此来引导:

protected function _initAppAutoload() 
{ 
    $moduleLoad = new Zend_Application_Module_Autoloader(array(
     'namespace' => '', 
     'basePath' => APPLICATION_PATH 
    )); 
} 
+0

谢谢,但它正在将文件放入/ library中,这是问题所在,因为我想要使用git子模块或其他一些方法来让我轻松地保持最新状态。 – 2010-09-09 08:12:24