Systemvoraussetzungen

Damit das lokale Setup erfolgreich verläuft, müssen einige Vorbedingungen erfüllt sein. Die Mindestvoraussetzungen für synQup sind aktuell wie folgt:

  • RAM: min. 8GB
  • CPU: moderner Quadcore-Prozessor, mindestens 2.3GHz Takt, idealerweise mit Unterstützung für Hardwarevirtualisierung
  • OS: Ubuntu 20.04 LTS (andere Distributionen oder Betriebssysteme können funktionieren, werden aber nicht offiziell unterstützt)

docker-engine und docker-compose

Die Installation von Docker und Docker-Compose wird auf der offiziellen Website beschrieben.

Einrichtung der Docker-Container

Nach dem Download des Projekts von der Release-Seite lässt sich die automatische Installation starten:

./bin/scripts/install

Hierdurch werden Composer-Abhängigkeiten installiert und die Datenbank wird auf ihren ersten Einsatz vorbereitet.

Anlegen eines ersten Moduls

Wie im vorangegangenen Abschnitt beschrieben, basiert synQup auf einem Konzept von Modulen, also wiederverwendbaren Funktionen oder Funktionsbausteinen. Für Entwickler, die mit synQup arbeiten, ist das Anlegen von Modulen also der erste Schritt, um eigenen Code schreiben zu können. Es ermöglicht uns allerdings auch, die Struktur kennenzulernen, die später zur Installation von Modulen benutzt wird.

Achtung: im folgenden Schritt wird vermehrt im Container gearbeitet. Der Hostname des aktuellen Rechners wird in Unix-Shells meist am Zeilenanfang (Prompt) angezeigt. Hierdurch lässt sich einfach unterscheiden, ob man sich aktuell im Container oder auf dem Hostsystem befindet.

Zunächst muss eine Shell im Container gestartet werden:

synqup@rh-synqup-nb:~/setup/fbn$ ./bin/scripts/root-shell.sh
root@7b39eff761b5:/var/www/html$ 

Das Anlegen eines neuen Moduls ist ebenfalls so einfach wie möglich gestaltet. Hierfür muss lediglich ein vorgegebenes Konsolenkommando gestartet werden:

root@f4490118644b:/var/www/html# php bin/console make:module
Failed loading /usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so:  /usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so: cannot open shared object file: No such file or directory

 Name (pascal-case, e.g. "DemoModuleOne"):
 > CsvModule

 vendor prefix (e.g. "Synqup/Modules"):
 > Synqup/Modules

 Composer vendor (e.g. synqup):
 > synqup

 created: packages/Synqup/Modules/CsvModule/composer.json
 created: packages/Synqup/Modules/CsvModule/src/DependencyInjection/CsvModuleExtension.php
 created: packages/Synqup/Modules/CsvModule/src/Resources/config/services.yaml
 created: packages/Synqup/Modules/CsvModule/src/CsvModuleBundle.php
OK Created module!


 [WARNING] Don't forget to run "composer update synqup/demo-module-one"!

Eine kurze Erklärung der abgefragten Parameter:

  • Aus dem Parameter Name werden erzeugt: Composer-Paketname, Klassennamen, letzter Teil des Namespaces
  • Das vendor prefix wird als Namespace-Prefix und zur Erzeugung der nötigen Ordner unterhalb von packages/ genutzt
  • Der composer vendor gibt den ersten Teil des vollständigen Paketnamens an. Im oben gezeigten Fall resultiert hieraus synqup/demomoduleone

Folgen wir nun der Warnung aus dem obigen Ergebnis und führen ein

composer update

aus. Da automatisch erzeugte Module vom Typ symfony-bundle sind, werden diese auch automatisch in der Anwendung registriert.

Im nächsten Guide wird das angelegte Plugin mit Leben gefüllt und die Konfiguration von synQup näher erläutert.