Yii2 模組 自訂模組目錄

來源:互聯網
上載者:User
關鍵字 php yii2
請教一下各位,yii2的模組建立後(比如如下的forum模組),官方的標準是如下目錄結構。
請問可以在該模組下手動建立一個目錄嗎?比如common目錄,如果可以的話調用該目錄裡的類檔案與Yii1.1中的components一樣嗎?
現在想把該模組通用的類放到該目錄,就像YII1.1中的components目錄一樣,多謝了

forum/    Module.php                   模組類檔案    controllers/                 包含控制器類檔案        DefaultController.php    default 控制器類檔案    models/                      包含模型類檔案    views/                       包含控制器視圖檔案和布局檔案        layouts/                 包含布局檔案        default/                 包含DefaultController控制器視圖檔案            index.php            index視圖檔案

回複內容:

請教一下各位,yii2的模組建立後(比如如下的forum模組),官方的標準是如下目錄結構。
請問可以在該模組下手動建立一個目錄嗎?比如common目錄,如果可以的話調用該目錄裡的類檔案與Yii1.1中的components一樣嗎?
現在想把該模組通用的類放到該目錄,就像YII1.1中的components目錄一樣,多謝了

forum/    Module.php                   模組類檔案    controllers/                 包含控制器類檔案        DefaultController.php    default 控制器類檔案    models/                      包含模型類檔案    views/                       包含控制器視圖檔案和布局檔案        layouts/                 包含布局檔案        default/                 包含DefaultController控制器視圖檔案            index.php            index視圖檔案

沒什麼經驗,不過從你列出的預設結構來看直接建立目錄應該是無法自動載入的,需要添加一些設定,類似 namespace => 'Common', path => 'forum/common',具體怎麼做參考一下models或者controllers的配置就行了。

這種相當於加組件類,主要是把自己添加的類路徑和參數, 在config目錄中的main.php進行配置,這樣的就可以自動載入,可以仿照db配置connection時的樣子 :
(主要應該是自訂class的路徑 例如可以是forumcommonutil。對應util類的命名空間可以是namespace forumcommon)

[    'components' => [        // 使用類名註冊 "cache" 組件        'cache' => 'yii\caching\ApcCache',        // 使用配置數組註冊 "db" 組件        'db' => [            'class' => 'yii\db\Connection',            'dsn' => 'mysql:host=localhost;dbname=demo',            'username' => 'root',            'password' => '',        ],        // 使用函數註冊"search" 組件        'search' => function () {            return new app\components\SolrService;        },    ],]

多謝各位。
發現可以通過命名空間解決這一個問題。
比如建立一個test目錄,然後統一為該目錄下所有的類檔案設定一個命名空間。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.