使用AI开发Discuz! X插件之Cursor rules分享 New
不一定准确 ,不过我使用这个rules开发了两个插件,目前使用没有问题。希望有大佬可以完善并分享{:7_187:}
# DiscuzX插件开发的规则### 一、全局规则■ **框架约束**1. 所有插件必须基于`/[插件标识符]`目录开发3. 所有PHP类文件需遵循`class_`前缀命名规范4. 模板文件必须存放于`template/`子目录■ **安全规范**- 所有用户输入必须通过`dhtmlspecialchars()`过滤- 数据库操作必须使用`DB::query()`方法- 禁止直接操作$_GET/$_POST,需通过`getgpc()`获取参数■ **开发流程**1. 优先使用Discuz!X内置的38个嵌入点2. 页面输出必须通过`return`而非`echo`3. 插件配置项需存储在`$_G['cache']['plugin']`### 二、PHP开发规则■ **核心类规范1. 继承`discuz_plugin`基类时必须实现`install()/uninstall()`方法2. 模块类命名格式:`class_[模块名]_[插件标识符]`3. 使用`hookscript`机制时必须包含`check.inc.php`■ **缓存机制- 加载插件缓存:`loadcache('plugin')`- 更新配置时需调用`updatecache('plugin')`- 临时数据存储使用`memory('set', $key, $value)`■ **API调用示例// 用户权限验证模板if(!$_G['uid']) { showmessage('not_loggedin', '', array(), array('login' => 1));}### 三、模板开发规则■ **模板规范1. 语言变量必须通过`{lang plugin_identifier:key}`调用2. 循环结构需使用`<!--{loop $list $value}-->`语法3. 条件判断必须包含`<!--{if}-->...<!--{/if}-->`标签■ **CSS规范- 样式类名需添加插件标识符前缀(例:.pluginid_btn)- 优先继承`common.css`基础样式- 移动端模板需存放在`template/touch/`### 四、Debug 日志```function plugin_identifier_debug_log($msg) { $log_file = DISCUZ_ROOT.'data/log/plugin_identifier_debug.log'; file_put_contents($log_file, date('Y-m-d H:i:s')." - ".$msg.PHP_EOL, FILE_APPEND);}```// 示例:记录变量值```plugin_identifier_debug_log('用户ID:'.$uid.' 执行操作:'.$action);``` 这个编程有什么限制吗
页:
[1]