请求.严重:未捕获的 PHP 异常编译错误:无法声明类


request.CRITICAL: Uncaught PHP Exception Compile Error: Cannot declare class

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

/

src/AppBundle/Qrcode.php

namespace AppBundle'Qrcode;
use Endroid'QrCode'QrCode;
class Qrcode
{

/

vendor/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
{

在开发中它运行良好,但在生产上则不行,因为我收到以下错误消息:

请求。严重:未捕获的 PHP 异常 Symfony''Component''Debug''Exception''FatalErrorException: "编译错误: 无法声明类 AppBundle''Qrcode,因为名称是 已经在使用中",见.../src/AppBundle/Qrcode.php第8行。

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

您需要用别名区分类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

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

希望对您有所帮助:-)