ariddlestone / ariddlestone/phpstan-cakephp2

Undefined method appears when Component and Model have the same name

オープン
#29 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
PHP
スター
2
フォーク
3
PR マージ指標
30日以内にマージされた PR はありません

説明

Hi.

Thanks for this brilliant extension first of all.

I'm working with project where all Models don't have `Model` suffix. Like described in the official documentation (https://book.cakephp.org/2/en/models.html#understanding-models)

So in case we have Component and Model with the same name it leads to `Call to an undefined method BasicComponent::some_method`.

Code sample:
```php
Basic->some_method();
}
}
```

As I can see component service is setup first so probably it found `BasicComponent` and tries to look method inside of it only and doesn't take into account that models is also exists.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

BasicComponent、Basic model、FakeController の reproducer から始め、コンポーネントとモデルが同じ名前を共有する場合に resolver が $this->Basic をどのように解決するかを追跡します。controller の $uses 宣言の処理を確認します。この例の回帰ケースを用意し、undefined-method エラーを発生させずにモデルメソッドが認識されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
php
領域
tooling
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。