Lechse: composer

Hallo,

ich höre immmer öfters von einem Programm (?) namens Composer, dass man in PHP nutzen kann. Ich habe zwar einige Tutorials dazu gefunden, aber irgendwie wird es mir nicht klarer. Kann mir jemand für Dummies erklären, was composer genau ist, und wie ich es am besten in einem kleinen PHP-Projekt nutzen kann? Das wäre sehr nett

vielen dank!

  1. Tach!

    ich höre immmer öfters von einem Programm (?) namens Composer, dass man in PHP nutzen kann. Ich habe zwar einige Tutorials dazu gefunden, aber irgendwie wird es mir nicht klarer. Kann mir jemand für Dummies erklären, was composer genau ist,

    Composer is a tool for dependency management in PHP. It allows you to declare the dependent libraries your project needs and it will install them in your project for you.

    Auf Deutsch: Composer ist ein Werkzeug, for Abhängigkeitsverwaltung in PHP. Es erlaubt die Bibliotheken, die dein Projekt benötigt,  festzulegen und wird sie in deinem Projekt installieren. - Du musst dich also nicht mehr kümmern, wie du die Bibliotheken besorgst und deren Dateien in passende Verzeichnisse kopierst.

    und wie ich es am besten in einem kleinen PHP-Projekt nutzen kann?

    Nun, es wird eher für mittlere bis größere Projekte Anwendung finden, die man nicht mehr nur mit selbst geschriebenem Code sondern mit Hilfe eines Frameworks und/oder weiterer Codesammlungen erstellt.

    dedlfix.

  2. Moin!

    ich höre immmer öfters von einem Programm (?) namens Composer, dass man in PHP nutzen kann. Ich habe zwar einige Tutorials dazu gefunden, aber irgendwie wird es mir nicht klarer. Kann mir jemand für Dummies erklären, was composer genau ist, und wie ich es am besten in einem kleinen PHP-Projekt nutzen kann? Das wäre sehr nett

    Die Benutzung von Composer ist eigentlich relativ simpel - es sind nur ein paar Schritte.

    Angenommen, du entdeckst irgendwo, evtl. auch auf http://packagist.org, eine Bibliothek, die du benutzen willst.

    Zuerst brauchst du einen installierten Composer. Die Installationsanleitung dazu steht auf http://getcomposer.org/doc/00-intro.md. Viele PHP-IDEs bieten mittlerweile aber auch schon Support dafür an.

    Dann erstellst du eine Datei namens "composer.json" im Hauptverzeichnis deines eigenen Projekts und schreibst dort die Anweisung zum Einbinden der Bibliothek rein, die du haben willst. Composer bietet auch an, auf der Kommandozeile und interaktiv die Bibliothek einzufügen, wenn man das will.

    Zum Schluß rufst du Composer zum Installieren auf. Das lädt die Bibliothek herunter, evtl. noch weitere Bibliotheken, die dieser als Grundlage dienen, und es erstellt den Autoloader.

    Dein eigener Code muss jetzt nur noch diesen Autoloader am Anfang laden und kann ansonsten alle Klassen der Bibliothek einfach benutzen.

    Composer hat sich in sehr kurzer Zeit verbreitet, weil er ein häufiges Problem extrem gut löst. Die Alternative dazu ist das schon seit vielen Jahren bekannte und benutzte PEAR, was sich aber aus irgendwelchen Gründen nie wirklich so durchgesetzt hat, dass es tatsächlich verbreitet intensiv genutzt wurde.

    Allerdings kann man schon sagen, dass winzige Projekte von Composer nicht sonderlich profitieren. Andererseits behindert Composer aber auch nichts - der Umgang ist sehr leicht, man muß sich um recht wenig Arbeit selbst kümmern, und insbesondere ist das Hinzufügen von weiteren Bibliotheken zu einem existierenden Projekt sehr einfach. Auch das Anbieten eigener Bibliotheken ist damit sehr vereinfacht worden - effektiv benötigt man außer etwas Space auf Github oder einem anderen öffentlichen Git-Hoster eben nur noch eine beschreibende "composer.json"-Datei und ggf. die Registrierung bei packagist.org, damit die Welt die Bibliothek auch findet. Das Veröffentlichen eines eigenen PEAR-Channels hingegen soll deutlich komplizierter sein.

    Composer ist interessant genug, dass man ihn unbedingt kennenlernen sollte. Er hat das Potential, der Defacto-Standard zum Bibliotheksmanagement zu werden. Und das, obwohl die veröffentlichten Versionen gerade mal "alpha"-Status haben - ich setze ihn ohne nennenswerte Probleme schon seit vielen Monaten ein.

    - Sven Rautenberg