Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Einen PHP-Entwicklungs-Checkout einrichten

Ein funktionierender Checkout für PHP-Arbeit an Exponential - klonen, Composer, eine SQLite-Installation, der Name der Entwicklungsumgebung, die Entwicklungswerkzeuge in .devtools/, die Git-Hooks, Debug-Einstellungen…

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/help/php-developers/a-php-development-checkout.md

On this page

This page is a translation. Read the English original

Einen PHP-Entwicklungs-Checkout einrichten

Diese Seite richtet sich an PHP-Entwickler, die einen Checkout von Exponential möchten, um darin PHP-Code zu schreiben und zu testen: Kernel-Korrekturen, Erweiterungen, Tests. Sie geht einen Schritt weiter als die Einrichtungsseite für Anwendungsentwickler (Eine Entwicklungsumgebung einrichten): die Entwicklungswerkzeuge, die Git-Hooks und eine PHP-8.0-Binärdatei für Kompatibilitätsprüfungen.

Inhalt

  1. Was Sie brauchen
  2. Klonen und installieren
  3. Die Umgebung benennen
  4. Die Entwicklungswerkzeuge
  5. Die Git-Hooks
  6. Eine PHP-8.0-Binärdatei
  7. Debug-Einstellungen für die Entwicklung
  8. Tägliche Befehle

Was Sie brauchen

WerkzeugWarum
PHP 8.0 oder neuer auf der Kommandozeileder Kernel unterstützt 8.0 bis 8.5; PHPUnit 13 im installierten vendor/ braucht 8.4
Composer 2die Abhängigkeiten und die Entwicklungswerkzeuge
Gitdie Hooks und die änderungsbasierten Prüfungen vergleichen mit origin/main
Node.js (optional)node --check für geändertes JavaScript im pre-commit-Hook
Ein zweites PHP, 8.0 (optional)make lint80, die älteste unterstützte Syntax

Klonen und installieren

git clone https://github.com/se7enxweb/exponential.git exp-dev
cd exp-dev
composer install
php bin/php/console exp:install --apply --package=sevenx_multisite_clean --url=http://127.0.0.1:8088

composer install führt danach bin/php/ezpgenerateautoloads.php aus ("post-install-cmd" in composer.json). Die Installation verwendet SQLite, sofern Sie nicht --db= angeben (Die Konsoleninstallation). Installieren Sie mit --force neu, wenn Sie einen sauberen Zustand brauchen.

Die Umgebung benennen

Kopieren Sie config.env.php.example nach config.env.php und setzen Sie den Umgebungsnamen dieser Maschine:

<?php
define( 'EXP_ENV', 'dev' );

Mit dev (oder test) zeigt index.php PHP-Fehler im Browser, und eZINI liest zusätzlich eine Variante jeder Einstellungsdatei mit dem Namen nach .ini, zum Beispiel settings/override/site.ini.dev.append.php, nach der Standarddatei derselben Schicht. Jede Umgebung hat ihren eigenen INI-Cache. config.env.php steht in .gitignore; committen Sie sie niemals.

Die Entwicklungswerkzeuge

make devtools   # PHP_CodeSniffer, PHPCompatibility and PHPStan into .devtools/ (composer.dev.json), never into vendor/

Die Werkzeuge werden aus composer.dev.json für PHP 8.0.30 aufgelöst, sodass sie unter jedem unterstützten PHP laufen. Danach existieren .devtools/vendor/bin/phpcs und .devtools/vendor/bin/phpstan, und die make-Ziele verwenden sie (Git-Hooks und make-Ziele).

Die Git-Hooks

make hooks      # git config core.hooksPath .githooks
HookPrüft
pre-commitphp -l der vorgemerkten PHP-Dateien, PHP-8.0-Syntax, wenn eine PHP-8.0-Binärdatei gefunden wird, node --check des vorgemerkten JavaScript, das Datei-Manifest, den Code-Stil der vorgemerkten PHP-Dateien
commit-msgder Betreff beginnt mit Added: , Updated: , Fixed: , Removed: oder Renamed:
pre-pushPHPStan gegen die Baseline

Ohne make devtools prüfen die Hooks weiterhin Syntax, Manifest und Nachricht und überspringen Code-Stil und PHPStan mit einem Hinweis.

Eine PHP-8.0-Binärdatei

PHP 8.0 ist die älteste unterstützte Version (das mitgelieferte PHP von RHEL 9); PHP 7.4 ist ohne Support nutzbar (make lint74 prüft sie). Der pre-commit-Hook und make lint80 finden PHP 8.0 als EXP_PHP80, php8.0 oder php80 im PATH oder als /opt/plesk/php/8.0/bin/php:

make lint80                                   # PHP 8.0 syntax of the files changed since origin/main
make lint80-all PHP80=/path/to/php8.0         # every PHP file in git, as CI runs it

Ohne eine solche Binärdatei ist der CI-Job php80 Ihre einzige PHP-8.0-Prüfung (Code schreiben, der unter PHP 8.0 läuft).

Debug-Einstellungen für die Entwicklung

Nur in settings/override/site.ini.append.php der Entwicklungsmaschine:

[DebugSettings]
DebugOutput=enabled

[TemplateSettings]
DevelopmentMode=enabled
ShowTemplatePathComments=enabled

Die Debug-Leiste zeigt dann für jede Seite Abfragen, Templates, Zeitmessungen und Einstellungen (Die Debug-Leiste für PHP-Entwickler). Schreiben Sie diese Zeilen stattdessen in eine site.ini.dev.append.php, dann können sie niemals eine Maschine erreichen, deren Umgebung nicht dev ist.

Tägliche Befehle

BefehlWann
php -l <file.php>nach jeder Bearbeitung
php bin/php/ezpgenerateautoloads.php -enach dem Hinzufügen, Umbenennen oder Verschieben einer Erweiterungsklasse
php bin/php/ezcache.php --clear-tag=ininach einer Änderung der Einstellungen
php bin/php/ezcache.php --clear-allnach einer Änderung einer Klasse oder eines Template-Pfads, wenn die Ausgabe veraltet aussieht
vendor/bin/phpunit <test file>die Tests dessen, was Sie geändert haben
make checkSyntax, Manifest, Code-Stil und PHPStan, bevor Sie pushen
php bin/php/console exp:velocity deployunter Velocity: Autoloads, Caches, Worker, in der richtigen Reihenfolge

Fügen Sie --allow-root-user den Cache- und Konsolenbefehlen nur hinzu, wenn Sie als root arbeiten.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x