ヘルパーからコンポーネントを呼び出す方法がよくわからなくて調べた。
<?php $this->view->controller->HogeComponent->method(); ?>
てのがあったが、これはCakePHP1系の場合のようだ。
2系だとたとえば以下のようにするようだ。
<?php SessionComponent::read('Auth.User.id'); ?>
が、この呼び方、推奨されないらしい。
Non-static methodのワーニングが出る。
たぶん
http://php.net/manual/ja/migration56.deprecated.php
これが原因。
ということでもう一度調べなおす。
$session = new SessionComponent(new ComponentCollection()); $session->read('Auth.User.id');
これが正しい使い方みたいです。
うーん。ComponentCollection()って何ぞや、とみてみたら、CakePHPで自動的によろしくやってくれて、ロードしてくれるクラスみたい。
ほかにもHelperCollectionとかいろいろあるみたい。
ちなみに
FormHelper::input(); みたいに、自分から派生したヘルパーをこの呼び方で呼び出しても警告とかでない。
うーーーん。そういうものなのか?
PHPはC言語とかとちがってちゃんとした言語の仕様書がないから、ほんとに困る。