PHP Coding Standards Fixer

Wenn man ab und an PHP nutzt, wird man sicherlich auch schonmal etwas von PSR-1 und PSR-2 gehört haben. PSR steht dabei für PHP Specification Request. PSR-1 und PSR-2 sind dabei der Basis Coding Standard und der Coding Style Guide.

cs.sensiolabs.org

cs.sensiolabs.org

Möchte man seinen Quelltext an diese Standards anpassen, so kann man dies natürlich ohne Probleme per Hand erledigen. Allerdings ist dies je nach Menge des Quelltextes doch recht umständlich. Mit Hilfe des PHP Coding Standards Fixer kann man diese Arbeit automatisieren. Genutzt wird die Software auf der Konsole:

php php-cs-fixer.phar fix /path/to/dir

Nach dem Durchlauf wurde der Quellcode an die Gegebenheiten des Standards angepasst. Bezogen werden kann der PHP Coding Standards Fixer auf der offizielle Seite. Die Anwendung ist dabei unter der MIT-Lizenz lizenziert und damit freie Software.

MySQL Improved Extension

Wenn man früher unter PHP eine MySQL-Datenbank ansprechen wollte, so bediente man sich der Befehle mysql_connect, mysql_select_db, mysql_query und Co. Das Problem an dieser API ist, das sie deprecated also veraltet ist und damit nicht mehr genutzt werden sollte:

$db = mysql_connect ($host, $user, $password) or die ("Es konnte keine Verbindung zum Datenbankserver hergestellt werden");
mysql_query("SET NAMES 'UTF8'");
mysql_select_db ($name, $db) or die("Die Datenbank \"$name\" konnte nicht ausgewählt werden");

Stattdessen soll man die MySQL Improved Extension kurz Mysqli nutzen. Dabei handelt es sich um eine moderne objektorientierte API für den Zugriff auf MySQL in PHP. Eine einfache Abfrage mittels Mysqli sieht dabei wie folgt aus:

$mysqli = new mysqli($databaseHost, $databaseUsername, $databasePassword, $databaseName);
$sql = "SELECT * FROM token";
$result = $mysqli->query($sql);

for ($row_no=$result->num_rows-1; $row_no>=0; $row_no--) 
{
    $result->data_seek($row_no);
    $row=$result->fetch_assoc();
    echo " id = " . $row['id'] . "\n";
}

Die API unterscheidet sich dabei nicht groß von der alten API, so das Umstieg hier relativ einfach fallen sollte. Auf der entsprechenden Dokumentationsseite auf php.net finden sich noch viele weitere Beispiele.

Flight – Microframework für PHP

Auf der Suche nach einer Möglichkeit eine REST-Api auf die Beine zu stellen, hatte ich mich mit einigen PHP-Microframeworks wie Slim oder Fat-Free beschäftigt. Hängen geblieben bin ich Schlussendlich bei Flight. Eine minimale REST-Api sieht dabei so aus:

require 'flight/Flight.php';

Flight::route('GET /', function(){
    echo 'hello world!';
});

Flight::start();

Flight besticht dabei durch seinen Umfang und die einfache Nutzbarkeit. Die Dokumentation ist schnell gelesen und so kann schon nach wenigen Minuten produktiv entwickelt werden. Flight ist unter der MIT-Lizenz lizenziert und damit freie Sofware. Der Quelltext ist auf GitHub, die offizielle Webseite unter flightphp.com zu finden.

The Right Way

Bücher über PHP-Entwicklung gibt es wie Sand am Mehr. Bücher an denen man mitarbeiten kann allerdings weniger. Zu dieser Klasse von Büchern gehört PHP – The Right Way, deren Quelltext auf GitHub zu finden ist. In dem Buch geht es dabei nicht nur um die Sprache PHP als solches, sondern auch um die Entwicklungsumgebung, Sicherheit und andere Themen.

Die deutsche Version von PHP - The Right Way.

Die deutsche Version von PHP – The Right Way.

Neben der englischen Originalversion gibt es auch eine ganze Reihe von Übersetzungen. Während es sich bei den Versionen bis zum 10. Juli 2012 noch um eine freie Version unter MIT-Lizenz handelte, wird mittlerweile die deutliche restriktivere Creative Commons Lizenz BY-NC-SA genutzt. Diese schließt eine kommerzielle Nutzung aus. Die offizielle Seite ist unter phptherightway.com zu finden.

REST-API Framework für PHP

Wer eine REST– bzw. eine RESTful-API entwickeln möchte, der kann natürlich das Rad neu erfinden und die komplette API von Grund auf entwickeln. Einfacher wird es wenn man ein bestehendes Framework nutzt. Für diesen Zweck bietet sich unter PHP Restler an. Mit Hilfe dieses Frameworks lassen sich vollwertige REST-APIs innerhalb weniger Stunden entwickeln. So unterstützt Restler unter anderem unterschiedliche Ausgabeformate wie JSON, XML oder YAML. Abgerundet wird das Paket durch eine ausführliche Dokumentation und sehr viele gut dokumentierte Beispiele.

luracast.com/products/restler

luracast.com/products/restler

Restler ist unter der LGPL lizenziert und somit freie Software. Die offizielle Webseite ist mit hilfreichen Informationen gespickt, während der Quelltext auf GitHub zu finden ist.