phpBB3.2.X 扩展机制

在这里讨论PHPBB3.2.X相关的使用、安装等话题
版面规则
再次重申: 请不要用站内信件问问题, 有问题直接发到相应版面上, 今后任何此类信件恕不回复.
发表回复
头像
IOsetting
论坛管理员
论坛管理员
帖子: 3635
注册: 2006-10-17 1:48

phpBB3.2.X 扩展机制

帖子 IOsetting » 2018-11-30 2:00

php-ext-acme-demo 是官方文档中介绍扩展时使用的一个例子, 其主要目录结构为

代码: 全选

├── acp
│   ├── main_info.php
│   └── main_module.php
├── adm
│   └── style
│       └── demo_body.html
├── composer.json
├── config
│   ├── routing.yml
│   └── services.yml
├── controller
│   └── main.php
├── event
│   └── main_listener.php
├── ext.php
├── language
│   └── en
│       └── common.php
├── license.txt
├── migrations
│   ├── release_1_0_0.php
│   └── release_1_0_1.php
├── phpunit.xml.dist
├── README.md
├── styles
│   └── prosilver
│       └── template
│           ├── demo_body.html
│           └── event
│               └── overall_header_navigation_prepend.html
以下说明每个目录的作用

composer.json
用于标识这个扩展的属性和依赖关系, 这些信息会出现在后台的扩展管理界面中

ext.php
可以不需要

language/en/common.php
这是扩展里面会用到的多国化语言内容

acp/main_info.php
acp/main_module.php
这两个文件要结合
1. migrations/release_1_0_0.php 的内容, 都是为了将 main_module.php 的功能安排到acp的合适位置. migrations里面的是数据库相关的改动, 加入记录以及建表操作.
2. admin/style/demo_body.html 这是对应功能的acp界面

config/routing.yml
用于定义访问controller的URL, 需要rewrite的支持

config/services.yml
用于把controller和listener加入服务列表, 里面要描述名称, 类和初始化参数, 需要对应controller 和 event 这两个目录下的文件

controller/main_listener.php
提供页面访问的类

event/main_listener.php
这个类负责将自己的成员方法注册到事件中, 在成员方法中进行响应事件的处理

styles/prosilver/template/event/overall_header_navigation_prepend.html
响应页面事件后插入的内容

styles/prosilver/template/demo_body.html
普通模板, 由controller调用

发表回复