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.