ich vor kurzem mit Composer aktualisiert. Nach dem Update bekomme ich einen Fehler in der PHP-Datei, wo ich Daten an die Gegensprechanlage sende. Dies ist der Fehler:PHP-Intercom funktioniert nicht nach der Aktualisierung Komponist
Fatal error: Class 'Intercom\IntercomBasicAuthClient' not found in <filename>
ich ein ähnliches Problem hier Symfony Exception (Class not found) only on development and production servers gefunden. Aber konnte nicht genau verstehen, wie man das Problem löst. Ich versuchte mit Intercom in Großbuchstaben und Kleinbuchstaben, aber das Problem ist nicht gelöst.
In meinem installed.json fand ich dies:
"autoload": {
"psr-4": {
"Intercom\\": [
"src"
]
}
}
Und das ist die Verzeichnisposition von Intercom-Dateien:
/public_html/vendor/intercom/intercom-php/src
Als ich in mehr Komponisten graben Datei (versuchte, zu verstehen, wie Klassen sind enthalten und alle), stieß ich auf diesen Code in 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 und phpamqplib sind zwei Bibliotheken, die ich mit Composer installiert habe, und Intercom fehlt hier.
Also ich bin total verwirrt, was ist das eigentliche Problem. Ist die Intercom-Bibliothek in autoload_namespace nicht vorhanden oder handelt es sich um das Großbuchstabe-Kleinbuchstabe oder was?
Edit:
Das habe ich in autoload_psr4.php gefunden
<?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'),
);
Und das ist, wie ich Intercom bin auch in meinem PHP-Datei:
use Intercom\IntercomBasicAuthClient;