Bug(バグ) #3511
Yuya Watanabe さんがほぼ11年前に更新
h3. 概要
opAdaptableUser 内で定義されていないメソッド getMemberId() が用いられている
具体的には下記 31 行目に該当する.
<pre>
lib/user/opAdaptableUser.class.php
28 public function initialize(sfEventDispatcher $dispatcher, sfStorage $storage, $options = array())
29 {
30 parent::initialize($dispatcher, $storage, $options);
31 if ($this->getMemberId() && $this->isTimedOut())
32 {
33 $this->getAttributeHolder()->removeNamespace('opSecurityUser');
34 }
</pre>
この opAdaptableUser の継承関係としては以下の形になるがどのクラスにも getMemberId() が定義されていない.
<pre>
opAdaptableUser > opBaseSecurityUser > sfBasicSecurityUser > sfUser
</pre>
sfUser では __call() が定義されているが user.method_not_found イベントに connect されているものは sfImageHandler のみであり $event->getReturnValue() が返ってくることがないように見える.このあたりが正しい認識か不明なため,問題とならないのであればクローズしてもらって構いません.
<pre>
$ git grep user.method_not_found
lib/plugins/sfImageHandlerPlugin/config/config.php:$this->dispatcher->connect('user.method_not_found', array('sfImageHandlerUser', 'listenToMethodNotFound'));
lib/vendor/symfony/lib/user/sfUser.class.php: $event = $this->dispatcher->notifyUntil(new sfEvent($this, 'user.method_not_found', array('method' => $method, 'arguments' => $arguments)));
</pre>