2016-03-28 8 views
0

ich Komponist auf Linux installiert haben, so habe ich composer.json wie diese bearbeitet:Keen.io php-Client (Klasse nicht gefunden)

{ 
    "name": "keen-io/keen-io", 
    "description": "A PHP library for reporting events to the Keen IO API", 
    "type": "library", 
    "license": "MIT", 
    "keywords": [ 
     "keen io", 
     "analytics" 
    ], 
    "support": { 
     "chat": "https://www.hipchat.com/gIdidQscL" 
    }, 
    "require": { 
     "php":   ">=5.3.3", 
     "ext-mcrypt": "*", 
     "guzzle/guzzle": "~3.7" 
    }, 
    "require-dev": { 
     "phpunit/phpunit": "~3.7.0" 
    }, 
    "homepage": "http://keen.io", 
    "autoload": { 
     "psr-4": { 
      "KeenIO\\": "src/" 
     } 
    }, 
    "autoload-dev": { 
     "psr-4": { 
      "KeenIO\\Tests\\": "tests/Tests" 
     } 
    }, 
    "authors": [ 
     { 
      "name": "Tom Anderson", 
      "email": "[email protected]" 
     }, 
     { 
      "name": "Keith Kirk", 
      "email": "[email protected]", 
      "homepage": "http://kmfk.io" 
     }, 
     { 
      "name": "Michaël Gallego", 
      "email": "[email protected]", 
      "homepage": "http://michaelgallego.fr" 
     } 
    ] 
} 

Dann habe ich diesen Befehl $ composer updateKomponist zu aktualisieren .json und erzeugen ./vendor/autoload.php. und der Zweck dieses JSON ist es, eine Verbindung zu keen.io zu PHP-Client zu verwenden.

Dann codiert ich dieses PHP-Skript:

<?php 


    require_once __DIR__ . '/vendor/autoload.php'; 
​ 
    use KeenIO\Client\KeenIOClient; 


$client = KeenIOClient::factory([ 
    'projectId' => $projectId, 
    'writeKey' => $writeKey, 
    'readKey' => $readKey 
]); 
​ 
?> 

Aber wenn ich das Skript ausführen der Fehler ist:

Fatal error: Class 'KeenIO\Client\KeenIOClient' not found in /opt/bitnami/apache2/htdocs/sandbox/keen.io/test-keen.php on line 9 

-------------- -------------------------------------------------- ----------- ** scirpt.php: **

<?php 

    //* Composer Directory : /htdocs/sandbox/project/KeenClient-PHP/ 

    //* Current Directory : ~/htdocs/sandbox/project/KeenClient-  PHP/script.php 

    //* File_name : script.php 

    require_once __DIR__ .'/vendor/autoload.php'; 

    use KeenIO\Client\KeenIOClient; 


    $client = KeenIOClient::factory([ 
    'projectId' => "Project_ID", 
    'writeKey' => "Write_Key", 
    'readKey' => "Read_Key" 
]); 


?> 

Antwort

1

Das Projekt Ihrer composer.json-Datei ist nicht korrekt. Dieser ist von Keen Library. Sie brauchen etwas wie folgt aus:

{ 
    "require": { 
     "keen-io/keen-io": "~2.5" 
    } 
} 

Dann php composer.phar Update und geben Sie Ihren des Lieferanten/autoload.php Datei auszuführen.

------------------------- BEARBEITEN -------------------- -----

enter image description here

Es funktioniert. Wenn Sie Ihre script.php in einen beliebigen Ordner kopieren, müssen Sie den Pfad require_once ändern, und es wird auch für Sie funktionieren (ich habe es ausgeführt).

+0

Danke für Ihre Antwort, aber wenn ich die script.php in dieses Verzeichnis als diese ~/htdocs/Sandbox/Projekt/KeenClient-PHP/script.php mit der gleichen composer.json wie ich es von github: https : //github.com/keenlabs/KeenClient-PHP. es funktionierte, aber wenn ich script.php in irgendein Verzeichnis setze, werden dort Fehler gezeigt ... – luka

+0

Können Sie script.php zeigen? Es stürzt mit derselben Klasse nicht gefunden Fehler ab? –

+0

Ich werde script.php in der ursprünglichen Antwort post – luka