跳转到内容

“模区块开发”

本节提供了使用现代 PHP 实践、设计模式和最佳实践开发 XOOPS 模区块的综合文档。

XOOPS 模区块开发多年来取得了显着的发展。现代模区块利用:

  • MVC 架构 - 清晰的关注点分离
  • PHP 8.x 功能 - 类型声明、属性、命名参数
  • 设计模式 - 存储库,DTO,服务层模式
  • 测试 - PHPUnit 具有现代测试实践
  • XMF 框架 - XOOPS 模区块框架实用程序

步骤-by-step从头开始构建XOOPS模区块的指南。

  • Tutorials/Hello-World-Module - 您的第一个XOOPS模区块
  • Tutorials/Building-a-CRUD-Module - 完整的创建、读取、更新、删除功能

现代XOOPS模区块开发中使用的架构模式。

  • 模式/MVC-Pattern - 模型-View-Controller架构
  • Patterns/Repository-Pattern - 数据访问抽象
  • Patterns/DTO-Pattern - 用于干净数据流的数据传输对象

编写可维护的高-quality代码的指南。

  • Best-Practices/Clean-Code - XOOPS 的整洁代码原则
  • Best-Practices/Code-Smells - 常见反-patterns以及如何修复它们
  • Best-Practices/Testing - PHPUnit 测试策略

Real-world模区块分析及实现实例。

  • 发布者-Module-Analysis - 深入了解发布者模区块

-organizedXOOPS模区块遵循以下目录结构:

/modules/mymodule/
/admin/
admin_header.php
admin_footer.php
index.php
menu.php
/assets/
/css/
/js/
/images/
/blocks/
myblock.php
/class/
/Controller/
/Entity/
/Repository/
/Service/
/include/
common.php
install.php
uninstall.php
update.php
/language/
/english/
admin.php
main.php
modinfo.php
/preloads/
core.php
/sql/
mysql.sql
/templates/
/admin/
/blocks/
main_index.tpl
/test/
bootstrap.php
/Unit/
/Integration/
index.php
xoops_version.php

模区块定义文件告诉 XOOPS 关于你的模区块的信息:

<?php
$modversion = [];
// Basic Information
$modversion['name'] = 'My Module';
$modversion['version'] = 1.00;
$modversion['description'] = 'A sample XOOPS module';
$modversion['author'] = 'Your Name';
$modversion['credits'] = 'Your Team';
$modversion['license'] = 'GPL 2.0 or later';
$modversion['dirname'] = 'mymodule';
$modversion['image'] = 'assets/images/logo.png';
// Module Flags
$modversion['hasMain'] = 1; // Has frontend pages
$modversion['hasAdmin'] = 1; // Has admin section
$modversion['system_menu'] = 1; // Show in admin menu
// Admin Configuration
$modversion['adminindex'] = 'admin/index.php';
$modversion['adminmenu'] = 'admin/menu.php';
// Database
$modversion['sqlfile']['mysql'] = 'sql/mysql.sql';
$modversion['tables'] = [
'mymodule_items',
'mymodule_categories',
];
// Templates
$modversion['templates'][] = [
'file' => 'mymodule_index.tpl',
'description' => 'Index page template',
];
// Blocks
$modversion['blocks'][] = [
'file' => 'myblock.php',
'name' => 'My Block',
'description' => 'Displays recent items',
'show_func' => 'mymodule_block_show',
'edit_func' => 'mymodule_block_edit',
'template' => 'mymodule_block.tpl',
];
// Module Preferences
$modversion['config'][] = [
'name' => 'items_per_page',
'title' => '_MI_MYMODULE_ITEMS_PER_PAGE',
'description' => '_MI_MYMODULE_ITEMS_PER_PAGE_DESC',
'formtype' => 'textbox',
'valuetype' => 'int',
'default' => 10,
];

为您的模区块创建一个通用引导程序文件:

include/common.php
<?php
if (!defined('XOOPS_ROOT_PATH')) {
die('XOOPS root path not defined');
}
// Module constants
define('MYMODULE_DIRNAME', 'mymodule');
define('MYMODULE_PATH', XOOPS_ROOT_PATH . '/modules/' . MYMODULE_DIRNAME);
define('MYMODULE_URL', XOOPS_URL . '/modules/' . MYMODULE_DIRNAME);
// Autoload classes
require_once MYMODULE_PATH . '/class/autoload.php';

现代XOOPS模区块应以PHP8.0或更高版本为目标,以利用:

  • 建筑商房产促销
  • 命名参数
  • 联合类型
  • 匹配表达式
  • 属性
  • 空安全运算符
  1. 从Tutorials/Hello-World-Module教程开始
  2. 进展到Tutorials/Building-a-CRUD-Module
  3. 研究 Patterns/MVC-Pattern 以获得架构指导
  4. 在整个过程中应用Best-Practices/Clean-Code实践
  5. 从一开始就实施Best-Practices/Testing
  • ../05-XMF-Framework/XMF-Framework - XOOPS 模区块框架实用程序
  • 数据库-Operations - 使用XOOPS数据库
  • ../04-API-Reference/Template/Template-System - Smarty XOOPS 中的模板
  • ../02-Core-Concepts/Security/Security-Best-Practices - 保护您的模区块
版本日期变化
1.02025-01-28初始文档