H5W3
当前位置:H5W3 > 其他技术问题 > 正文

请教composer psr-4加载问题

我在composer.json文件里加入

"autoload" : {
"files" : [
"src/app/functions.php"
],
"psr-4" : {
"App\\" : "src/app",
"Portal\\" : "src/portal",
"SeeKafka\\": "src/SeeKafka"
}
}

composer update后autoload_psr4.php文件:

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'SeeKafka\\' => array($baseDir . '/src/SeeKafka'),

然后使用:

namespace App\Api\Glp;
use SeeKafka\Lite;
class User
{
public function kafka(){
$KafKa_Lite = new Lite("127.0.0.1,localhost");
// 设置一个Topic
$KafKa_Lite->setTopic("glp");
// 单次写入效率ok  写入1w条15 毫秒
$Producer = $KafKa_Lite->newProducer();
// 参数分别是partition,消息内容,消息key(可选)
// partition:可以设置为KAFKA_PARTITION_UA会自动分配,比如有6个分区写入时会随机选择Partition
$Producer->setMessage(0, "hello");
}
报错:
**Fatal error**: Uncaught Error: Class 'SeeKafkaLite' not found in /www/xxx/glp/src/app/Api/Glp/User.php:48 Stack trace: #0 [internal function]:

回答

卧槽,奇怪一逼

"psr-4" : {
            "App\\" : "src/app",
            "Portal\\" : "src/portal",
            "SeeKafka\\": "src/SeeKafka"
        }

改成

"psr-4" : {
            "App\\" : "src/app",
            "Portal\\" : "src/portal",
            "SeeKafka\\": "src/seekafka"
        }

就可以了 为什么目录名字不能大写?

linux系统默认区分大小写,对于php而言变量名区分大小写。最经济的做法是保持大小写一致,包括文件目录名字符串。

未经允许不得转载:H5W3 » 请教composer psr-4加载问题

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址