## 理解插件的含义
先通读《插件开发指南》,理解插件和钩子的含义,以及插件的安装、执行、配置、卸载流程。
## 弄清自己待开发的插件需求-要完成的逻辑业务
问自己几个问题:
1. 插件的基本信息(名称、标识、描述、状态、作者、版本)是哪些
2. 插件的用途是扩展显示还是控制数据
3. 插件对使用控制器是否有要求,要不要单独的数据表(要调用插件的模型)
4. 插件要用哪些钩子、一个还是多个
5. 插件需要配置不,要的话,有哪些选项,要不要用分组,要不要自定义配置显示模板
6. 插件需要后台不,默认显示数据,还是高级后台(有自己的管理界面和详情等)
## 快速创建插件,进行插件的完善
进入“扩展”-》“插件管理”点“快速创建”进入创建阶段,填写基本信息,按照自身的需求、想好的问题勾选适当的选项。 配置目前还没做到可视化,大家先默认创建好文件,然后去文件里修改,都是数组,参照“插件后台开发”里的配置说明。
## 例子
首先清楚插件就是符合一定规范拥有一定目录结构的类文件。
然后清楚自己要开发的插件的要求,在什么位置显示、是否有配置文件、是否需要外部url访问、是否需要后台显示。
接下来我们就用后台快速开发一个Example插件示范。
首先,进入后台->扩展->插件列表->快速创建。会出现一个如下的页面。 ![创建页面](http://ww3.sinaimg.cn/mw1024/50075709jw1e8v4g37gwhj21360m0mym.jpg)
由于仅作简单的示范,我们不需要配置文件和外部控制器,都用默认的。钩子我们选‘documentDetailAfter’;最新版已经支持多选了。
可以点“预览”按钮看下将要生成的类文件,如下图:
![image](http://ww4.sinaimg.cn/mw1024/50075709jw1e8v4mod369j20ux0j4jtn.jpg)
点确定后,出现“创建成功”,并且列表里出现“示列”这个插件表示插件已经创建成功了。
然后我们可以看见生成的类文件 documentDetailAfter方法里什么都没有。我们在里面输出点文字,见下图:
![image](http://ww2.sinaimg.cn/mw1024/50075709jw1e8v7l2qpasj20ht0h475q.jpg)
然后后台安装下,进入前台文章 ![image](http://ww3.sinaimg.cn/mw1024/50075709jw1e8v943t77xj210y0d5mz3.jpg)其实和我们开发widget方法没啥太大区别。只不过这里前台用hook函数调用类里的钩子方法。
因为本产品使用了命名空间,所以插件类的引入需要通过命名空间的写法,才能正确自动加载类。而我们的快速创建就是为你们指定好插件定义信息后,自动创建一些规范的目录文件。所以你们只需要考虑插件的一些信息即可。
如果需要外部url 访问插件里的控制器。需要用addons_url(‘插件名://控制器名/方法’) 这样访问控制器。控制器里必须继承Home/AddonsController类。不能继承后台的。那个里面很多方法插件用不到,是为后台所定制的。要使用,只需在创建时候勾选‘是否需要外部访问’,就会自动创建控制器目录和文件,还有Model目录。然后自己按需修改吧。