AMH 社区首页
AMH社区 - 开放自由有价值的社区
[求助帖] LNMP面板 - AMH3.0 模块(module) 开发文档 |
|
---|---|
admin |
admin 发表于 2013-02-24 20:26:20
关于AMH模块
---------------------------------------------------------------------------------------------------- amh3.0新增一重要功能:module 模块,支持用户创建编写新的功能模块运行,这使amh今后会更加开放、灵活。 使用模块可以额外在线安装相关软件、程序或结合amh面板自身的控制器(Controller)与数据模型(Model)扩展出新的面板功能,如目前已发布的amh模块:AMProxy-1.0(反代模块)、AMAPI-1.0(api模块)、AMFTP-1.0(文件管理模块) 同时amh模块拥有最高运行权限,用户可按需求编码无任何限制, 欢迎有开发能力的朋友加入、集思广益共同扩展丰富amh面板功能。 应用AMH模块 ---------------------------------------------------------------------------------------------------- 模块工作目录 /root/amh/modules 模块使用编码 utf8 SSH命令管理模块 1) 有步骤提示操作: ssh执行命令: amh module 然后选择对应的模块进行管理。 2) 或直接操作: 下载模块: amh module download [模块名字] 模块信息: amh module [模块名字] info 安装模块: amh module [模块名字] install 卸载模块: amh module [模块名字] uninstall 管理模块: amh module [模块名字] admin 安装状态: amh module [模块名字] status 删除状态: amh module [模块名字] delete 开发AMH模块: ---------------------------------------------------------------------------------------------------- amh模块开发流程 1) 以模块名字命名创建模块脚本目录, 例如: my_module-1.0 /root/amh/modules/my_module-1.0 2) 创建模块主脚本文件 AMHScript /root/amh/modules/my_module-1.0/AMHScript 其中AMHScript包含5个函数供AMH调用,分别是: amh_module_info amh_module_install amh_module_admin amh_module_uninstall amh_module_status ---------------------------------------------------------------------------------------------------- 以下为函数详细说明 amh_module_info 模块信息函数 ------------------------- amh_module_info函数当中echo输出模块具体的一些说明信息,分别有: AMH-ModuleName (模块名字) AMH-ModuleDescription (模块说明描述,请不要换行) AMH-ModuleButton (amh面板后台按钮文字,如: 安装/卸载) AMH-ModuleDate (模块发布时间) AMH-ModuleAdmin (amh面板后台"管理模块"按钮链接,如无管理页面请留空) AMH-ModuleWebSite (模块开发者网站) AMH-MoudleScriptBy (模块开发者名字) 当用户执行命令 amh module my_module-1.0 info 将会执行amh_module_info函数,也就输出上面用户定义模块信息。 同时在amh面板后台AMH » Module也会调用显示出以上定义的信息。 amh_module_install 模块安装函数 ------------------------- 开发者可以在amh_module_install函数中编写模块安装脚本, 当用户执行命令 amh module my_module-1.0 install 或是通过面板点击安装,将会执行amh_module_install函数执行当中的脚本, 注意写好判断避免用户重复安装,您可以参考amh现已发布的模块,调用amh_module_status函数判断。 amh_module_admin 模块管理函数 ------------------------- amh_module_admin为模块的管理函数,模块安装后可以使用amh_module_admin函数管理维护模块的功能。 如amh反代模块,AMProxy-1.0,创建、删除管理反代网站,关键字添加管理都是通过amh_module_admin函数进行处理。 通常管理模块需要传递参数给amh_module_admin函数进行响应相关事件,如上面创建、删除反代网站, 您可以额外传递一参数给amh_module_admin函数,像下面这行命令的add,user参数, amh module my_module-1.0 admin add,user 这时就可以在amh_module_admin函数当中使用$*接收参数值进行判断响应相关事件。 amh_module_uninstall 模块卸载函数 ------------------------- amh_module_uninstall为模块的卸载函数,开发者可编写模块相关卸载脚本, 当用户执行命令 amh module my_module-1.0 uninstall 或是通过面板点击卸载,将会执行amh_module_uninstall函数执行当中的脚本, 无特殊情况务必要清除干净安装时生成或下载的目录文件, 与及还原先前安装改动过的文件内容,保证可恢复至安装模块之前的状态。 amh_module_status 模块安装状态函数 ------------------------- amh_module_status 模块当前安装状态函数,用于判断模块是否已安装, 当用户执行命令 amh module my_module-1.0 status 一样会执行amh_module_status函数当中的脚本。 开发者请根据安装后的改动做出判断是否已安装本模块。 如已安装请返回 return 0; 相反未安装请返回 return 1; amh面板上会根据您返回的状态显示相关按钮(安装/管理/卸载),以能正确响应对应的事件, 同样上面所提到的函数:安装(amh_module_install)、管理(amh_module_admin)、卸载(amh_module_uninstall) 您都可调用amh_module_status函数进行判断使用, 当模块未安装时才可以执行安装脚本, 当模块已安装时才可以执行卸载脚本, 当模块已安装时才可以进行管理维护模块提供的功能,这样就避免重复安装、卸载出错等问题。 ---------------------------------------------------------------------------------------------------- 小提示: 您编写模块同样可以执行amh相关命令,如模块安装新软件后需要重载php, 您可使用amh php reload;命令,同样重载Nginx,可以使用amh nginx reload; 更多命令请查阅amh命令全集: http://amysql.com/bbs/post-196-1-1.htm [lnmp] AMH面板模块开发入门实例 http://amysql.com/bbs/post-253-1-1.htm 模块开发入门实例:MyModule-1.0 安装动画 http://amysql.com/bbs/post-254-1-1.htm
点赞,加油! (2分)
2013-02-24 20:26:20 1
AMH官方号 2011~2021 (10周年) |
neil |
回复
2014-02-05 23:05:57 2
|
laotang |
菜鸟很无助,顶上去给其他大侠看
回复
2014-02-14 23:04:35 3
|
Captain |
非常有用的开发文档
回复
2014-02-15 18:12:47 4
|
reg2012 |
已经开发出一个模块了,正在自己的机子上测试
怎么才能提交给官方呢?
回复
2014-04-12 16:07:13 5
|
ali |
进来学习 支持 支持
回复
2014-04-12 18:38:31 6
|