【问题标题】:An approach of shared libraries of plugins for Zend FrameworkZend框架插件共享库的一种方法
【发布时间】:2013-02-09 22:29:38
【问题描述】:

搜索我注意到通常在基于 Zend 框架的应用程序中,插件位于库文件夹中。但我正在尝试以不同的应用程序使用相同的插件库的方式工作。

我的直觉告诉我,如果其他应用程序可以使用这些插件,这些插件应该在应用程序外部。我想要做的是我的 ZF 应用程序的插件库。我正在寻找的结构是这样的:

www/
    zf-app-1/
    zf-app-2/

www-library/
    zf-my-plugins/
        database/
            EnttityManager.php
            DoctrineEntityManager.php

因此,zf-app-1 和 zf-app-2 使用相同的外部插件。我可能是错的,但这种方法对我来说比 zf-app-1 更合乎逻辑,并且 zf-app-2 在你的库中拥有每个相同插件文件夹的副本。你想对我的想法发表意见吗?

但我的问题是关于如何配置应用程序 zf-app-1 和 zf-app-2 以使用这个共享库。我会通过每个的 application.ini 来完成。

谢谢!

【问题讨论】:

    标签: php zend-framework architecture shared-libraries


    【解决方案1】:

    如果您想要在项目文件夹之外的共享库,如下所示:

    stuff/projects/zfproject1
    stuff/projects/zf2project2
    stuff/projects/zf2project3
    ......
    stuff/shared/library

    让我们假设一个名为 MyLib

    的共享库

    stuff/shared/library/MyLib

    你需要

    1. 将库文件夹添加到包含路径
    2. 将库命名空间添加到自动加载器

    您的应用程序.ini:

    autoloaderNamespaces[] = "MyLib_"
    includePaths.library = APPLICATION_PATH "/../../../library"
    

    【讨论】:

    • 这添加到包含路径。但是如何在includePaths.library 多个库中进行配置呢? includePaths.library 不适合图书馆应用?我需要这个,但需要另一个,外部的和其他应用程序通用的。 zf-app-1 文件夹有它自己的库文件夹,但也必须使用外部的。例如,我想 resources.entitymanager(例如 Doctrine 2 的插件)是外部的,并且对许多应用程序都是通用的。
    • 您应该可以使用includePaths.library1 = "path/to/library1",然后使用includePaths.library2 = "path/to/library2"。甚至完全避免使用密钥:includePaths[] = "path/to/library1"includePaths[] = "path/to/library2"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多