EthnaのActionClassでControllerオブジェクトを呼び出す

Twitter ツイート Hatena Bookmark ブックマーク

EthnaのActionフォームからwww(ドキュメントルート)のパスを知りたいおもいますた。
Controllerクラスを見ていると、

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
var $directory = array(
        'action'        => 'app/action',
        'action_cli'    => 'app/action_cli',
        'action_xmlrpc' => 'app/action_xmlrpc',
        'app'           => 'app',
        'plugin'        => 'app/plugin',
        'bin'           => 'bin',
        'etc'           => 'etc',
        'filter'        => 'app/filter',
        'locale'        => 'locale',
        'log'           => 'log',
        'plugins'       => array(),
        'template'      => 'template',
        'template_c'    => 'tmp',
        'tmp'           => 'tmp',
        'view'          => 'app/view',
        'www'           => 'www',
    );```

こんなプロパティがあったので、なんとかControllerのオブジェクトを呼び出して取得してみようと思ったわけです。  
とりあえずbackendの[getController][1]メソッドでControllerオブジェクトを呼び出してControllerの[getDirectory][2]メソッドでパスを取得してみることに。

function perform() {

    $controller = $this->backend->getController();
    print $controller->getDirectory('www');
    exit();

}```

実行結果↓

1
2
3
4
5
6
7
8
/xxx/xxx/blog/www```

ちゃんとパスが取得できたー!!  
しかーし、なんかいちいちControllerを呼び出して取得するってのが微妙だなぁと。  
なんかよい方法あったら教えてください。

 [1]: http://ethna.jp/doc/Ethna/Ethna_Backend.html#getController
 [2]: http://ethna.jp/doc/Ethna/Ethna_Controller.html#getDirectory
comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。