2016-04-20 20 views
5

Po raz pierwszy próbuję załadować pakiet Composer, który nie korzysta z usług dostawcy usług Laravel lub elewacji.Nie można załadować pakietu Non-Laravel Composer

próbuję zainstalować ten pakiet: https://github.com/mollie/mollie-api-php

śledzę kroki, aby zainstalować pakiet z kompozytorem.

Na szczycie moim kontrolera I dodaje:

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

pojawia się następujący błąd:

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

Nie można odnaleźć pliku. Mimo że ścieżka w błędzie jest ścieżką, w której znajduje się klasa. Czy jest więcej kroków, które powinienem zrobić?

Struktura pakietu:

enter image description here

composer.json z pakietu:

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

Aktualizacja: Moje kontroler ma ten nazw

namespace App\Http\Controllers; 

Tak więc, kiedy po prostu próbuję zmienić moją klasę, oczywiście nie mogę znaleźć tej klasy w tej przestrzeni nazw. Więc jak mogę ignorować nazw dla 1 klasy

Bo to nie będzie działać wewnątrz tego kontrolera:

$mollie = new Mollie_API_Client; 
+5

Nie musisz wymagać paczki, kompozytor ją załaduje. Po prostu użyję go – 0x13a

+0

. Zwykle używałbym 'use' z przestrzenią nazw do klasy, którą chcę, ale ten pakiet nie ma przypisanych nazw klas? – haakym

+1

Proszę przeczytać w pliku Readme: * Wymaganie załączonego autoloadera. Jeśli używasz Composer, możesz pominąć ten krok. * Więc po prostu go zaktualizuj, aby go użyć – haakym

Odpowiedz

5

Jak wspomniano w komentarzach, Kompozytor obsługuje automatyczne ładowanie dla Ciebie - ręcznie ponownie wymagając to isn” Jest to konieczne i może powodować problemy.

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

Można odwoływać się do klasy z wiodącym \, tj new \Mollie_API_Client, który powie PHP wyglądać w korzeniu zamiast nazw Twojego sterownika.

Możesz również umieścić use Mollie_API_Client; na górze pliku, aby osiągnąć podobny efekt. Zobaczysz instrukcje use na górze wielu plików Laravel z tego powodu.

Powiązane problemy