Skip to content

Releases: dimitriBouteille/wp-foundation

Release list

v1.0.0-rc.1

v1.0.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@dimitriBouteille dimitriBouteille released this 01 Nov 14:21

🚀 First release candidate of WordPress Foundation

This is the first public version of dbout/wp-foundation, a lightweight application foundation for WordPress: service container, attribute-based routing, WP-CLI commands, Twig views, validation, cache and security hardening,
built on Symfony and Illuminate components.

Important

This is a release candidate: the API is considered stable for 1.0.0, only bug fixes will be made until the final version. Please test it on a real project and report any issue.

📦 Installation

composer require dbout/wp-foundation:^1.0@RC

See the getting started guide to bootstrap the application from a mu-plugin.

✨ Features

  • Application: service container (Illuminate) with service providers and facades, configuration files merged with the default configuration of the package
  • Routing: routes declared with PHP attributes on top of Symfony Routing, controllers discovered from PSR-4 namespaces, URL generation, routes cached in production. A URL without a route is handled by WordPress
  • HTTP: view, redirect, JSON and error responses, HTTP exceptions
  • Console: WP-CLI commands declared with a #[Command] attribute
  • Views: Twig with the WordPress functions, assets from a Vite manifest, image resizing and WebP conversion
  • Validation: Symfony Validator with attribute constraints, hydration from a request (query, form or JSON body) or a WP_REST_Request, spam protection (honeypot and minimum submit time), messages translated with the WordPress
    translations
  • Cache: Symfony Cache, disabled outside production, cleared with wp app:cache:clear
  • Dates: Carbon locale following the language of WordPress (WPML / Polylang, switch_to_locale())
  • Logging: Illuminate logger
  • Security: HTTP security headers, XML-RPC, REST API, user enumeration (author pages, REST users endpoint, oEmbed), version and more. Only the protections without visible effect are enabled by default