Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin:composer

zurück zur Übersicht

Composer

Composer ist ein anwendungsorientierter Paketmanager.

Installation

Windows

Composer ist in PHP geschrieben, weshalb er auch den dazugehörigen Interpreter braucht.
Am einfachsten ist es, PHP per XAMPP https://www.apachefriends.org/de/index.html zu Installieren. In der Installationsroutine können neben PHP und Apache alle anderen Komponenten ausgelassen werden.

Folgend ist der Installationsordner auszuwählen, welchen man sich merken sollte, da er später bei der Composer-Installation benötigt wird
Nach Abschluss der Installation muss XAMPP NICHT gestartet werden.

Anschließend kann Composer Installiert werden:
Download von https://github.com/composer/windows-setup/releases und die Installationsroutine Starten.
Auf der zweiten Seite wird php.exe verlangt, welche wir vorhin mit XAMPP installiert haben. Standardmäßig befindet sich diese nun in „C:\xampp\php\“.

Debian

cd /usr/bin
sudo php -r "readfile('https://getcomposer.org/installer');" | php

Fedora

sudo dnf install composer


Verwendung

Zur Verwendung wird im Projektverzeichnis eine Datei namens composer.json angelegt, in welcher per JSON „requirements“ angegeben werden können.

Beispiel

{
  "require": {
    "components/jquery": "2.1.4",
    "components/angular.js": "1.3.16",
    "components/bootstrap": "3.3.5",
    "michelf/php-markdown": "1.5.0"
 
  }
}

Bei den Versionen können auch Wildcards, wie z.B.:

2.1.*

nimmt die höchste 2.1.XXX Version.
Oder

*

nimmt immer die höchste verfügbare Version.
Wenn nun in diesem Verzeichnis

composer.phar install

aufgerufen wird, werden automatisch alle Requirements in „./vendor“ installiert.
Zusätzlich wird dabei eine „composer.lock“ angelegt, welche die tatsächlich installierten Versionen eingetragen hat. Sollte nun also mit Wildcards gearbeitet werden(z.B.:„2.1.*“) und beim Ausführen von „composer.phar install“ 2.1.14 die aktuellste 2.1.* Version seien, wird diese installiert und in der composer.lock eingetragen. Wenn nun eine Version 2.1.15 released wird, und das Projekt auf einem anderen Rechner installiert wird, würde „composer.phar install“ die Version 2.1.15 installieren und die composer.lock überschreiben.
Möchte man nun jedoch die originale tatsächlich installierte Version nutzen, kann dies per „composer.phar update“ geschehen(dieser Befehl verwendet nicht die composer.json, sonder die composer.lock).


GIT

üblicherweise werden composer.json, composer.lock mit eingecheckt, um composer.phar install und composer.phar update ausführen zu können. Um doppelten Code auf git zu vermeiden, wird der „vendor“ Ordner nicht mit committed.


Requirements hinzufügen

Zusätzliche Requirements können auf https://packagist.org gefunden werden.

Beispiel


In diesem Beispiel haben wir uns entschieden, jqueryui-theme-bootstrap per composer zu installieren. Hierzu müssen wir nur den Namen des Pakets(die Überschrift) in unser composer.json eintragen.

{
  "require": {
    "components/jquery": "2.1.4",
    "components/angular.js": "1.3.16",
    "components/bootstrap": "3.3.5",
    "michelf/php-markdown": "1.5.0",
    "components/jqueryui-theme-bootstrap": "*"
 
  }
}

und anschließend „composer.phar install“ oder „composer.phar update“ ausführen. Sollten keine Fehler auftreten, wird sich nun in vendor/components/ ein ordner namens jqueryui-theme-bootstrap befinden, welcher dieses Paket beinhaltet. Sollte Dieses wiederum Abhängigkeiten auf andere Projekte aufweisen, werden diese von Composer, wenn möglich automatisch aufgelöst.

Custom Requirements

Alternativ können auch ganze GIT-Repositories als Requirements angegeben werden.

{
  "repositories": [
    {"type": "git", "url": "https://github.com/BEISPIEL/BEISPIEL.git"}
  ],
  "require": {
    "components/jquery": "2.1.4",
    "components/angular.js": "1.3.16",
    "components/bootstrap": "3.3.5",
    "michelf/php-markdown": "1.5.0",
    "components/jqueryui-theme-bootstrap": "*",
    "BEISPIEL/BEISPIEL": "x.x.x"
  }
}

In „repositories“ wird in einem Array ein neues Objekt angegeben, welches den typ und die URL zum Git-Repo beinhaltet. Anschließend kann dieses in den Requirements auf herkömmliche Art und weise angegeben werden. Auch hier gilt wiederum, dass sobald das angegebene Projekt eine composer.json/composer.lock beinhaltet, die dort eingetragenen Requirements auch aufgelöst werden.


Hinweise

Bei einer Installation per OS-Paketmanager kann es vorkommen, dass der Befehl „composer.phar“ mit „composer“ ersetzt werden muss.(z.B.: bei Fedora mittels dnf)
XDebug dürfte eine enorme Auswirkungen auf die Performanz von Composer haben!

/var/www/wiki/data/pages/admin/composer.txt · Zuletzt geändert: 2019/08/13 13:48 (Externe Bearbeitung)