1 of 12

Dependency Manager for PHP

PHPUGFFM 2013-03-21

2 of 12

Über mich

Markus Tacker @coderbyheart

  • Freier Señor Web Backend Dev
  • Lebe & arbeite in Offenbach @OFfenraum
  • PHP seit 1998 / PHP 3
  • http://tckr.cc/

3 of 12

Problem: Dependencies

  • Wie einbinden?
    • Direkt im Repository
    • Symlinks
    • SVN externals
    • Git Submodules
    • PEAR
  • Dependencies haben auch Dependencies …
  • Bestimmte Version benötigt
  • Hölle!

4 of 12

Lösung: Composer

  • http://getcomposer.org/
  • Dependencies eines Projekts werden in einer Datei beschrieben
  • Installation / Update via CLI
  • Dependency benutzbar in weniger als 5min.
  • Himmel!

5 of 12

Sytemanforderungen

  • Cross-platform
  • CLI mit PHP 5.3.2+
  • git, svn oder hg�für Installation aus den Quellen

6 of 12

Lib zu eigenem Projekt hinzufügen

  • Gehe zu https://packagist.org/
  • Suche, z.B. "validation"
  • Package auswählen

7 of 12

Lib zu eigenem Projekt hinzufügen

  • In composer.json eintragen:�{ "require": {� "Respect/Validation": "dev-develop"�} }
  • Composer installieren:�$ curl -sS https://getcomposer.org/installer | php
  • Dependencies installieren:�$ php composer.phar install
  • Autoloader einbinden:�<?php require_once 'vendor/autoload.php';
  • Fertig!

8 of 12

composer.lock versionieren

  • "Friert" Libraries auf aktuellem Stand ein ein
  • Neuere Versionen der Libraries mit�$ php composer.phar update�holen

9 of 12

composer.phar nicht versionieren

  • Installation via �$ curl -sS https://getcomposer.org/installer | php
  • Update via �$ php composer.phar self-update

10 of 12

vendor/ nicht versionieren

Genau darum geht es ja!

11 of 12

Doku

12 of 12

Go composing!