FuelPHPのモジュールの使い方を調べたので自分なりにまとめた内容をメモ。
モジュール化すると何がメリットなのか?
- EC-CUBEやWrodpressなど、管理サイトとフロントサイトを一つのサイト内で実現しやすそう
- モジュールを分割することで機能ごとに作成者をわけやすそう
- 逆に、共通部分のみをモジュール化することで別プロジェクトでも再利用しやすそう
とかかなぁ。。。あくまで個人の見解ですのであしからず。
本題のモジュール化ってどうやるのかですが、モジュール化のやり方は参考サイトをみると書いてあるので
ここでは、ちょっと詰まったとこをメモしていきます。
1.モジュール化したときのnamespaceの指定
APPPATH
┗modules
┗module1
┣classes
┃ ┣controller
┃ ┣model
┃ ┗presenter
┣config
┣lang
┗views
この場合、module1配下のクラスには下記のnamespaceを先頭へ記述します。
1 |
namespace module1; |
この際、namespaceを付与しているクラスはFuel\Core配下のクラスや、モジュール外のクラスを使用する場合は
namespaceがmodule1ではないので必ず¥を付けます。
1 2 |
Presenter::forge('login/index'); // NG module1/classes/presenter.php を指定しています。 \Presenter::forge('login/index'); // OK fuel/core/presenter.php を指定しています。 |
逆にmodule1内のクラスを使用する場合は¥を付けてはいけません。
1 2 |
Model_Users::forge('login/index'); // OK module1/classes/model/users.php を指定しています \Model_Users::forge('login/index'); // NG app/classes/model/users.php を指定しています |
2.モジュール内の辞書ファイルを設定ファイルで指定
モジュールを常に読み込む設定を有効にします。
app/config/config.php
1 |
'modules' => array('module1'), |
つづいて、辞書ファイルの設定を記述します。
1 2 3 |
'language' => [ 'module1::labels' => 'label', ], |
これで、module1/lang/ja/labels.phpを読み込むことができます。
1 |
echo __('label.xxxxx'); |
とりあえず、今回はここまで。
参考サイト
http://fuelphp.jp/docs/1.7/general/modules.html
http://qiita.com/inoinojp/items/30e5c61e67115ad00dd9
http://inter-arteq.com/fuelphp%E3%81%AEapp%E3%82%92%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E5%8C%96/
One comment to this article
Pingback:
【FuelPHP】Moduleでのリソースについて | プログラマのめもぶろぐ