Re: coreのクラスをパッケージでオーバーライド

2013年10月5日 at 23:50

パッケージの場合は置くだけではダメで、パッケージのcontroller.phpのon_startメソッドで指定する必要があります。

class MyPackage extends Package {
...
public function on_start() {
$env = Environment::get();
$env->overrideCoreByPackage('helpers/file.php', $this);
}
}


ただし、完全ではありません。concrete/dispatcher.php に書かれている処理の中で concrete/startup/packages.php を読み込んでいる部分でパッケージがロードされていますが、それより以前にすでに使われているクラスはオーバーライドするには遅いんです…。Fileヘルパーはそれに該当します。なので、パッケージからのオーバーライドは現状無理のようです。

Re: coreのクラスをパッケージでオーバーライド

2013年10月6日 at 0:18
なるほど。了解しました。
残念です。
ありがとうございました。