我安装了以下作曲家包:
composer require weew/timer
...
(https://github.com/weew/timer)
Timer源中的命名空间是:namespace Weew\Timer;
我在文件顶部有这个自动加载代码:
require_once __DIR__ . '/vendor/autoload.php';
但是,在尝试使用它时......
使用此代码时:
use Weew\Timer;
结果:Class 'Weew\Timer' not found
使用此代码时:
use weew\timer;
结果:Class 'weew\timer' not found
use
时:
结果:Class 'Timer' not found
使用此代码时:
use Timer;
结果:The use statement with non-compound name 'Timer' has no effect
我如何加载这个愚蠢的东西????
答案 0 :(得分:3)
命名空间为Weew\Timer
,类为Timer
。尝试:use Weew\Timer\Timer;
答案 1 :(得分:2)
名称空间与类名不同。所以当你说:
Timer源中的命名空间是:
namespace Weew\Timer;
这意味着您应该引用以<{1}}开始的类(有时是函数和常量)。在这种情况下,声明为Weew\Timer\
,因此全名为class Timer
。
但是,您尝试引用名为 Weew\Timer\Timer
未找到类'Weew \ Timer'
Weew\Timer
语句是可选的,因此首先使用完整的类名:
use
然后,为了保存完整的输入,您可以添加$timer = new Weew\Timer\Timer;
语句,为类或命名空间提供文件中的本地别名,例如
use
或:
use Weew\Timer as T;
$timer = new T\Timer;
常见的情况是将命名空间(或类)别名为最后一节,因此有一个简短的语法:
use Weew\Timer\Timer as T;
$timer = new T;
或:
use Weew\Timer; // same as "use Weew\Timer as Timer;"
$timer = new Timer\Timer;