Eigenes Projekt über Composer

8

Ich habe einige Libraries über Composer geladen, und ich frage mich, ob es möglich ist, eine eigene Library in der / vendor map hinzuzufügen und dann den Composer Autoloader zu laden? Die Struktur wäre etwas wie / vendor / mylibrary / und dann ein Namespace mylibrary.

Wäre das möglich? Wäre es auch möglich, dem Composer Autoloader eine andere Map hinzuzufügen? Wie zum Beispiel / app / src / und dann alle Klassen in diesem Ordner laden lassen? Oder muss ich dafür einen eigenen Lader bauen?

Danke

    
Moose Moose 22.03.2013, 16:12
quelle

3 Antworten

7

Lesen Sie die Komponentendokumentation :

  

Sie können sogar Ihren eigenen Code zum Autoloader hinzufügen, indem Sie composer.json ein Autoload-Feld hinzufügen.

%Vor%      

}

     

Composer registriert einen PSR-0-Autoloader für den Acme-Namespace.   Sie definieren eine Zuordnung von Namespaces zu Verzeichnissen. Das src-Verzeichnis befindet sich in Ihrem Projektstamm auf der gleichen Ebene wie das Lieferantenverzeichnis. Ein Beispieldateiname wäre src / Acme / Foo.php, das eine Acme \ Foo-Klasse enthält.

     

Nachdem Sie das Autoload-Feld hinzugefügt haben, müssen Sie die Installation erneut ausführen   Erstelle die Datei vendor / autoload.php neu.

Sie müssen also im Grunde PSR-0 folgen , und sagen Sie dem Komponisten, wo Sie Ihre Bibliothek finden können, indem Sie diese Zeile zu Ihrer composer.json

hinzufügen     
fiunchinho 22.03.2013, 16:23
quelle
2

Ja. Sie können es erreichen. Konfigurieren Sie Ihre Datei composer.json wie folgt:

%Vor%

Hier ist classes der Name des Verzeichnisses, in dem Sie alle anwendungsbezogenen Klassen haben. Die mit dem Vendor zusammenhängende Klasse sollte ebenfalls automatisch erkannt werden. Fügen Sie einfach die folgende Zeile hinzu, um beides gleichzeitig zu erreichen:

%Vor%

Und Sie können die Namensmatrix verwenden, um Ihre Klasse wie folgt zu referenzieren:

%Vor%     
kta 23.02.2014 01:29
quelle
1

Ja, natürlich ist es möglich, eigene Bibliotheken hinzuzufügen, und Sie sollten sich dazu ermutigt fühlen. Wenn Ihre Bibliothek öffentlich verfügbar ist, können Sie sie einfach bei packagist.org registrieren. Wenn nicht, ist es etwas komplizierter, aber nicht unmöglich.

Wenn Ihr Projekt nicht dem PSR-0-Standard entspricht, erstellt Composer eine Classmap für Sie. Ein benutzerdefinierter Autoloader wird nicht unterstützt.

Ich würde dir empfehlen, die (wirklich ausgezeichnete) Dokumentation über all das zu lesen und zurück zu kommen, falls du auf Probleme stößt.

Ссылка

    
Alexander M. Turek 22.03.2013 16:29
quelle

Tags und Links