在之前的插件体系中,设计一个插件的最后一个步骤就是将插件导出为 xml 文件以便安装,如果对于没有单独数据表的插件来说,这样就算是最后一步了,但是如果对于有自己的插件表,甚至还有自己的一个安装流程的插件来说,还需要自行编辑 xml 文件,添加安装脚本的信息,或者是添加卸载等脚本的信息。

在 Discuz!2.0 中只要插件目录中存在 install.php 或者 uninstall.php 、 upgrade.php 这些文件,那么在导出的时候都会自动的在 xml 文件中生成对应的数据。极大的方便了插件开发者。

以官方的 「我的马甲」 插件为例,在 source/plugin/myrepeats 目录下存在 install.php 和
uninstall.php 两个文件,在 Discuz!X 1.5 中,如果在后台-插件-设计
我的马甲,中点击导出的话是不会有这两个文件的相关信息导出的,在 Discuz!X 2.0 中,将会自动在 xml 文件中增加:

  1.         <item id="installfile"><![CDATA[install.php]]></item>
  2.         <item id="uninstallfile"><![CDATA[uninstall.php]]></item>

此代码,即可完全免去手动修改 xml 的操作了~~

分析代码:
打开 source/admincp/admincp_plugins.php 这个文件可以看到:

  1.         if(file_exists($plugindir.'/install.php')) {
  2.                 $pluginarray['installfile'] = 'install.php';
  3.         }
  4.         if(file_exists($plugindir.'/uninstall.php')) {
  5.                 $pluginarray['uninstallfile'] = 'uninstall.php';
  6.         }
  7.         if(file_exists($plugindir.'/upgrade.php')) {
  8.                 $pluginarray['upgradefile'] = 'upgrade.php';
  9.         }
  10.         if(file_exists($plugindir.'/check.php')) {
  11.                 $pluginarray['checkfile'] = 'check.php';
  12.         }

这一段代码,也就是说这四种操作都可以在导出之前先建立好文件然后导出时候自动增加到 xml 文件里面了。