Entityファイル内のclass_exists
- Dominant language
- PHP
- Stars
- 788
- Forks
- 719
- Avg merge
- 4d 4h
- Merged PRs (30d)
- 39
Description
## 概要(Overview)
``` php
if (class_exists(Hoge::class)) {
return;
}
class Hoge extends AbstractEntity
{
}
```
カスタマイズEntityを上記のように記述し、更にそのproxyを生成した際に下記のようなコードとなってしまいました。
``` php
return;
class Hoge extends AbstractEntity
{
}
```
EntityProxyServiceを確認したところ、classの前にあるifを削除するようになってます。恐らく```class_exists(Hoge::class)```で元のファイルがautoloadされることを回避するための処置かと思いますが、```class_exists(Hoge::class, false)```にしてifの削除は行なわないようにしてはどうでしょうか。
https://www.php.net/manual/ja/function.class-exists.php
## 期待する内容(Expect) or 要望 (Requirement)
proxy生成時のif削除ロジックを削除の上で
``` php
if (class_exists(Hoge::class, false)) { // 早期リターンの書き方でも
return;
}
if (!class_exists(Hoge::class, false)) { // ネストする書き方でも
class Hoge extends AbstractEntity
{
}
}
```
Contributor guide
Assessment
This issue has not been assessed yet.