禪道擴展機制

加載模塊control檔案時,先判斷有沒有被擴展過,如果擴展過,則引入擴展下的檔案;同一個模塊下的所有model擴展檔案會被加載到tmp/model下運行。

老版

適用開源版16.5、企業版6.5、旗艦版3.0以下


對應模塊ext資料夾下module/task/ext/。擴展config.php:在ext下建config資料夾,在congfig下建檔案比如test.php。

擴展控制器方法create():在ext下建control資料夾,在control下建檔案create.php,自己寫一個create方法。


繼承原來的方法


  • 擴展css,建一個css目錄,擴展創建頁面的css檔案,在css目錄下再建一個create目錄,建檔案test.css;
  • 擴展js,類似css;
  • 擴展語言項目錄,類似建lang/zh-cn/test.php,新的會覆蓋老的;
  • 擴展model,類似control,但是不需要引入檔案。

  • 擴展view下的檔案,ext下新建view資料夾,直接複製原檔案,比如create.html.php檔案,注意修改引入路徑(要多一層)。

    也可以這樣寫,會獲取到module前的路徑

    整個ext擴展目錄結構是這樣式的

    新的:


    比如擴展bug模塊的程式碼,目錄在下麵,其他同老版本。

    擴展機制實現原理:control擴展機制。
    • 加載模塊control檔案時,先判斷有沒有被擴展過,如果擴展過,則引入擴展下的檔案;
    • 實現程式碼在setActionExtFile()方法中。


    model擴展機制

    同一個模塊下的所有model擴展檔案會被加載到tmp/model下運行。類名叫ext模塊名Model,如extadminModel,有直接擴展和通過鉤子擴展兩種。

    直接擴展,進入tmp下查看:

    鉤子擴展:
    ext/model/hook下建檔案將鉤子檔案下寫的追加到tmp/model下檔案相應方法的頭部

    view擴展機制(完全覆蓋+鉤子檔案擴展,有擴展檔案就引入擴展檔案)在這個檔下:

    這個方法實現的。

    注意:檔名和目錄名要小寫,control方法檔名與方法名要一致,擴展view檔案時要注意include路徑要變化


資料標籤:
本文標題: 禪道擴展機制
永久網址: https://www.laoziliao.net/doc/1699694088862784
相关資料
Bug強制歸因挿件學習分享
1.找到bug歸因挿件,將外掛程式包壓縮後,在旗艦版安裝外掛程式。2.安裝後會發現在bug詳情頁會顯示歸因按鈕。
標籤:
沒人可以對我的程式碼指指點點,搭子除外!
近期,#搭子是一種新型社交關係#上了熱搜。我們是飯飯之交,而不是泛泛之交。
標籤:
《Linux命令行與shell脚本編程大全》第二十五章學習筆記
1.MySql資料庫mysql程式使用2種不同類型的命令:特殊的mysql命令和標準SQL語句。
標籤:
《Linux命令行與shell脚本編程大全》第十六章
Linux系統和應用程序可以生成超過30個訊號。trap命令允許指定shell腳本要監看並從shell中攔截的Linux訊號。
標籤: