request.CRITICAL:未捕获的PHP异常编译错误:无法声明类

时间:2016-03-10 11:57:08

标签: php symfony

我使用以下两个同名的类。

/src/AppBundle/Qrcode.php

namespace AppBundle\Qrcode;

use Endroid\QrCode\QrCode;

class Qrcode
{

/供应商/ Endroid /.../ Qrcode.php

namespace Endroid\QrCode;

use Endroid\QrCode\Exceptions\DataDoesntExistsException;
use Endroid\QrCode\Exceptions\VersionTooLargeException;
use Endroid\QrCode\Exceptions\ImageSizeTooLargeException;
use Endroid\QrCode\Exceptions\ImageFunctionUnknownException;
use ReflectionFunction;

class QrCode
{

在dev上它运行良好但不在prod上,因为我收到以下错误消息:

  

request.CRITICAL:未捕获的PHP异常       Symfony \ Component \ Debug \ Exception \ FatalErrorException:“编译错误:       无法声明类AppBundle \ Qrcode,因为名称是       已经在使用“at ... / src / AppBundle / Qrcode.php第8行。

我不明白为什么它不起作用。命名空间是不同的 它适用于开发部分...... 感谢

1 个答案:

答案 0 :(得分:1)

您需要使用别名来区分类,因为QrCode类已加载两次。

在,/src/AppBundle/Qrcode.php

namespace AppBundle\Qrcode;

use Endroid\QrCode\QrCode as EndroidQr // assign alias here to differnciate class

在此之后,new EndroidQr();将实例化Endroid\QrCode\QrCode

注意: - 如果要在具有相同类名的文件中加载一个类,则需要指定别名。

希望它会对你有所帮助: - )