Modern building blocks for WordPress.

A suite of small, type-safe, framework-agnostic PHP packages — dependency injection, configuration and WordPress helpers that compose cleanly together.

functions.php
composer.json
$container = (new ContainerBuilder(
    require __DIR__ . '/config-providers.php',
))
    ->withConfigFolder(__DIR__ . '/config')
    ->build();

Introduction

Getting started

Kaiseki is a collection of small, focused composer packages for building high-quality WordPress themes, plugins and PHP applications with modern development practices — strict types, dependency injection and clean, testable code.

Every package is published under the kaiseki/* namespace and documented here straight from its own README and docs/ folder. Browse the packages in the sidebar, or start with the essentials below.

kaiseki/container-builder

Bootstrap a PSR-11 dependency-injection container in minutes.

kaiseki/config

Type-safe, dot-notation access to array configuration.

kaiseki/wp-hook

Register WordPress actions and filters straight from your classes.

Quick start

Most projects begin with a dependency-injection container and a few config providers. Install the container builder and the WordPress hook package:

composer require kaiseki/container-builder kaiseki/wp-hook

Then bootstrap your container — typically at the top of a theme's functions.php:

<?php

declare(strict_types=1);

require __DIR__ . '/vendor/autoload.php';

$container = (new \Kaiseki\ContainerBuilder\ContainerBuilder(
    require __DIR__ . '/resources/config-providers.php',
))
    ->withConfigFolder(__DIR__ . '/resources/config')
    ->build();

$container
    ->get(\Kaiseki\WordPress\Hook\HookCallbackProviderRegistry::class)
    ->registerCallbacks();

From there, pull in whichever packages you need — each one is self-contained and documented in its own section.