Skip to content

Installation

Diese Seite beschreibt, wie das Plugin lokal lauffähig wird – vom Klonen des Repositories bis zum aktivierten Plugin in einer WordPress-Installation.

Voraussetzungen

AnforderungVersionWofür
PHP8.2 oder höherLaufzeit des Plugins (declare(strict_types=1), Enums, readonly Properties, match)
WordPress6.4 oder höherZiel-Plattform (Requires at least im Plugin-Header)
Node.js20 oder höherBuild der Admin- und Block-Assets (engines.node in der package.json)
Composer2.xAutoloader-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 build

Was dabei passiert:

  • composer install schreibt 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 install installiert @wordpress/scripts samt der benötigten @wordpress/*-Pakete.
  • npm run build erzeugt über webpack die Bundles nach assets/build/ (builder.js, builder.css, block.js, block.css und die zugehörigen *.asset.php-Dateien) und legt anschließend eine leere assets/build/index.php als 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-form

Variante B – Symlink (empfohlen für die Entwicklung):

bash
ln -s "$(pwd)" /pfad/zu/wordpress/wp-content/plugins/ad-form

Danach im WordPress-Backend unter Plugins „AD Form" aktivieren, oder per WP-CLI:

bash
wp plugin activate ad-form

Was 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_forms
  • create_ad_form_forms
  • edit_ad_form_forms
  • delete_ad_form_forms
  • view_ad_form_submissions
  • edit_ad_form_submissions
  • delete_ad_form_submissions
  • manage_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/status

Die 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.

Digitale Lösungen. Persönlich. Zukunftssicher.