This repository provides a starting point for building modern WordPress plugins with a clean architecture and dependency injection. It also includes a modern JavaScript frontend and utilities for scaffolding and packaging the plugin.
- Hexagonal architecture structure (
Adapter,Application,Domain,Infrastructure,Shared) - Modular dependency injection container using
ContainerProviderand*ContainerConfiguratorclasses powered by PHP-DI - PSR-4 autoloading via Composer
- React-based frontend located in the
frontend/directory using Vite and Tailwind CSS - WordPress i18n integration for JavaScript via
frontend/i18n-loader.js - Script
bin/init-plugin.phpto bootstrap the plugin file and CI workflow - GitHub Actions workflow for tests
- PHPUnit test setup with code coverage
- Build script for packaging the plugin
- Automatic plugin header generator (
generate-header.php)
- Install PHP dependencies
composer install
- Initialize a plugin file and CI workflow (optional)
composer init-plugin
- Run tests
composer test - Build the JavaScript frontend
cd frontend npm install npm run build # or npm run dev for development
- Generate plugin header
composer generate-header
- Package plugin for distribution
./build/build.sh