WordPress Developer Ukraine, Kyiv
PHP Pest Testing Framework for WordPress Plugins

PHP Pest Testing Framework for WordPress Plugins

Pest for WordPress plugin tests Pest is a testing framework on top of PHPUnit with a shorter syntax: tests are closures with a description instead of methods in classes, and expectations read like sentences. For WordPress plugins, it runs on the same WordPress test suite and bootstrap as PHPUnit, so an existing setup can switch…
WordPress Development Workflow: Using wp-env with Xdebug and PhpStorm

WordPress Development Workflow: Using wp-env with Xdebug and PhpStorm

Debug WordPress with wp-env, Xdebug and PhpStorm @wordpress/env (wp-env) starts a complete WordPress development environment in Docker with one command, with the current plugin or theme mounted inside. It also has Xdebug built in: one flag enables it, and PhpStorm (or VS Code) can then stop at breakpoints in your plugin, step through the code…
PHP Fibers: Cooperative Concurrency for WordPress Background Tasks

PHP Fibers: Cooperative Concurrency for WordPress Background Tasks

PHP Fibers, parallel HTTP requests and background work in WordPress PHP 8.1 added Fibers, and articles promise “concurrency for WordPress” since then. A Fiber is a function that can pause itself and be resumed later; it does not run in parallel with anything. Without an event loop that does non-blocking I/O while fibers wait, they…
PHP 8.4 Features for WordPress Plugin Development

PHP 8.4 Features for WordPress Plugin Development

PHP 8.4 for WordPress plugin developers PHP 8.4 (November 2024) has two features that change how classes are written, property hooks and asymmetric visibility, a set of small helpers like array_find(), and one deprecation that affects a lot of existing plugin code: implicitly nullable parameter types. A plugin that should run without notices on hosts…
PHP 8.3 Features for WordPress Plugin Development

PHP 8.3 Features for WordPress Plugin Development

PHP 8.3 for WordPress plugin developers PHP 8.3 (November 2023) is a release of small, practical changes: typed class constants, an #[\Override] attribute, json_validate(), dynamic access to class constants and a few deprecations. In mid-2025 it is the version many hosts recommend, so plugins can start to require it, or at least must run on…