CMF最灵活的地方就是插件机制完善,在CMF的基础上开发出各种的功能的插件。

    CMF自带有一个示例插件,他位于dayrui/Temp/App/Myapp/

    image.png

    Myapp就是系统自带的一个示例插件,我们来分析一下这个示例插件的全部文件

    一、插件配置目录Config

    image.png

    1、App.php

    这是插件的信息配置文件,作用是描述这个插件的基本信息,内容如下:

    1. <?php
    2.  
    3. return [
    4.  
    5. 'type' => 'app', // 这是固定值,表示插件
    6. 'name' => '我的插件', // 插件的名字,中文名字,建议不超过8个汉字
    7. 'icon' => 'fa fa-user', // icon 图标
    8. 'author' => '天睿程序设计', // 插件的作者,不超过8个汉字
    9.  
    10. ];

    2、Install.sql

    这个是插件安装时自动创建的sql语句,一般用来创建表,内容格式:

    1. DROP TABLE IF EXISTS `{dbprefix}app_web_log`;
    2. CREATE TABLE IF NOT EXISTS `{dbprefix}app_web_log` (
    3. `id` BIGINT(18) unsigned NOT NULL AUTO_INCREMENT,
    4. `time` int(10) NOT NULL,
    5. `domain` varchar(100) NOT NULL,
    6. `url` varchar(255) NOT NULL,
    7. `param` text NOT NULL,
    8. `method` varchar(20) NOT NULL,
    9. `ip` varchar(100) NOT NULL,
    10. `useragent` text NOT NULL,
    11. `software` varchar(255) NOT NULL,
    12. PRIMARY KEY (`id`),
    13. KEY `time` (`time`)
    14. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='网站访客日志';

    一般用于创建表,{dbprefix}表示表的前缀

    3、Menu.php

    是插件的菜单,安装插件后,在后台自动创建对应的菜单

    1. <?php
    2.  
    3. /**
    4. * 菜单配置
    5. */
    6.  
    7. return [
    8.  
    9. 'admin' => [
    10.  
    11.  
    12. // 往已有的菜单下增加链接菜单的写法
    13.  
    14. 'app' => [
    15. 'left' => [
    16. 'app-plugin' => [ // 把菜单追加到[功能插件]之下
    17. 'link' => [
    18. [
    19. 'name' => '我的测试应用',
    20. 'icon' => 'fa fa-user',
    21. 'uri' => 'myapp/home/index',
    22. ],
    23. ]
    24. ],
    25. ],
    26. ],
    27.  
    28. ],
    29.  
    30. 'member' => [
    31.  
    32. 'content-module' => [// 把菜单追加到[内容管理]之下
    33. 'link' => [
    34. [
    35. 'name' => '我的测试应用',
    36. 'icon' => 'fa fa-user',
    37. 'uri' => 'myapp/home/index',
    38. ],
    39. ],
    40. ],
    41.  
    42.  
    43.  
    44. ],
    45.  
    46. ];

    上面的代码是在后台插件菜单里面增加本插件的名字、图标、链接

    4、Routes.php

    固定文件,直接复制就行

    5、Uninstall.sql

    卸载插件时执行的sql语句,一般是删除表,删除数据

    6、Version.php

    插件版本号

    二、插件控制器目录 Controllers

    image.png

    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

    image.png

    用于写数据操作的模型类

    My.php是模型类文件,全局调用类方法:

    1. \Phpcmf\Service::M('my', 'myapp')->方法名();

    四、后台模板文件目录 Views

    image.png

    专门用于后台的模板文件,用于后台控制器的模板指定文件

    文档最后更新时间:2019-03-21 12:07:06