PHP-更新作曲家后对讲机不工作
PHP-intercom not working after updating composer
我最近使用作曲家进行了更新。更新后,我在 php 文件中收到错误,我正在向对讲机发送数据。这是错误:
Fatal error: Class 'Intercom\IntercomBasicAuthClient' not found in <filename>
我在这里发现了类似的问题Symfony Exception (Class not found) only on development and production servers。但无法确切了解如何解决该问题。
我尝试使用大写和小写的对讲机,但问题没有解决。
在我的 installed.json 中,我发现了这个:
"autoload": {
"psr-4": {
"Intercom\": [
"src"
]
}
}
这是对讲文件的目录位置:
/public_html/vendor/intercom/intercom-php/src
当我深入研究更多的作曲家文件时(试图了解 类 是如何包含的等等),我在 autoload_namespaces.json
中看到了这段代码
<?php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'libphonenumber' => array($vendorDir . '/giggsey/libphonenumber-for-php/src'),
'PhpAmqpLib' => array($vendorDir . '/php-amqplib/php-amqplib'),
);
libphonenumber和phpamqplib是我用composer安装的两个库,这里缺少intercom
所以我完全糊涂了,真正的问题是什么。
autoload_namespace 中是否缺少对讲库,或者是大小写问题还是什么。
编辑:
这是我在 autoload_psr4.php
中找到的
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Psr\Http\Message\' => array($vendorDir . '/psr/http-message/src'),
'JmesPath\' => array($vendorDir . '/mtdowling/jmespath.php/src'),
'Intercom\' => array($vendorDir . '/intercom/intercom-php/src'),
'GuzzleHttp\Psr7\' => array($vendorDir . '/guzzlehttp/psr7/src'),
'GuzzleHttp\Promise\' => array($vendorDir . '/guzzlehttp/promises/src'),
'GuzzleHttp\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
'Aws\' => array($vendorDir . '/aws/aws-sdk-php/src'),
);
这就是我在 php 文件中包含对讲机的方式:
use Intercom\IntercomBasicAuthClient;
我自己想出来了。
问题出在 PHP 版本上。我正在使用 php-5.5 并且对讲库严格要求 PHP 版本 >= 5.6 .
使用 Intercom API 创建了我自己的库,使其适用于 php-5.5。
我最近使用作曲家进行了更新。更新后,我在 php 文件中收到错误,我正在向对讲机发送数据。这是错误:
Fatal error: Class 'Intercom\IntercomBasicAuthClient' not found in <filename>
我在这里发现了类似的问题Symfony Exception (Class not found) only on development and production servers。但无法确切了解如何解决该问题。 我尝试使用大写和小写的对讲机,但问题没有解决。
在我的 installed.json 中,我发现了这个:
"autoload": {
"psr-4": {
"Intercom\": [
"src"
]
}
}
这是对讲文件的目录位置:
/public_html/vendor/intercom/intercom-php/src
当我深入研究更多的作曲家文件时(试图了解 类 是如何包含的等等),我在 autoload_namespaces.json
中看到了这段代码<?php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'libphonenumber' => array($vendorDir . '/giggsey/libphonenumber-for-php/src'),
'PhpAmqpLib' => array($vendorDir . '/php-amqplib/php-amqplib'),
);
libphonenumber和phpamqplib是我用composer安装的两个库,这里缺少intercom
所以我完全糊涂了,真正的问题是什么。 autoload_namespace 中是否缺少对讲库,或者是大小写问题还是什么。
编辑:
这是我在 autoload_psr4.php
中找到的<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Psr\Http\Message\' => array($vendorDir . '/psr/http-message/src'),
'JmesPath\' => array($vendorDir . '/mtdowling/jmespath.php/src'),
'Intercom\' => array($vendorDir . '/intercom/intercom-php/src'),
'GuzzleHttp\Psr7\' => array($vendorDir . '/guzzlehttp/psr7/src'),
'GuzzleHttp\Promise\' => array($vendorDir . '/guzzlehttp/promises/src'),
'GuzzleHttp\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
'Aws\' => array($vendorDir . '/aws/aws-sdk-php/src'),
);
这就是我在 php 文件中包含对讲机的方式:
use Intercom\IntercomBasicAuthClient;
我自己想出来了。 问题出在 PHP 版本上。我正在使用 php-5.5 并且对讲库严格要求 PHP 版本 >= 5.6 .
使用 Intercom API 创建了我自己的库,使其适用于 php-5.5。