2016-08-08 54 views
0

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; 

Antwort

0

ich es selbst herausgefunden. Das Problem war mit PHP-Version. Ich benutze PHP-5.5 und die Intercom-Bibliothek erfordert unbedingt PHP-Version> = 5.6.

Ich habe meine eigene Bibliothek mit Intercom-APIs erstellt, damit sie für php-5.5 funktioniert.