Darstellung
Installation
Diese Seite beschreibt, wie das Plugin lokal lauffähig wird – vom Klonen des Repositories bis zum aktivierten Plugin in einer WordPress-Installation.
Voraussetzungen
| Anforderung | Version | Wofür |
|---|---|---|
| PHP | 8.2 oder höher | Laufzeit des Plugins (declare(strict_types=1), Enums, readonly Properties, match) |
| WordPress | 6.4 oder höher | Ziel-Plattform (Requires at least im Plugin-Header) |
| Node.js | 20 oder höher | Build der Admin- und Block-Assets (engines.node in der package.json) |
| Composer | 2.x | Autoloader-Konfiguration und Dev-Tools (PHPUnit, PHP_CodeSniffer) |
Die PHP-Mindestversion wird zur Laufzeit doppelt abgesichert: ad-form.php bricht vor dem Laden des Autoloaders ab und zeigt stattdessen einen Admin-Hinweis an.
php
if ( version_compare( PHP_VERSION, '8.2', '<' ) ) {
add_action(
'admin_notices',
static function (): void {
echo '<div class="notice notice-error"><p>';
echo esc_html__( 'AD Form requires PHP 8.2 or higher.', 'ad-form' );
echo '</p></div>';
}
);
return;
}Abhängigkeiten installieren
bash
composer install
npm install
npm run buildWas dabei passiert:
composer installschreibt den PSR-4-Autoloader (Dingfelder\AdForm\→src/) und installiert die Dev-Tools PHPUnit 10.5, PHP_CodeSniffer 3.x, WordPress Coding Standards 3.1 und PHPCompatibilityWP.npm installinstalliert@wordpress/scriptssamt der benötigten@wordpress/*-Pakete.npm run builderzeugt über webpack die Bundles nachassets/build/(builder.js,builder.css,block.js,block.cssund die zugehörigen*.asset.php-Dateien) und legt anschließend eine leereassets/build/index.phpals Directory-Listing-Schutz an.
Composer ist zur Laufzeit optional
Dingfelder\AdForm\Autoloader::register() lädt vendor/autoload.php, sobald die Datei lesbar ist, und registriert andernfalls einen eingebauten PSR-4-Loader für Dingfelder\AdForm\ → src/. Eine Auslieferung ohne vendor/-Verzeichnis funktioniert deshalb – Composer wird nur für Entwicklung und Tests gebraucht.
Plugin in WordPress einbinden
Der Plugin-Ordner muss als ad-form unter wp-content/plugins/ liegen. Der Slug ist Teil des Textdomain-Ladepfads (dirname( plugin_basename( … ) ) . '/languages') und sollte deshalb nicht umbenannt werden.
Variante A – Kopieren:
bash
cp -R . /pfad/zu/wordpress/wp-content/plugins/ad-formVariante B – Symlink (empfohlen für die Entwicklung):
bash
ln -s "$(pwd)" /pfad/zu/wordpress/wp-content/plugins/ad-formDanach im WordPress-Backend unter Plugins „AD Form" aktivieren, oder per WP-CLI:
bash
wp plugin activate ad-formWas bei der Aktivierung passiert
register_activation_hook() ruft Dingfelder\AdForm\Core\Activator::activate() auf. Dabei werden die Custom Tables über den Migrator angelegt beziehungsweise migriert und die Plugin-Capabilities an die Rolle administrator vergeben:
manage_ad_form_formscreate_ad_form_formsedit_ad_form_formsdelete_ad_form_formsview_ad_form_submissionsedit_ad_form_submissionsdelete_ad_form_submissionsmanage_ad_form_settings
Der eigentliche Boot läuft danach bei jedem Request auf plugins_loaded mit Priorität 5. Details dazu unter Architektur-Überblick.
Installation prüfen
Nach der Aktivierung liefert der Status-Endpunkt eine schnelle Bestätigung, dass die REST-Routen registriert sind:
bash
curl -s https://deine-seite.test/wp-json/ad-form/v1/statusDie vollständige Endpunkt-Liste steht in der REST-API-Referenz, das Tabellen-Layout in der Datenbank-Referenz.
Nächster Schritt
Entwicklungs-Workflow – Watch-Modus, Tests und Linting.