包括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。
有谁知道一个很好的解决方案,或者是否有人使用略有不同的项目结构来避免这种情况?
答
你试图把单独的库旁边的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
嗯,我不能对Git的问题发表意见,因为我使用SVN,但就直接放置我把其他的lib中'库/ PackageName“并从那里加载它们。 – prodigitalson 2010-09-08 23:53:37
问题在于库中的类已经在PackageName中命名空间了,所以我唯一的方法就是创建一个我的库的拆分库,作为库/ PackageName/*和子模块包含它,这似乎很麻烦。 – 2010-09-09 08:13:47
由于命名空间冲突,你不能说明你的意思 - 你可以注册你自己的自动加载器命名空间,并将它指向任何你想要的地方,所以像'PackageName/PackageName'这样的东西不应该是一个问题。 – prodigitalson 2010-09-09 17:24:18