麻烦使用PHP包

时间:2018-05-31 15:24:32

标签: php

我安装了以下作曲家包: 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

我如何加载这个愚蠢的东西????

2 个答案:

答案 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;