Ermittelt den Dateisystempfad des installierten Composer-Pakets

8

Wie kann der Dateisystempfad des Composer-Pakets abgerufen werden?

composer.json Beispiel:

%Vor%

Beispiel: $composer->getPath("\Geocoder\HttpAdapter\HttpAdapterInterface");

und zurückgeben als: "/home/me/public_html/vendor/willdurand/geocoder/src/Geocoder/HttpAdapter"

    
foo 30.03.2013, 03:56
quelle

4 Antworten

10

All dies basiert auf der Annahme, dass Sie tatsächlich über Pakete und nicht über Klassen sprechen (die im Beispiel erwähnt, aber in der Frage nicht verlangt werden).

Wenn Sie das Objekt Composer haben, können Sie den Pfad des Lieferantenverzeichnisses vom Objekt Config abrufen:

%Vor%

$vendorPath sollte jetzt /home/me/public_html/vendor/ enthalten.

Es sollte nicht zu schwer sein, den Rest des Pfades von dort zu erstellen, da Sie bereits den Paketnamen haben.

Wenn sich das zu platt anfühlt oder Sie die Logik nicht schreiben wollen, gibt es eine andere Lösung. Du könntest alle Pakete holen, iterieren, bis du das richtige Paket gefunden hast und den Pfad davon abrufst:

%Vor%

$installPath sollte nun /home/me/public_html/vendor/willdurand/geocoder

enthalten     
Potherca 11.01.2015 20:04
quelle
1

Try ReflectionClass :: getFileName - Ruft den Dateinamen der Datei ab, in der die Klasse definiert wurde. Ссылка

Beispiel:

%Vor%

Oder Sie können dies verwenden:

%Vor%

Die erste Methode versucht, die Klasse zu laden und den geladenen Klassenpfad zurückzugeben. Die zweite Methode gibt den Pfad von der Composer-Datenbank ohne automatische Klassenladefunktion zurück.

    
Ильдар 04.04.2017 14:43
quelle
0

Hier ist meine Lösung, um den Herstellerpfad ohne das $ composer-Objekt zu erhalten:

%Vor%     
David Vander Elst 21.04.2017 13:04
quelle
-1

Ich bin mir nicht sicher, ob das Folgende der richtige Weg ist, denn der Komponist ändert sich so schnell.

Wenn Sie diesen Befehl ausführen:

%Vor%

Es wird ein Klassenmatrix-Array in dieser Datei erstellt

%Vor%

mit diesem Format "Klassenname" = & gt; Dateipfad.

So ist der Dateipfad einer gegebenen Klasse einfach zu finden. Wenn Sie das Skript im Stammordner Ihres Projekts erstellen, können Sie Folgendes tun:

%Vor%     
Chuan Ma 30.03.2013 10:00
quelle

Tags und Links