我使用的是我和作曲家一起下载的一个名为Phean秸秆的库。我正在运行以下脚本:
<?php
//... some unrelated code
require_once('vendor/autoload.php'); //loading the autoload file from composer
use Pheanstalk\Pheanstalk; //using the namespace
$pheanstalk = new Pheanstalk('127.0.0.1'); //initiating an object
//... some unrelated code
?>出现以下错误:
Fatal Error: Class 'Pheanstalk\Pheanstalk' not found in /opt/lampp/htdocs/project_zero/index.php on line 16第16行为:$pheanstalk = new Pheanstalk('127.0.0.1');
问题:,为什么我会收到这个错误?上面的脚本基本上是从使用示例中复制出来的,给出了Pheanstalk页面:https://github.com/pda/pheanstalk。
我的composer.json文件的内容如下:
{
"require": {
"pda/pheanstalk": "2.1.1"
}
}编辑:
使用时出现新错误:
use \Pheanstalk_Pheanstalk错误:
Warning: The use statement with non-compound name 'Pheanstalk_Pheanstalk' has no effect in /opt/lampp/htdocs/project_zero/index.php on line 14
Fatal error: Class 'Pheanstalk' not found in /opt/lampp/htdocs/project_zero/index.php on line 17发布于 2016-05-21 23:38:23
根据您的composer.json,您使用的是2.1.1:https://github.com/pda/pheanstalk/blob/2.1/classes/Pheanstalk/Pheanstalk.php版本
类名是Pheanstalk_Pheanstalk而不是Pheanstalk\Pheanstalk:此时它不兼容PSR-4。
所以你应该用:
<?php
use \Pheanstalk_Pheanstalk;当你在一个命名空间的文件中。如果在文件中不使用命名空间,则不需要“导入”类。
如果使用名称空间,反斜杠很重要,因为2.x版本中的类不是名称空间。
更新
所以你的代码应该是这样的:
<?php
//... some unrelated code
require_once('vendor/autoload.php'); //loading the autoload file from composer
$pheanstalk = new Pheanstalk_Pheanstalk('127.0.0.1'); //initiating an object
//... some unrelated code
?>就这样。
https://stackoverflow.com/questions/37368944
复制相似问题