Git-basierte Installation

Wenn Sie sich an der Mapbender3-Entwicklung beteiligen möchten oder aus anderen Gründen die Git Repositories für Mapbender3 verwenden, folgen Sie dieser Anleitung statt des normalen Downloads. Diese Anleitung basiert auf Ubuntu 12.04. Für andere Distributionen benötigen Sie vielleicht spezielle Pakete wie z.B. sphinx-common.

Prüfen Sie zuerst die Systemvoraussetzungen.

Für die Git-basierte Installation benötigen Sie:

  • git - schauen Sie sich das Dokument Quick primer on using Git an, um mit Git vertraut zu werden.
  • cURL - kommandozeilen basiertes Tool für die Übertragung von Daten über URL Syntax,unterstützt HTTP, HTTPS und mehr.
  • pear - PHP Erweiterung und Anwendungs-Repository.
  • Phing - Phing ist nicht GNU make; es ist ein PHP Projekt Build System oder Build-Werkzeug basierend auf Apache Ant.
  • php5-dev - Und natürlich die Dateien zur Entwicklung von PHP5-Modulen.

Klonen des Repositories

Klonen ist einfach, geben Sie das folgende Kommando auf Ihrer Shell ein:

git clone https://github.com/mapbender/mapbender-starter.git mapbender3
cd mapbender3

Entwickler, die Zugriff auf den Code haben möchten, müssen die SSH-URL verwenden: git@github.com:mapbender/mapbender-starter

Zu einem Tag eines Mapbender3 Releases wechseln

Um mit einer Release Version von Mapbender3 zu arbeiten, wechseln Sie bitte zu dem spezifischen Tag. Zum Beispiel für Version 3.0.5.0:

git tag -l
git checkout v3.0.5.0

Submodule abrufen

Die Starter-Applikation enthält nicht die Mapbender3 bundles, diese sind in einem eigenen Repository gespeichert und werden als Submodule in das Starter-Repository eingefügt. Rufen Sie das folgende Kommando im root-Verzeichnis ihres geklonten Repositories auf.

git submodule update --init --recursive

cURL

Das build-System benutzt cURL, um einige Remote-Komponenten abzurufen. Dazu müssen Sie das cURL-Kommandozeilen-Werkzeug installieren:

sudo apt-get install curl

Build-Management mit Phing

Das Build-Management wird mit Phing vorgenommen, welches die Pear-Bibliothek benötigt. Zunächst muss Pear installiert werden. Hier wird ein Debian-basiertes System verwendet:

sudo apt-get install php-pear

Dann muss Pear gezeigt werden, wie ein Autodiscover seiner Repositories erzeugt wird. Vorsichtshalber wird ein Update von Pear gemacht.

sudo pear config-set auto_discover 1
sudo pear upgrade-all
  Enable full APC compatibility [yes] : yes
  Enable internal debugging in APCu [no] : yes

Dann wird Phing installiert:

sudo pear channel-discover pear.phing.info
sudo pear install phing/phing

Composer und PHPUnit

PHPUnit wird über den Composer mitgeliefert. Die Build-Skripte benötigen weitere Abhängigkeiten, um Unit-Tests durchzuführen, die Dokumentation zu generieren und die Installationspakete zu erstellen.

Daher muss zuerst der Composer installiert werden (weitere Information unter http://getcomposer.org/download/):

cd application
curl -sS https://getcomposer.org/installer | php

Erzeugen Sie eine Konfigurationsdatei mit Namen parameters.yml. Kopieren Sie dazu die Datei application/app/config/parameters.yml.dist.

cp app/config/parameters.yml.dist app/config/parameters.yml

And afterwards get the runtime dependencies like Symfony and Doctrine:

./composer.phar update

Die nächsten Schritte der Installation

Folgen Sie nun den Schritten, die unter Installation beschrieben werden.:

Hinweis: Beachten Sie dabei, dass Mapbender3 in dem git-basierten Aufbau über eines zusätzliches Verzeichnis application verfügt (mapbender3/application/...). Dieses zuätzliche Verzeichnis muss bei den Befehlen beachtet werden.

  • Anpassung der Konfigurationsdatei parameters.yml
  • Erzeugen der Datenbank
  • Erzeugen des Datenbank Schemas
  • Kopieren/Verlinken der Bundle’ Assets in das öffentliche web-Verzeichnis
  • Initialisierung des Rollen-Systems
  • Erzeugen des “root”-Benutzers
  • Einfügen der Projektions-Definitionen
  • Einfügen der Anwendungen aus der mapbender.yml in die Datenbank

Lernen Sie mehr über app/console

Die Symfony Console Komponenten ermöglichen es, kommandozeilen basierte Befehle zu erzeugen. Doctrine verfügt beispielsweise über einige kommandozeilen basierte Befehle, die Sie verwenden können.

Lesen Sie mehr in der Symfony Dokumentation über Console Commands.

Hier finden Sie einige Kommandos zum Auffinden von Informationen:

app/console                        - lists all assets
app/console help                   - Anzeige der Hilfe
app/console help list              - Anzeige der Hilfe für einzelne Kommandos
app/console doctrine               - Anzeige aller Funktionen von Doctrine
app/console mapbender              - Anzeige aller Funktionen von Mapbender
app/console help assets:install    - Anzeige der Hilfe zu speziellen Kommandos

Lernen Sie wie Sie eigene Elemente über app/console mapbender:generate:element erzeugen können How to create your own Element?.

Aktualisierung der Installation

Da die Entwicklungen voranschreiten, wollen Sie ihren Code aktuell halten.

Folgende Schritte müssen durchgeführt werden:

  • Holen Sie den Code vom mapbender-starter Repository
  • Aktualisieren Sie die Submodule
  • Aktualisieren Sie die Datenbank, um gegebenenfalls neue Strukturen (Tabellen, Spalten) zu erzeugen
cd mapbender-starter
git pull
git submodule update --init --recursive
cd application
 ./composer.phar update --dev
app/console doctrine:schema:update

Sphinx

Sphinx wird für die Dokumentation benötigt, die Sie gerade lesen. In Debian-basierten Systemen wird Sphinx folgendermaßen installiert.

sudo apt-get install sphinx-common

Sie finden die Mapbender3 Dokumentation auf github unter mapbender-documentation. Sie könnnen den Klon über den Befehl holen:

git clone git://github.com/mapbender/mapbender-documentation

Entwickler mit Schreibrechten müssen die SSH-URL verwenden: git@github.com:mapbender/mapbender-documentation

Lesen Sie mehr über How to write Mapbender3 Documentation?.

ApiGen

ApiGen ist der API-Dokumentations-Generator erster Wahl. Es wird auch mit Pear installiert:

sudo pear install pear.apigen.org/apigen

Lesen Sie mehr in How to write Mapbender3 Documentation?.

Troubleshooting

  • Die ApiGen-Bestandteile laufen nur mit neueren Versionen von Phing (>= 2.4.12). Testen Sie die Phing Version mit:
phing -v

Mit dem folgenden Befehl können Sie ein Update all Ihrer Pear-Pakete vornehmen:

sudo pear upgrade-all
  Enable full APC compatibility [yes] : yes
  Enable internal debugging in APCu [no] : yes