EC-CUBE / EC-CUBE/ec-cube

Entityファイル内のclass_exists

Open
#4,718 4 comments 2 reactions 0 assignees View on GitHub
improvement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.