Zend framework2 如何为ZFT编写供应商程序/模块

Zend framework2 如何为ZFT编写供应商程序/模块,zend-framework2,composer-php,Zend Framework2,Composer Php,我想写一个Zend Framework 2供应商模块,托管在github上,可通过composer安装,并提供给全世界 现在,虽然我在编写模块方面没有问题,但我正在努力解决的是围绕这个问题的机制 我最初的直觉是这样做: 设置zend framework 2骨架应用程序 将我的模块添加为普通模块 导航到模块文件夹并创建git repo 处理模块并将模块更新为my gitto 逻辑告诉我这不是正确的方法。所以我在想,也许我在框架应用程序之外单独编写模块,推到gito,然后从gito拉到工作应用程序

我想写一个Zend Framework 2供应商模块,托管在github上,可通过composer安装,并提供给全世界

现在,虽然我在编写模块方面没有问题,但我正在努力解决的是围绕这个问题的机制

我最初的直觉是这样做:

  • 设置zend framework 2骨架应用程序
  • 将我的模块添加为普通模块
  • 导航到模块文件夹并创建git repo
  • 处理模块并将模块更新为my gitto
  • 逻辑告诉我这不是正确的方法。所以我在想,也许我在框架应用程序之外单独编写模块,推到gito,然后从gito拉到工作应用程序


    如果您可以指导我学习教程,请让我知道,或者您是否可以确认或否认我提出的想法,这也会很好。

    您可能需要在模块周围安装一些应用程序来检查它是否有效,但这不应影响您创建该模块的方式

    当涉及到Zend Framework 2集成模块时,您真正需要的只是一个名为
    SomeNameSpace\Module
    的类,该类必须能够通过Composer自动加载。请注意,不需要将此文件放置在特定位置。ZF2将检测到您正在将其与Composer一起使用,只需使用
    class_exists()
    进行检查,而不是尝试查找文件,包括它,然后检查该类

    此类应该以ZF2期望模块执行此操作的方式显示有关模块的一些配置信息,即添加引导事件侦听器,通过
    getConfig()
    等返回配置数据。它不需要为
    getAutoloaderConfig()
    返回任何内容,因为Composer就是用于此目的的

    要将模块添加到ZF2应用程序,请将
    SomeNameSpace
    名称添加到文件
    config/application.config.php

     return array(
         'modules' => array(
             'OtherStuffForTheDemoApp',
             'SomeNameSpace' # this enables your module in your demo app 
                             # and anywhere else where it's being used
         ),
    
    ZF2将看到提到的模块,尝试实例化
    SomeNameSpace\module
    ,询问您定义的所有配置,可能会调用您在那里提供的钩子函数,如
    onBootstrap()
    ,仅此而已。您的模块负责完成其余工作,即提供服务管理器配置、提供控制器等。所有类都由Composer自动加载

    我相信Zend自己还没有回答如何公开模块图像等资源的问题-至少我看到这些问题被提出,但在最新版本的文档中没有得到回答:

    模块内文件的组织完全由您决定,尽管将源代码放在名为
    src
    的文件夹中似乎是一种常见做法,但测试可能会进入
    tests