# 六、安裝與卸載
熟悉模塊的安裝卸載機制
開發者工具中的模塊打包向導功能:
模塊打包功能實際上只是幫開發者做了一些重復性的工作。
這邊的打包工具,主要做的是生成Info文件夾中的install.sql,guide.json,cleanData.sql這幾個文件,同時支持自動替換模塊下的文件和下載壓縮后的文件功能。
打包工具的工作流程:
1.選擇需要打包的模塊
2.導出module為當前選擇模塊名的所以menu表中的記錄,生成json數據記錄。根據menu中的記錄,工具會再去比較模塊名Controller這個類的相應的菜單項,如果存在public的方法,并且在菜單中沒有的,則標記為可能遺漏的菜單項,提醒開發者補全菜單,如果開發者不補全菜單,則不允許進入下一步。
3.查找module為當前選擇模塊名的所有權限節點,同時允許開發者選擇一些權限節點作為默認權限節點,默認的權限節點在安裝的時候會自動賦給全部的用戶組。不選,則需要站長在安裝模塊后自己去給用戶組賦權。
4.查找module為當前選擇模塊名的所有action和action_limit
5.超找所有 模塊名 開頭的數據表,同時檢測有數據的表,作為默認數據,當然開發者也可以不勾選一些表,不勾選的表將不會生成默認數據
6.最后一步,預覽將會生成的3個文件,并可以選擇替換或者下載zip壓縮包。
至此,模塊基本已經導出成功了,有一點值得注意的是,每個階段導出的文件,我們都可以進行修改。修改后的結果才是最終生成的結果。
卸載
卸載的時候,系統會做以下操作:
1.在menu表中,清理掉模塊相關菜單項
2.在auth_rule表中,清理掉模塊相關的前臺權限節點
3.在action表中,清理掉模塊相關的用戶行為
4.在action_limit表中,清理掉模塊相關的用戶行為限制
5.執行cleanData.sql清理掉模塊相關的數據(此步只有用戶選擇不保留數據才會執行。一般情況下為drop表語句)
6.執行uninstall.php文件,(如果文件存在的話,一般此步驟放置一些較為復雜的操作。此文件將被require_once進去,所以運行環境為Admin/ModuleController/uninstall())
7.將module表中的模塊is_setup設為0,認為模塊已經被卸載。
注:所有的清除操作都是以module字段為條件進行判斷的。
安裝
安裝的時候會做一下操作:
1.根據Info/guide.json執行操作,如果Info/guide.json存在的話:
1.清理menu表,并根據guide.menu導入菜單項
2.清理auth_rule表,并根據guide.auth_rule導入菜單項
3.根據guide.default_rule設置每個用戶組的權限為默認權限
4.根據guide.action導入用戶行為
5.根據guide.action_limit導入用戶行為限制
6.執行install.sql