2016-04-20 3 views
5

Es ist das erste Mal, dass ich versuche, ein Composer-Paket zu laden, das keinen Laravel-Dienstanbieter oder eine Fassade verwendet.Kann kein Non-Laravel Composer-Paket laden

Ich versuche, dieses Paket zu installieren: https://github.com/mollie/mollie-api-php

ich die Schritte befolgt haben das Paket mit Composer zu installieren.

An der Spitze meines Controller fügte ich hinzu:

require_once base_path('vendor/Mollie/API/Client.php'); 

bekomme ich folgende Fehlermeldung:

main(): Failed opening required '../vendor/Mollie/API/Client.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.0/lib/php')

Es kann die Datei nicht finden. Obwohl der Pfad im Fehler der Pfad ist, in dem sich die Klasse befindet. Gibt es mehr Schritte, die ich tun sollte?

Struktur des Pakets:

enter image description here

composer.json aus dem Paket:

"autoload": { 
    "psr-0": { 
     "": "src/" 
    } 

Update: Mein Controller hat diesen Namensraum

namespace App\Http\Controllers; 

Also, wenn ich gerade versuche, meine Klasse neu zu erstellen, kann es offensichtlich diese Klasse in diesem Namespace nicht finden. Wie also ignoriere ich den Namespace für 1 Klasse

Da dies nicht in diesem Controller funktionieren:

$mollie = new Mollie_API_Client; 
+5

Sie müssen das Paket nicht benötigen, Composer lädt es für Sie. Benutze es einfach – 0x13a

+0

Normalerweise würde ich 'Use' mit dem Namespace zu der Klasse verwenden, die ich will, scheint dieses Paket nicht seine Klassen Namespace obwohl? – haakym

+1

Bitte beachten Sie im Readme: * Benötigen Sie den mitgelieferten Autoloader. Wenn Sie Composer verwenden, können Sie diesen Schritt überspringen. * Also nur neu es zu verwenden – haakym

Antwort

5

Wie in den Kommentaren erwähnt, Komponist übernimmt den automatischen Laden für Sie - manuell neu erfordern es isn‘ t notwendig und kann tatsächlich Probleme verursachen.

my controller has a namespace, so it tries to load that class from the namespace, how do i ignore it for 1 class?

Sie die Klasse mit einem führenden \ verweisen kann, das heißt new \Mollie_API_Client, die PHP in der Wurzel schauen sagen wird anstelle des Controllers Namespace.

Sie können auch use Mollie_API_Client; an der Spitze der Datei setzen, um eine ähnliche Sache zu erreichen. Aus diesem Grund sehen Sie oben in vielen Laravel-Dateien use Anweisungen.