PHPackages                             wonderwp/wonderwp - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. wonderwp/wonderwp

ActiveLibrary[Framework](/categories/framework)

wonderwp/wonderwp
=================

WonderWP Framework. A framework bringing modern and industrial development capabilities to WordPress

1.6.0(3y ago)113.1k1MITPHPPHP &gt;=7.1CI failing

Since Aug 30Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/wonderwp/wonderwp)[ Packagist](https://packagist.org/packages/wonderwp/wonderwp)[ Docs](http://wonderwp.net)[ RSS](/packages/wonderwp-wonderwp/feed)WikiDiscussions develop Synced 1w ago

READMEChangelogDependencies (29)Versions (12)Used By (0)

wonderwp
========

[](#wonderwp)

This is a WordPress **framework** whose goal is to give WordPress **industrial development capabilities**.

[![SensioLabsInsight](https://camo.githubusercontent.com/36a329b62da7ea06592404d349ef0b955ff1b690898cd9161467d923ed1f9b5a/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f31366464653262622d663663652d343937322d623932342d3163613265356436663963642f6269672e706e67)](https://insight.sensiolabs.com/projects/16dde2bb-f6ce-4972-b924-1ca2e5d6f9cd)

Who is it for?
--------------

[](#who-is-it-for)

Probably not everyone.

This framework could interest you if

- You are willing to adopt an industrial and modern development process.
- You are faced with projects that are a true fit for a CMS but also include serious code challenges.
- You have industrial development needs such as high production volumes, repeatable solutions, in house production teams.
- You are looking at capitalizing on previous projects to build up reusable plugins and themes. Plugins and themes produced with wonderwp are meant to be full object, consistent, predictable, composerable, testable, and durable.
- You are used to frameworks and less to CMSs

What does wonderwp add to WordPress?
------------------------------------

[](#what-does-wonderwp-add-to-wordpress)

### Overview

[](#overview)

- Composer capabilities / Autoloading
- Namespacing
- Dependency injection container
- Convert procedurals concepts into Object Oriented Interfaces, and PSRs, and implementations such as
    - Routing
    - Cache
    - Forms
    - HTTP foundation
    - Logging
    - Emails
    - Medias
    - Notification
    - Post Panels
    - Search Engine
- Services, aka classes to work with
    - Activator / Deactivator
    - Routing
    - Assets Management
    - Ajax endpoints
    - Shortcodes
    - WP-CLI commands
- MVC mechanic
- Plugin blueprint (folder organisation, naming conventions, full object approach, empty function.php file)

### In a bit more depth

[](#in-a-bit-more-depth)

#### Composer

[](#composer)

We wanted to make sure our WonderWp based work could play well with composer. This framework is therefore on packagist here : https://packagist.org/packages/wonderwp/wonderwp

You can install it like this:

```
composer require wonderwp/wonderwp

```

For a composer based WordPress architecture, we recommend [https://roots.io/bedrock/](bedrock).

Composer also embarks an autoloader to avoid the need for requiring files everywhere in your plugins. The framework encourages you to follow the PSR4 recommendation and to interact with the autoloader.

#### Dependency Injection / interfaces and services

[](#dependency-injection--interfaces-and-services)

We wanted our code to be as modular as possible and bring dependency injection capabilities to WordPress.

When working with a dependency injection container, you open up the possibility to switch the object that's going to be used behind the key you request from the container as long as it implements a given interface. Because if it does, you'll be sure that is object exposes the public methods required for your code to run properly.

That's why in addition to add a DI container, we've also added many interfaces to work with WordPress core concepts, and wider programming concepts, (Emails, Routing, Logging, Caching)...

#### Services

[](#services)

Trying to follow good object oriented principles, we encourage developers throught the use of this framework to adopt a few concepts.

- Full object plugins, no procedural code
- One object per type of task, aka services, which aim is to have one responsibility only. This applies to Hook management, shortcode management, assets management, routing managements, shortcode management and so on.

#### MVC

[](#mvc)

Following the full object philosophy, shortcodes or custom routes resulting in a public or admin output are managed by controllers. Controllers work with services to get the data they need, and pass that to views. Views do not have a templating engine for the moment by default as dependency in this framework, but you could easily add your own.

#### Plugin blueprint

[](#plugin-blueprint)

This framework proposes a way of organizing folders following the PSR4 recommendation for classes, an admin folder for your plugin admin side, and a public folder for your plugin public side, but nothing's sompulsary, you can do as you whish.

There's also a plugin generator to help you quick start your plugin development.

Documentation
-------------

[](#documentation)

You can find much more detailled documentation within the documentation folder.

Tests
-----

[](#tests)

Command to launch the tests :

`vendor/bin/phpunit tests/suites --bootstrap tests/bootstrap.php  --coverage-html tests/reports/coverage.html --whitelist src/WonderWp/Framework --log-junit tests/reports/phunit.xml`

Contributing
------------

[](#contributing)

- You can contribute to this project by forking this repository and proposing pull requests
- We're looking for unit test contributors

Changelog
---------

[](#changelog)

You can find the changelog under [changelog.md](./changelog.md)

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance55

Moderate activity, may be stable

Popularity28

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 97.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~212 days

Total

9

Last Release

1116d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/df3085d21ec8c8d74d229479eb9ddc46316e90b44e3f50ffbecd2cd1bec70b10?d=identicon)[jeremy-wdf](/maintainers/jeremy-wdf)

---

Top Contributors

[![jdm-web](https://avatars.githubusercontent.com/u/19151906?v=4)](https://github.com/jdm-web "jdm-web (47 commits)")[![hostekevin](https://avatars.githubusercontent.com/u/7477133?v=4)](https://github.com/hostekevin "hostekevin (1 commits)")

---

Tags

wordpressframeworkwordpressWonderWp

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/wonderwp-wonderwp/health.svg)

```
[![Health](https://phpackages.com/badges/wonderwp-wonderwp/health.svg)](https://phpackages.com/packages/wonderwp-wonderwp)
```

###  Alternatives

[themosis/theme

The Themosis framework boilerplate theme.

10449.0k3](/packages/themosis-theme)[wpstarter/framework

The WpStarter Framework - Laravel Framework for WordPress

1810.1k4](/packages/wpstarter-framework)[alleyinteractive/pest-plugin-wordpress

WordPress Pest Integration

263.7k1](/packages/alleyinteractive-pest-plugin-wordpress)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
