Sinn und Zweck des `vendor`-Verzeichnisses

Das ist jetzt vielleicht eine doofe Frage, aber ich habe dazu nichts in der Dokumentation gefunden: Wozu wird das vendor-Verzeichnis genutzt? Hat das was mit composer zu tun?

Anschlussfrage:
Ich habe mir ein kleines Bash-Skript gebastelt, welches mir cronjob-gesteuert DB-Dumps erstellt. Wäre vendor/meinKuerzel/dbdumps/ nun der richtige Platz dafür?

kurz: ja.
lange Erklärung: https://ellisv.github.io/2015/08/04/oxid-symfony-composer/

Edit 27.9.2020:
der Link ist mittlerweile tot, aber ich habe hier den entsprechenden Teil aus dem Google Cache geholt:

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

Problems that Composer solves:

  • Downloads dependencies of your project;
  • Those dependencies have other dependencies which will be downloaded too;
  • Solves which versions of libraries to download;
  • Generates an autoloader.

Composer in OXID eShop

Now we are seeking for having following project structure:

|_ ... 
|_ source/ 
|  |_ ... 
|  |_ bootstrap.php 
|  |_ ... 
| 
|_ vendor/ 
|  |_ ... 
|  |_ autoload.php 
|
|_ ... 
|_ composer.json 
|_ composer.lock 
|_ ...

An overview of what each of these does:

Directory/FileDescription

source/ A document root which also contains most parts of the OXID eShop.
source/bootstrap.php OXID file which is responsible for bootstrapping the whole shop framework.
vendor/ A directory which is controlled by Composer. It stores all vendor packages in there. You want this directory excluded from your version control system.
vendor/autoload.php Composer generated file which is responsible for registering autoloader.
composer.json A file which describes the dependencies of your project and may contain other metadata as well.
composer.lock Composer generated file to lock versions of dependencies. This is generated on first composer install and on every composer update.
2 Likes

Danke für die prompte Antwort. Damit komme ich weiter. :slight_smile: