返信ありがとうございます。
教えて頂いた通りにやってみたのですが、どうもうまくいきませんでした。
キャッシュの影響を気にしながら、いろいろ試してみたところ、
application/blocks/external_form/controllers/my_form.php // (1)
application/blocks/external_form/form/controller/my_form.php // (2)
の両方に配置したときに限って、(2)が呼び出されるようです。
このとき(1)の名前空間は、(1)の位置に対応したものでも(2)と同じものでも変わりがないようです。
で、やっぱり気になるのが
concrete/blocks/external_form/controller.php
ですが、この中で最初の投稿でも引用した(77行目からのgetController()内)、
return \Core::make(
overrideable_core_class(
'Block\\ExternalForm\\Form\\Controller\\' . $class,
DIRNAME_BLOCKS . '/external_form/controllers/' . $this->filename
)
);
の部分によると、ファイルの位置の指定は
/external_form/controllers/
ですが、名前空間は、
Block\\ExternalForm\\Form\\Controller\\
になっています。
このままでは、(1)のファイルを検索した後に(2)のクラスを生成してしまうように思えるのですが、どうでしょうか?
Posted on 1月 20, 2015 at 11:57 午後
|