Skip to content

Developer Setup ​

This page explains the developer-specific setup after a QUIQQER installation is available. If you need to install the base system first, start with Getting Started and the Installation guide.

Base Installation ​

Use the official installation guide for installing a QUIQQER system:

The official guide uses the PHAR installer and CLI installation flow. This page adds developer-specific context for working with repositories and package tooling after a system is available.

Source Repositories ​

For development work, check out the package repository you want to change. Use existing free packages as orientation for current structure and tooling:

  • quiqqer/bricks
  • quiqqer/cron
  • quiqqer/cache
  • quiqqer/countries
  • quiqqer/template-presentation

Requirements ​

Current packages commonly require PHP ^8.1 and the PHP extensions used by the installed system and package dependencies.

Composer platform requirements:

  • ext-curl
  • ext-dom
  • ext-filter
  • ext-iconv
  • ext-intl
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pdo
  • ext-posix
  • ext-zip

The existing setup wiki also documents web server and runtime requirements such as Apache or NGINX, MySQL, configured timezone, disabled session.autostart, and sufficient upload and memory limits.

Package Checkout ​

A package repository contains its Composer metadata, optional QUIQQER XML files, PHP classes, assets, tests, and package-local developer tools.

Common files and directories:

  • composer.json
  • package.xml
  • locale.xml
  • permissions.xml
  • events.xml
  • database.xml
  • menu.xml
  • settings.xml
  • site.xml
  • src/
  • bin/
  • tests/
  • tools/

Developer Tooling ​

Current packages commonly manage developer tools with PHIVE. PHIVE installs package-local PHAR tools into ./tools/, for example:

  • ./tools/phpcs for PHPCS
  • ./tools/phpstan for PHPStan
  • ./tools/phpunit for PHPUnit
  • ./tools/phpcbf for PHPCS auto-fixes
  • ./tools/captainhook for Git hooks

Package composer.json files can define script wrappers around those tools:

Composer scriptPurpose
composer dev:initChecks requirements, installs PHIVE tools, and installs Git hooks.
composer dev:lint:styleRuns ./tools/phpcs when configured.
composer dev:lint:phpstanRuns ./tools/phpstan when configured.
composer dev:phpunitRuns ./tools/phpunit when configured.
composer dev:lintRuns the configured linting stack.
composer testRuns the configured test stack.

Use the package-local tools as the source of truth. Composer scripts are convenience wrappers and can differ between packages.

Development Runtime Settings ​

Development installations commonly use settings that make package work easier:

  • disable the complete cache while developing
  • enable Smarty compile checks
  • enable development mode so logs are easier to follow
  • widen log levels beyond production defaults

Installation Paths ​

The setup process asks for installation paths and later writes them into the runtime configuration. These paths become the basis for constants such as CMS_DIR, USR_DIR, VAR_DIR, and OPT_DIR.

Typical setup values include:

  • host/domain
  • QUIQQER root path
  • URL path
  • package path
  • project path
  • runtime data path

Released under GPL-3.0-or-later.