Skip to content
Michael Giesler edited this page Jun 6, 2017 · 27 revisions

Contents

verwendete Software

  • PHP (>=7.1)
  • Symfony (3.2)
  • Twig (1.22)
  • MongoDB
  • Entwicklungswerkzeuge
  • PHPUnit (6.2.1)
  • CodeSniffer (2.7.0)
  • xdebug
  • Composer (1.0-dev)
  • Vagrant
  • Debian 8.6
  • nginx 1.6.2
  • Webix 3

Build Server

Dembelo nutzt Travis als Build-Server. Dort werden die Composer-Abhängigkeiten installiert und die Unittests aufgerufen. Getestet wird derzeit mit PHP 5.6 und PHP 7.0. HHVM schlug fehl, wird aber auch nicht als relevant eingestuft. phpcs soll hier ebenso wie eine Überprüfung der Code Coverage noch hinzugefügt werden.

Konventionen für github/waffle

  • Im Commit-Kommentar wird die Issue-Nummer referenziert, damit die Commits im Issue angezeigt werden, z.B.: "issue #666, bla bla bla"
  • Im Titel eines Pull Requests steht die Issue-Nummer, damit Waffle Ursprungs- und PR-Issue zusammenfassen kann, z.B.: "bla bla bla resolves #666" (Quelle: Waffle)

Coding Standards

Mittels CodeSniffer kann der Quellcode nach Formatierungsschwächen durchsucht werden. In Vagrant kann man hierzu folgenden Befehl aufrufen:

vagrant/www $ phpcs --standard=symfony2 src

UnitTests

Die vorhandenen Unittests können mit PHPUnit aufgerufen werden:

vagrant@precise64:/vagrant/www$ ./vendor/phpunit/phpunit/phpunit -c app

Die Code Coverage kann wie folgt ermittelt werden:

vagrant@precise64:/vagrant/www$ ./vendor/phpunit/phpunit/phpunit -c app/ --coverage-text

Definition of Done

  • Codesniffer muss durchlaufen
  • Testabdeckung durch Unittests muss gegeben sein (im PHP-Bereich, im JavaScript derzeit noch nicht)
  • Eine zweite Person muss drübergeschaut oder getestet haben.
  • Eventuell vorhandene Dokumentation im Wiki muss auf den neusten Stand gebracht worden sein, gegebenenfalls muss neue Dokumentation geschrieben werden.
  • Es soll möglichst weit nach den Vorgaben von Clean Code gearbeitet worden sein.

Datenbank

Siehe Datenbank.

Anforderungen an Webserver

  • Shell-Zugriff
  • PHP
  • MongoDB
  • Apache oder nginx