System requirements
In order for the local setup to be successful, some preconditions must be met. The minimum requirements for synQup are currently as follows:
- RAM: min. 8GB
- CPU: modern quad core processor, at least 2.3GHz clock speed, ideally with support for hardware virtualization
- OS: Ubuntu 20.04 LTS (other distributions or operating systems may work, but are not officially supported)
docker-engine and docker-compose
The installation of Docker und Docker-Compose is described on the official website.
Docker container setup
After downloading the project from the release page, the automatic installation can be started:
./bin/scripts/install
This installs Composer dependencies and prepares the database for its first deployment.
Creating a first module
As described in the previous section, synQup is based on a concept of modules, i.e. reusable functions or function blocks. For developers working with synQup, the creation of modules is therefore the first step to be able to write own code. However, it also allows us to learn about the structure that will be used later to install modules.
Attention: in the following step, more work is done in the container. The host name of the current computer is usually displayed at the beginning of the line (prompt) in Unix shells. This makes it easy to distinguish whether you are currently in the container or on the host system.
First, a shell must be started in the container:
synqup@rh-synqup-nb:~/setup/fbn$ ./bin/scripts/root-shell.sh
root@7b39eff761b5:/var/www/html$
The creation of a new module is also designed to be as simple as possible. For this, only a given console command must be started:
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"!
A brief explanation of the parameters queried:
- From the Name parameter are generated: Composer package name, class name, last part of the namespace.
- The vendor prefix is used as a namespace prefix and to create the necessary folders below
packages/
. - The composer vendor specifies the first part of the full package name. In the case shown above, this results in
synqup/demomoduleone
.
Let us now follow the warning from the above result and introduce a
composer update
off. Since automatically created modules are of type symfony-bundle
, they are also automatically registered in the application.
In the next guide, the created plugin will be filled with life and the configuration of synQup will be explained in more detail.