[vz-dev] VZ Codebasis, Unit-Tests, und so

Robert Ewald robert+vz at jtro.de
Tue Nov 12 23:33:38 CET 2013


Hallo Justin,

Composer ist ein Werkzeug um Abhängigkeiten bei PHP-Projekten zu verwalten.
Du schreibst in eine Datei (composer.json) welche Bibliotheken Du in
welchen Versionen haben möchtest (optional *) und rufst Composer auf. Das
Tool installiert dann in einen Ordner vendor/ alle angegebenen Bibliotheken
und falls nötig deren Abhängigkeiten. Composer stellt einen Autoloader zur
Verfügung, so dass im Projekt nur noch "require 'vendor/autload.php' stehen
muss und alles steht zur Verfügung.
Die zur Verfügung stehenden Bibliotheken sind alle hier registriert:
http://packagist.org/, gehostet werden sie in der Regel auf Github.
Bei der Installation der Sachen kann zwischen Entwickler und Anwender
unterschieden werden, so dass beispielsweise ersterer PHPUnit oder
Debugging-Tools zusätzlich installiert bekommt und letzterer nicht.
Im Prinzip funktioniert Composer wie PEAR, nur projektspezifisch.

Genau erklärt wird alles hier: http://getcomposer.org/doc/00-intro.md

Vorteile:
* vereinfachte Installation von Abhängigkeiten, inklusive von deren
Abhängigkeiten
* ein sehr gut getesteter Autoloader, der auch für den eigenen Code
verwendet werden kann
* 3rd-Party-Software wandert in einen eigenen Ordner im Projekt

Ich möchte gerne Erweiterungen einbauen, die neue Abhängigkeiten einführen.
Ohne Composer müsste ich mir ein Skript schreiben, dass die Sachen
runterlädt und auspackt. Und die Anwendung müsste die einzelnen
Installationsorte kennen und die jeweiligen Autoloader laden.
Mit Composer beschränkt dich der Aufwand auf neue Einträge in der
composer.json und den Aufruf von "composer install" bzw "composer update".

Ich glaube Composer steht bei PHP für einen Paragimenwechsel in der
Programmierung. Von http://de.wikipedia.org/wiki/Not-invented-here-Syndrom geht
man über zu http://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants
 .

Robert


Am 12. November 2013 22:52 schrieb <justin at justinotherguy.org>:

> Servus,
>
> Am 12.11.2013 um 20:32 schrieb Robert Ewald <robert+vz at jtro.de>:
>
> > Ich kann Euch versichern, Composer ist für PHP-Projekte in jeder
> Hinsicht ein Fortschritt: die Installation von externen Komponenten, die
> Handhabung ihrer Abhängigkeiten, ihre Aktualisierung und auch die Benutzung
> wird extrem vereinfacht.
> > Ein Beispiel:
> > $ git clone -b unittests https://github.com/r3wald/volkszaehler.org.git
> > $ cd volkszaehler.org/
> > $ composer update
> > $ vendor/bin/phpunit
> […]
> > Ich würde aber auch gerne mal ein paar Gegenargumente zu Composer hören.
>
> ich kenne Composer gar nicht (nein, das ist nicht das Gegenargument (c; )
> - was sind die Ziele?
> - [vereinfachte] Tests (und damit: potenziell höhere Code-Qualität)?
> - vereinfachter Einstieg für neue Entwickler? (oder: wird der Einstieg
> damit [noch] schwieriger?)
> - vereinfachte Installation der Middleware für neue Nutzer? (klingt für
> mich nicht so, muss aber auch kein Ziel sein; die Installation sollte m.E.
> dadurch zumindest nicht verkompliziert werden)
>
>
> Gruss, J.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20131112/0d1910e2/attachment.html>


More information about the volkszaehler-dev mailing list