WordPress Plugin Framework Review

WordPress Plugin Framework Review

WordPress is now the major player for content management and website creation. It’s a huge opportunity for webmasters and web agencies; there are tons of potential customers using WordPress out there. When it comes to development neither PHP nor WordPress are known for clean development structure: there is room for improvement by using an additional project acting as framework. If your goal is to maintain a quality project over time, this article is clearly for you.

What we were searching for…

First, let’s describe what we reviewed when we used those frameworks:

  • Develops clean and fast for WordPress with a clear code separation MVC (Model View Controller) style.
  • Ability to manage frontend and backend views.
  • Using an ORM (object-relational mapping), or any clean way to make requests to the database.
  • Internationalization support: translation management, date formats, currency etc.
  • Solid documentation and support.
  • Open source preferred.

So, now let’s take a look at some awesome projects:

Themosis Framework

https://framework.themosis.com/

Pros

  • Real state-of-the-art project.
  • Well-documented, the manager of the project (Julien Lambé) is answering fast to customer questions.
  • The project is mostly done to manage the whole WordPress installation. However, it’s possible to build only a plugin; plus, a new version of Themosis more focused on plugin development is on the way.

 

themosis
Build on
The only projects we like: Symfony, Composer, PHPUnit, Mockery etc.

Specific elements you should know
It will also depend on the Themosis plugin and for a plugin that should be pushed to WordPress repository, it could be difficult to package all dependencies.

We recommend
If you want to manage a complete WordPress project: site + plugin + theme, it’s the best framework to look for at the moment.

herbert

Herbert Framework

https://github.com/getherbert/

Pros

  • Very professionally focused on WP Plugin development
  • If you already developed with Symfony, and are a fan of SensioLabs products, you will feel at home working with Herbert
Build on
Using very state-of-the-art subproject: Composer, Doctrine, Illuminate, Nest, Per, Symfony, Twig, Php-server etc.

Specific elements you should know
Very limited documentation and slow responsiveness of the team, hopefully the community is more responsive.

We recommend
If you want to build a WordPress plugin only, that’s one of the best choices.

Piklist

https://piklist.com/product/piklist/

Pros

  • Interesting framework designed for plugin and theme.
  • Well-documented!
  • People are very active and responsive.
  • They were focusing only on backend views, but we tested the release 0.9.9 still in development and the frontend is now managed.
piklist
Specific elements you should know
A plugin done with Piklist will be dependent on the Piklist plugin. This means that users installing a plugin coded with Piklist should install the Piklist plugin; this can be done automatically, but anyway you’re not embedding anything.

We recommend
If you don’t have strong development knowledge, it’s probably the easiest project to start with!

wp plugin boilerplate

WordPress Plugin Boilerplate

http://wppb.io

Pros

  • Developed for building WP plugin.
  • Everything is included in the module: independent from other elements.
Specific elements you should know
No documentation at all for now!

We recommend
Can become a serious challenger for Herbert… the day they build their documentation.

Orbit

http://fringewebdevelopment.com/orbit-wordpress-development-framework

Pros

  • Built to manage the entire web project (Site + plugin + theme).
  • Not limited to WordPress, can be used with static pages.
orbit
Specific elements you should know
Almost no documentation and no more updates since 2012!

 

We recommend
Same comment for Boilerplate can apply: Orbit can be a serious challenger for Themosis Framework… the day they build their documentation.

vafpress

Vafpress Framework

UPDATE 2019 : Vafpress look unactive since years. Use another framework.

https://github.com/vafour/vafpress-framework 

Pros

  • Very powerful to build backend views.

Specific elements you should know
For now available only for backend, no frontend management.

We recommend
If you are only managing a backend module, it’s a perfect solution.

Redux

https://redux.io/

Pros

  • Well done for backend

 

Specific elements you should know
More focused on backend for now, similar to Vafpress.

We recommend
Looks like they are going very fast on development now, this project starts to become interesting in every sense: plugin + theme.

redux

Useful project to look at during the next years

http://admin-page-framework.michaeluno.jp
Looks promising to build very simply and fast some WP forms and pages.

Oldies are no more goodies

There are lots of interesting projects still hosted on Github or WP official repository, but beware: some of them look like they are no more under development, such as Sunrise and Pico.

 

