插件开发文档:开发入门
插件开发入门指南
插件开发的开发人员需要具备的基本条件
1. 具备基本的PHP知识(必备);
2. 具备HTML知识,了解css和js最佳(必备);
3. 具备SQL语句知识(必备);
4. 有PHP框架开发经验最好,CI框架、ZF框架、TP框架,Yii框架等(可选);
5. 有服务器配置相关技术的(可选)。
如果你不具备这些知识,请务必提前学习,否则用起来会比较吃力。
插件开发必备工具:
开发者在开发插件之前首先要在宸逸CMS框架后台安装《开发者工具》,开发者利用本插件可以快速的创建空白插件等等。
https://www.xunruicms.com/shop/app/449.html
插件目录结构
插件目录结构如下:
``` ├─dayrui/App/插件目录/ -- 插件目录名称 │ ├─Config/ -- 相关配置文件 │ ├─Controllers/ -- 控制器 │ │ ├─Admin/ -- 后台操作控制器 │ │ ├─Member/ -- 用户中心控制器 │ ├─Models/ -- 数据库模型[可选] │ ├─Views/ -- 后台html文件 │ ├─Libraries/ -- 类库[可选] │ └─Helpers/ -- 函数库[可选] └─ ... ```
插件目录命名格式:
由首字母大写其余字母全小写,不得包含数字或者符号(仅支持_符号)
正确的插件目录命名:
App_hello Apphello
错误的插件目录命名:
AppHello Apphello2 appHello
创建自己的插件
宸逸框架最灵活的地方就是插件机制完善,在宸逸框架的基础上开发出各种的功能的插件。
开发者可以在《开发者插件》中一键创建空白插件
-----------------------------------------
本例中填写:Myapp,作为示例目录
插件目录命名格式是:首字母大写,其余字母小写,只能用字母组成,不得保护数字等其他符号
一、插件配置目录Config
1、App.php
这是插件的信息配置文件,作用是描述这个插件的基本信息,内容如下:
'app', // 这是固定值,表示插件 'name' => '我的插件', // 插件的名字,中文名字,建议不超过8个汉字 'icon' => 'fa fa-user', // icon 图标 'author' => '宸逸程序设计', // 插件的作者,不超过8个汉字 ];
2、Install.sql
这个是插件安装时自动创建的sql语句,一般用来创建表,内容格式:
DROP TABLE IF EXISTS `{dbprefix}app_web_log`; CREATE TABLE IF NOT EXISTS `{dbprefix}app_web_log` ( `id` BIGINT(18) unsigned NOT NULL AUTO_INCREMENT, `time` int(10) NOT NULL, `domain` varchar(100) NOT NULL, `url` varchar(255) NOT NULL, `param` text NOT NULL, `method` varchar(20) NOT NULL, `ip` varchar(100) NOT NULL, `useragent` text NOT NULL, `software` varchar(255) NOT NULL, PRIMARY KEY (`id`), KEY `time` (`time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='网站访客日志';
一般用于创建表,{dbprefix}表示表的前缀
3、Menu.php
是插件的菜单,安装插件后,在后台自动创建对应的菜单
[ // 往已有的菜单下增加链接菜单的写法 'app' => [ 'left' => [ 'app-plugin' => [ // 把菜单追加到[功能插件]之下 'link' => [ [ 'name' => '我的测试应用', 'icon' => 'fa fa-user', 'uri' => 'myapp/home/index', ], ] ], ], ], ], // 用户中心的菜单 'member' => [ 'content-module' => [// 把菜单追加到[内容管理]之下 'link' => [ [ 'name' => '我的测试应用', 'icon' => 'fa fa-user', 'uri' => 'myapp/home/index', ], ], ], ], // 简化模式的后台菜单 'admin_min' => [ // 往已有的菜单下增加链接菜单的写法 'app-plugin' => [ // 把菜单追加到[插件]之下 'link' => [ [ 'name' => '我的测试应用', 'icon' => 'fa fa-user', 'uri' => 'myapp/home/index', ], ] ], ], ];
上面的代码是在后台插件菜单里面增加本插件的名字、图标、链接
4、Routes.php
固定文件,直接复制就行
5、Uninstall.sql
卸载插件时执行的sql语句,一般是删除表,删除数据
6、Version.php
插件版本号
二、插件控制器目录 Controllers
1、Home.php
这是前端控制器文件
访问url是:/index.php?s=myapp&c=home&m=方法名
模板文件:/template/pc/default/home/myapp/*.html
2、Member/Home.php
这是用户中心的控制器文件
访问url是:/index.php?s=member&app=myapp&c=home&m=方法名
模板文件:/template/pc/default/member/myapp/*.html
3、Admin/Home.php
这是后台控制器文件
访问url是:/admin.php?s=myapp&c=home&m=方法名
模板参考四节
三、插件模型目录 Models
用于写数据操作的模型类
My.php是模型类文件,全局调用类方法:
\Phpcmf\Service::M('my', 'myapp')->方法名();
四、后台模板文件目录 Views
专门用于后台的模板文件,用于后台控制器的模板指定文件
五、如何把示例插件安装到宸逸系统中呢?
去后台应用插件管理,就看到他了,然后点安装
插件和模块的区别
模块和插件实则上是同一种概念,模块属于特殊的插件,模块具备一种规范化的控制器规则,创建模块后系统会自动创建一些列的控制器文件和一些列的数据库表,他可以用来内容的发布工作。
模块属于傻瓜式的插件,基本的逻辑程序都由CMS提供,开发者只需要集成CMS的规范就你可以组织和管理内容。
插件配置信息储存和读取
插件配置信息储存目录位于:cache/app/
储存配置信息:
\Phpcmf\Service::M('app')->save_config("插件目录", $配置数组);
读取配置信息:
\Phpcmf\Service::M('app')->get_config("插件目录");