Controllerも階層深くできるし、いけるっしょと考えていました。
試す
とあるTableクラス
<?php // ... $this->addBehavior('Register', [ 'className' => 'App\Model\Behavior\Users\Register' ]); // ...
ディレクトリとnamespaceを変更したBehavior
<?php namespace App\Model\Behavior\Users; // <- ① // ... class RegisterBehavior extends Behavior { // ...
これでいけると思った。
しかし、色々不具合が。
PHPStormで開発していますが、①のnamespaceのところを定義すると、Declaration of referenced constant is not found in built-in library and project files.
ていうエラーが波線が表示されます。
よくわかりませんが、補完で定義すると、治りました。イミフ。
また、動作でもエラーが発生しました。
Missing Behavior
わかりやすいですね。見つからない。なんでや!
色々コアのソースを覗いてみたけど、namespaceをパスとして認識しないようになっているので、ロードするディレクトリを増やさないとダメなんだろうけど、よくわからん。
つーか、ドキュメントに明記されていた
https://book.cakephp.org/3.0/ja/orm/behaviors.html
ビヘイビアクラスは App\Model\Behavior 名前空間または MyPlugin\Model\Behavior 名前空間に存在する必要がある。
( ゚д゚)・・・
なるほど。
おわり