2014-04-08 10 views
13

Ich verstehe nicht, wie die create-project in Composer funktioniert. Nehmen wir Laravel als Beispiel.Unterschied zwischen require und install vs create-project in Composer

kann ich dieses PHP-Framework mit dem folgenden Befehl installieren:

composer create-project laravel/laravel --prefer-dist 

Dieser Befehl das Framework installiert für mich mich mit ein paar Ordner in der Wurzel meines dir verlassen:

  • App
  • Bootstrap
  • öffentliche
  • Anbieter

Plus einige Dateien.

Aber wenn ich einfach den folgenden Komponisten Befehl:

composer require laravel/laravel --prefer-dist 
composer install 

Dann nur diese installiert den vendor Ordner. Es werden keine anderen Dateien und Ordner von Composer heruntergeladen.

Wie kommt es? Was ist so anders? Woher weiß der Komponist, welche anderen Dateien er erhalten soll, wenn ich den Befehl create-project laravel/laravel verwende und warum bekomme ich nur den Ordner vendor, wenn ich require laravel/laravel mache?

Antwort

8

require wird eine Abhängigkeit zu der Datei composer.json hinzufügen und in das Verzeichnis vendor laden, wie Sie richtig bemerkt haben.

create-project auf der anderen Seite wird Klon die Abhängigkeit, das heißt die Abhängigkeit als Vorlage verwendet für ein neues Projekt. Werfen Sie einen Blick auf das Repository hinter laravel/laravel: https://github.com/laravel/laravel

+2

Danke. Ich habe das vorher nicht gesehen, aber ich verstehe es jetzt. Das "Laravel/Laravel" -Repo erfordert "Laravel/Framework", das im Gegenzug alle seine "Illuminate" -Abhängigkeiten benötigt. Diese Illuminate-Abhängigkeiten erfordern alle anderen 3rd-Party-Bibliotheken. So wird es schließlich durch den Komponisten aufgebaut (falls jemand daran interessiert war). – Vivendi

Verwandte Themen