Entwicklerdokumentation - gnuheidix/api.piratenpartei-bw.de GitHub Wiki
Auf dieser Seite ist die Applikation aus Entwicklersicht kurz beschrieben.
Hintergrund
Situation
Piraten haben eine sehr große Anzahl an lokalen Webauftritten, welche verschiedene Informationen für Besucher in ansprechenderer Form darstellen, als es das Piratenwiki in endlichem Aufwand vermag. Das Piratenwiki ist die Wissensbasis der Piraten in Deutschland. Es kann dort deutschlandweit nach Informationen verschiedenster Gliederungen gesucht werden.
Bisher wird die Synchronisation der Inhalte des Piratenwikis und der jeweiligen lokalen Website in der Regel durch fleißige Helfer manuell durchgeführt. Dies bindet unnötige Arbeitskraft und verringert potentiell den für die Bürger sichtbare Präsenz an Piraten bei Veranstaltungen. Die aktiven Piraten werden mit Housekeeping gebunden.
Vision
Es braucht eine Applikation, welche die Inhalte des Piratenwikis und anderer Datenquellen für Websites und externe Systeme komfortabel zugreifbar macht und selbst bei einem Ausfall der jeweiligen Datenquelle noch funktioniert.
Grundlage
Diese Applikation basiert auf dem Webapplikationsframework CakePHP. Die Wahl ist darin begründet, dass PHP zur Zeit im Prinzip von jedem Webserver unterstützt wird, was ein Deployment auf vielen verschiedenen Servern problemlos ermöglicht. Weiter helfen die Vorgaben des Frameworks bei der geordneten Entwicklung unter Verwendung des MVC-Architekturmusters.
Aufbau
Das folgende Diagramm illustriert die Abhängigkeiten bei Tabellen und Modellen. Weiter zeigt es auf, welche Funktion auf welchen View und Layout zurückgreift.
Ablauf
Das folgende Diagramm illustriert den Ablauf eines Wikiseitenelements.
Tests
Die Applikation wird mit der von CakePHP mitgelieferten Testumgebung, welche auf PHPUnit basiert, getestet.
Einrichtung
Einfach die folgenden Schritte durchführen, um die Testumgebung auf der Entwicklermaschine einzurichten. In einer Produktionsumgebung sollte dies nicht gemacht werden.
- pear installieren
sudo apt-get install php-pear
- PHPUnit installieren
sudo pear upgrade PEAR
sudo pear config-set auto_discover 1
sudo pear install pear.phpunit.de/PHPUnit
- XDebug installieren
sudo apt-get install php5-xdebug
- Apache neustarten
- sicherstellen, dass der Debugmode in
app/Config/core.php
auf 2 steht - sicherstellen, dass die Testdatenbank in
app/Config/database.php
korrekt konfiguriert ist und existiert- Die Testdatenbank kann beispielsweise mittels
CREATE DATABASE test_api_piratenpartei_bw_de;
angelegt werden.
- Die Testdatenbank kann beispielsweise mittels
Ausführen
- Im Browser der Entwicklermaschine die Datei
test.php
im Wurzelverzeichnis der Applikation aufrufen. Beispiel:http://localhost/test.php
. - Tests unter App laufen lassen.