Moony 0.11.xのプラグインモジュール機能
以前検討していたコンテナ機能だけど、結局「プラグインモジュール」として利用できるように。
Moony::setPluginDir($dir)Moony::setModuleDir($dir)を使用してディレクトリを設定しておくと、そのディレクトリ内のクラスをインクルード、インスタンスをアクションクラス内で取得できる仕組み。特別な設定ファイルは必要ない。
$moony = new Moony; $moony->setModuleDir('/path/to/modules'); ...
フロントコントローラで上記のように設定しておくと、下記のように取得可能:
class Hoge // アクションクラス { /** * @param object $t Moony_Template * @param object $c Moony_Context */ function execute($t, $c) { // /path/to/modules/Foo/Bar.phpをインクルード、 // Foo_Barクラスのインスタンスを取得 $foo_bar = $c->getModule('Foo_Bar'); } }