加载和使用不带名称空间且不使用'use'的PHP类

问题描述 投票:0回答:1

是否可以为没有名称空间的类创建一个包,并在不使用语言构造use的情况下在我的脚本中实例化它?

例如:

<?php
require_once 'vendor/autoload.php';
// use \Something_MyClass; (I don't want to use this 'use')
$mc = new MyClass();     // instead of $mc = new Something\MyClass()
?>
php composer-php autoload
1个回答
0
投票

不可能。

即使您向spl_autoload_register注册了一个函数,该函数在new MyClass()上将包含一个带有class Something_MyClass的文件,该行也会失败,因为您正试图实例化一个不存在的类。] >

您最好的做法是将PHP升级到5.3(尽管到目前为止,受支持的最低版本是7.1,我强烈建议您去那里)。当然,您可以创建自己的软件包管理器(如YvesLeBorg在评论中建议的那样),但这将使您更深入地了解遗留问题,并使将来更加难以维护和升级PHP,更不用说潜在的错误和其他问题。维护开销。

© www.soinside.com 2019 - 2024. All rights reserved.