代码之家  ›  专栏  ›  技术社区  ›  Tim Fountain

在Zend框架应用程序中包含其他库

  •  1
  • Tim Fountain  · 技术社区  · 16 年前

    我有一个使用标准结构的ZF应用程序:

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

    我还有一个使用以下结构的单独库:

    library/
        <classes>
    tests/
       library/
    

    两者都使用git进行源代码管理。我想将库包含在应用程序中,但我正在努力寻找一种好的、可维护的方法来实现这一点。库的“library”文件夹的内容的结构适合于自动加载,因此理想情况下,我希望library/的内容存在于ZF应用程序的库目录中:

    library/
        Zend/
        <classes>
    

    我不能单独使用git子模块,因为我不能将repo的子文件夹包含为子模块,并且子模块必须存在于子文件夹中(因此我最终会使用library/something/<classes>)。

    我一直在玩 these subtree extensions 对git来说,这很酷,并且解决了第一个问题(通过允许我将我的库项目的库文件夹拆分成它自己的repo)。但是我仍然有一个问题,就是不能直接将这个repo的内容包含到我的库文件夹中。

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

    有人知道解决这个问题的好方法吗,或者有人使用稍微不同的项目结构来避免这个问题吗?

    1 回复  |  直到 16 年前
        1
  •  0
  •   Iznogood    16 年前

    您是否尝试将单独的库放在Zend in/library旁边并添加:

    autoloaderNamespaces[] = "YourLibName"
    

    到应用程序.ini? 这就是我要做的。

    如果尚未完成,请将其添加到引导:

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