Lästige Entwicklungsaufgaben mit Robo automatisieren

Robo – ein moderner Task Runner für PHP
Kommentare

Task Runner sind quasi die Heinzelmännchen vieler Webentwickler. Denn mit ihnen lassen sich aufwändige und langwierige Aufgaben automatisieren, wodurch diesen der Schrecken genommen wird. Zu den bekanntesten Task Runnern zählen Grunt und Gulp, beide in JavaScript geschrieben. Doch wie sieht es mit anderen Sprachen aus – gibt es da auch was für PHP? Ja, gibt es: Robo nimmt sich dem Problem an.

Webentwicklung ist manchmal ein schwieriger Prozess. Es gibt so viel, an das man denken muss, während man eine Webanwendung erstellt. Außerdem wiederholen sich viele Schritte in einem Release-Prozess immer wieder: ein Changelog erstellen, dieses zur Dokumentation und zu Git hinzufügen, die Versionsnummer aktualisieren usw. usf. Wäre es nicht schön, müsste man das nicht jedes Mal selbst machen? Mit dem Task Runner Robo lässt sich dieser Prozess automatisieren.

Robo – das kann der Task Runner

Robo is a task runner you always have been looking for,“ das sagen zumindest die Entwickler Michael Bodnarchuk, Greg Anderson und Moshe Weitzman über ihr Projekt. Dank des kleinen Roboters lassen sich komplett anpassbare Tasks in gebräuchlichem OOP PHP schreiben. Robo verfügt über eine umfassende Liste an eingebauten bekannten Tasks für Development, Testing und Deployment.

Mit dem Task Runner lassen sich allgemeine Aufgaben automatisieren, Workers starten und Tests durchführen. Außerdem können Tasks parallel ablaufen, Befehle ausgeführt und Änderungen im Dateisystem beobachtet werden. Robo lässt sich übrigens auch als Framework nutzen, beispielsweise als eigenständiges Phar, das mit Robo implementiert wird.

Mit Robo loslegen

Um mit der Arbeit loszulegen bzw. um Robo mit der Arbeit loslegen zu lassen, muss zuerst ein RoboFile erstellt werden. Dazu reicht die Eingabe von robo init im Projekt-Directory. Es ist möglich, dass das Directory leer startet – keine Panik, Robo erstellt eine neue RoboFile.php. Zudem gibt es eine RoboFile-Klasse, die \Robo\Tasks erweitert. Letzteres enthält alle gebündelten Aufgaben von Robo.

Alle öffentlichen Methoden der RoboFile-Klasse werden als Befehle behandelt. Sie lassen sich vom CLI aus starten:

<?php

class RoboFile extends \Robo\Tasks

{

function hello($world)

{

$this->say("Hello, $world");

}

}

?>

Methodennamen sollten als camelCase gekennzeichnet sein. Weiterhin werden alle Methoden-Parameter ohne vorgegebenen Wert wie erforderliche Argumente behandelt. Um Befehl-Optionen zu definieren, sollte der letzte Methoden-Parameter als assoziatives Array festgelegt werden, in welchem die Schlüssel die Option-Namen definieren und die Werte die Standardwerte für jede Option angeben.

Robo kann außerdem Befehle aus anderen Directories aus ausführen, sogenannte Pass-Through Arguments verstehen und bestimmte Methoden wie get oder set ignorieren. Robo-Befehle teilen die zu bewältigende Arbeit in Tasks: Der Befehl bestimmt zuerst, was zu tun ist, überprüft ggf. den aktuellen Status und erstellt sowie führt eine oder mehrere Aufgaben aus, die die tatsächlichen Änderungen durch den Befehl erforderlich machen.

Ausführliche Informationen mit Codebeispielen finden sich im Getting-Started-Bereich von Robo; dort gibt es auch bereits fertige Tasks zu bestaunen.

Name Robo
Entwickler Consolidation Team
Projektwebsite http://robo.li/
GitHub https://github.com/consolidation/Robo
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -