在之前的外掛體系中,設計一個外掛的最後一個步驟就是將外掛匯出為 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 檔案中增加:
- <item id="installfile"><![CDATA[install.php]]></item>
- <item id="uninstallfile"><![CDATA[uninstall.php]]></item>
此程式碼,即可完全免去手動修改 xml 的操作了~~
分析程式碼:
開啟 source/admincp/admincp_plugins.php 這個檔案可以看到:
- if(file_exists($plugindir.'/install.php')) {
- $pluginarray['installfile'] = 'install.php';
- }
- if(file_exists($plugindir.'/uninstall.php')) {
- $pluginarray['uninstallfile'] = 'uninstall.php';
- }
- if(file_exists($plugindir.'/upgrade.php')) {
- $pluginarray['upgradefile'] = 'upgrade.php';
- }
- if(file_exists($plugindir.'/check.php')) {
- $pluginarray['checkfile'] = 'check.php';
- }
這一段程式碼,也就是說這四種操作都可以在匯出之前先建立好檔案然後匯出時候自動增加到 xml 檔案裡面了。