我使用以下两个同名的类。
/src/AppBundle/Qrcode.php
namespace AppBundleQrcode;
use EndroidQrCodeQrCode;
class Qrcode
{
和
/vendor/Endroid/.../Qrcode.php
namespace EndroidQrCode;
use EndroidQrCodeExceptionsDataDoesntExistsException;
use EndroidQrCodeExceptionsVersionTooLargeException;
use EndroidQrCodeExceptionsImageSizeTooLargeException;
use EndroidQrCodeExceptionsImageFunctionUnknownException;
use ReflectionFunction;
class QrCode
{
在开发中它运行良好,但在生产上则不行,因为我收到以下错误消息:
请求。严重:未捕获的 PHP 异常 Symfony\Component\Debug\Exception\FatalErrorException: "编译错误: 无法声明类 AppBundle\Qrcode,因为名称是 已经在使用中",见.../src/AppBundle/Qrcode.php第8行。
我不明白为什么它不起作用。命名空间不同,并且它适用于开发部分...谢谢
您需要用别名区分类QrCode
因为类被加载了两次。
在, /src/AppBundle/Qrcode.php
namespace AppBundleQrcode;
use EndroidQrCodeQrCode as EndroidQr // assign alias here to differnciate class
在此之后,new EndroidQr();
将实例化一个EndroidQrCodeQrCode
类
注意:- 如果要在文件中加载一个具有相同类名的类,则需要分配别名。
希望对您有所帮助:-)