首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为ZFT编写供应商程序/模块

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

Stack Overflow用户
提问于 2015-04-13 16:24:33
回答 1查看 124关注 0票数 2

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

现在,虽然我在编写模块方面没有问题,但我正在挣扎的地方是围绕这一点的机制。

我的本能反应是这样做:

  1. 建立zend框架2框架应用程序
  2. 将我的模块添加为普通模块
  3. 导航到模块文件夹并创建一个git。
  4. 研究模块并更新模块到我的gitto..。

现在逻辑告诉我,这不是正确的方法。所以我在想,也许我把模块写成骨架应用程序之外的独立模块,推到gito,然后从gito拉到一个工作的应用程序.

如果你能指导我到一个教程,请让我知道,如果你可以确认或否认我的想法,这将是伟大的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-13 19:28:32

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

当涉及到ZendFramework2集成模块时,您真正需要的是一个名为SomeNameSpace\Module的类,它必须可以通过Composer自动加载。请注意,不需要将该文件放置在某个位置。ZF2将检测到您正在与Composer一起使用它,只需使用class_exists(),而不是试图定位一个文件,包含它,然后检查这个类。

这个类应该以ZF2期望模块所做的方式显示有关模块的一些配置信息,例如添加引导事件侦听器、通过getConfig()返回配置数据等等。它不需要为getAutoloaderConfig()返回任何内容,因为这就是Composer的目的。

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

代码语言:javascript
运行
复制
 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本身并没有回答如何像公开模块的映像那样公开资源的问题--至少我看到这些问题被提出了,但是在最新版本的文档:http://framework.zend.com/manual/current/en/modules/zend.module-manager.intro.html中没有得到回答。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29610304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档