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.