PHPackages                             betterpress/wordpress-symfony-edition - 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. betterpress/wordpress-symfony-edition

ActiveLibrary[Framework](/categories/framework)

betterpress/wordpress-symfony-edition
=====================================

113CSS

Since Feb 19Pushed 11y ago1 watchersCompare

[ Source](https://github.com/betterpress/wordpress-symfony-edition)[ Packagist](https://packagist.org/packages/betterpress/wordpress-symfony-edition)[ RSS](/packages/betterpress-wordpress-symfony-edition/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Wordpress Symfony Edition
=========================

[](#wordpress-symfony-edition)

**Warning: This is pre-alpha, proof of concept stuff**

Wordpress, done the Symfony way.

Wordpress is a great, easy to use platform for content editing, but it's not without its flaws. This project aims to fix some of those issues. It is inspired by and uses components from the symfony world and roughly matches the structure of [`symfony/framework-standard-edition`](https://github.com/symfony/symfony-standard).

Installation
------------

[](#installation)

`composer create-project betterpress/wordpress-symfony-edition --stability=dev`. You will be asked for database parameters - this database must already exist and be accessible.

Next setup your web server, with a document root of the folder `./wordpress`. Composer has created this folder for you. If you're just trying it out, you can run the PHP server locally (make sure you run from inside your project directory):

`php -S 0.0.0.0:8081 -t ./wordpress`

If the database details you have given are for an empty database, now visit your site and you should see the wordpress install screen. Follow these instructions, and you'll be ready to go.

Features
--------

[](#features)

### True object-oriented wordpress manipulation

[](#true-object-oriented-wordpress-manipulation)

Sensible, well constructed, OO interface for managing wordpress wrapping all those function calls.

### Service container

[](#service-container)

All these nice interfaces for accessing wordpress features are accessible from the container, and injectable into your own classes.

### Cleaner hooks

[](#cleaner-hooks)

Tag a service in the container to run a hook, rather than `add_action` littered all over the place.

Why not just...
---------------

[](#why-not-just)

### use wordpress plugins instead of bundles?

[](#use-wordpress-plugins-instead-of-bundles)

We're not saying don't use plugins at all. You still can. What we're saying is that if you're serious about delivering a well thought out, reliable and maintainable system then bits of code which can " extend WordPress to do almost anything you can imagine" should be added by a developer and go through whatever quality assurance processes you have, not be added through a web interface without thought or testing.

We know from experience that one of the best ways to manage code in this way is through `composer`, and a symfony-like extension system which allows proper dependency injection makes for much more maintainable code.

Development
-----------

[](#development)

### Where are the tests?

[](#where-are-the-tests)

Directly in this project, there aren't any. A lot of this code is experimental and not developed test-first. As it evolves and I get an idea of how the parts should interact, I extract them into separate repositories with proper tests. See [`betterpress/wordpress-adapter`](https://github.com/betterpress/wordpress-adapter) for example.

### Structure

[](#structure)

This section is more of a note and this is changing a lot. See `composer.json` for the current struture.

Packages:

- `adamquaile/php-global-abstraction`: Wrappers around PHP's features affecting global scope
- `betterpress/wordpress-adapter`: Wrappers around the basic wordpress functions, e.g. hooks, global settings
- `betterpress/wordpress-settings-api`: Wrappers around the Wordpress Settings API
- `betterpress/wordpress-shortcode-api`: Wrappers around the Wordpress Settings API
- `betterpress/wordpress-symfony-extension`: Extension to tie all the components together

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/69929?v=4)[Adam Quaile](/maintainers/adamquaile)[@adamquaile](https://github.com/adamquaile)

---

Top Contributors

[![adamquaile](https://avatars.githubusercontent.com/u/69929?v=4)](https://github.com/adamquaile "adamquaile (15 commits)")

### Embed Badge

![Health badge](/badges/betterpress-wordpress-symfony-edition/health.svg)

```
[![Health](https://phpackages.com/badges/betterpress-wordpress-symfony-edition/health.svg)](https://phpackages.com/packages/betterpress-wordpress-symfony-edition)
```

###  Alternatives

[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M532](/packages/laravel-passport)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

712181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)[laravel/pail

Easily delve into your Laravel application's log files directly from the command line.

91545.3M590](/packages/laravel-pail)

PHPackages © 2026

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