A Fistful of Dollars…

Open source does not give you confidence; you can always pay for a Framework:

Peadig
https://firecask.com/peadig/

WordPress Fuel
http://wordpressfuel.pluginpunch.com

Specialized

Largo
largo.inn.org (update October 2021 : the ssl certificate has not been renewed, the project seems abandoned.)
Mostly focused only on building news websites with WordPress, if editorial content is your business, check out this project!

Shop Plugin
https://shopplugin.net
It’s not really a framework, but more a set of plugins with an API; nevertheless, it can be really useful when you need standard checkout and payment interfaces. The main plugin is free with additional paid support and an interface plugin; you get what you pay for.

Off topic

About the classic WordPress framework used for coding plugins, I should say: that’s all folks! However, it would be a shame not to mention these interesting projects:

Gantry
http://gantry.org
Not for plugins, only for theme, but very interesting if you want to build WP + Joomla theme.

Unyson
http://unyson.io
This project is “built with clicks and without code” and is an awesome way to extend WordPress without having any coding knowledge. It’s a serious challenger for DIVI Builder.

Nouveau Framework
https://nouveauframework.org/
It’s not a plugin framework, but a theme framework with a set of plugins you can reuse as per your needs. Anyway, a very interesting project; at the moment, they are close to a version 1.0 and I’m sure that it is worthwhile to follow them in the coming years.

We build WP plugins, any question?

Last but not least: why are they different?

As you will understand from this article, every framework can be compared against another, but I will split them into my own groups based on their uses:

  • WordPress Project Management: Themosis, Orbit
  • Plugin Management: Herbert, Picklist, Boilerplate, BOILERPLATE
  • Backend View Management: Vafpress Framework, Redux

You should understand that some of these frameworks are evolving fast; hence I will update this article time after time to track their respective progress. Who can do more, can do less: a framework focused on a project is also able to build a plugin for example, but you have to be aware that you will have to work around the configuration.

There is one last thing to understand, using a certain framework does not prevent you from using another one. If I find it silly using Themosis and Herbert at the same time, then perhaps using some elements from a framework (i.e. how to manage the backend view with another project like an ORM) can be also a good choice if you know how to lay the bricks together.

All is not rosy

Well, during your next conversation with another developer, you can say that you are using a framework, and you are following “good practices”, “clean code”… Welcome to the master class! Pay attention there is also a hidden side of the moon.

If the project is stopped: Well, nobody plans on dying, but everybody will; the same works for IT projects. So, I will have a small preference for open source projects; when people stop working on a large project, most of the time there’s a small group of people that are frustrated and starts a fork in order to make some minimal maintenance of the project.

If it’s not possible to do what you want: I already saw people starting work on a technology without knowing exactly if it will meet their needs. So, read, learn and make a small proof of concept.
What if it doesn’t run in your productive environment? Did you already check if you can run your new framework on your productive environment prior to any serious coding? For sure, it will run smoothly on your development device and as developers always said: “But… it worked on my device!”, it’s so easy to manage localhost, feels like home right? It’s even more so with an environment like Mamp, Xamp, LAMP, EasyPHP… but it’s dirtier when it comes to production.

Mostly, as you will have the following option:

  1. WP official repository: That’s tricky guys! First, you will have to pass a complete review of your plugin by the WP team. They will require several parameters such as being able to run all supported versions of PHP!
    First, be sure you meet the WP plugin guidelines, Take a look at how to write a plugin on codex, optional get a look at the coding standards.
    Then, remember you will be downloaded by users all around the world in any kind of hosting, so the next rules “Shared hosting” also apply to you.
  2. Shared hosting: People using a shared PHP hosting have the chance to get a very complete service almost for free; the cons are that the less money they paid, the less parameters and configuration they can manage. Being able to change the PHP version is sometimes possible (often via cPanel or a .htaccess file), but loading a new Apache module feels like mission impossible. Why will people buy a dedicated server if everything is possible via shared hosting?
  3. Your own server: That’s the easiest part; it’s your server, so you can install what you want. Just do it the clean way, and be sure it will not impact existing applications already running on that server.

So be sure to make a small proof of concept, and check if it meets your needs and runs in your productive environment.