Many people dislike WordPress code. It’s no secret that for contemporary PHP developers WordPress feels antiquated. The founder of WordPress was even once-upon-a-time vocal about not keeping up to date with the PHP eco-system because reasons.
Times changed. So did PHP. So did WordPress.
To give credit where credit is due, the reasoning behind WordPress’ conservative change management is sound. They don’t want to mess with their insanely huge user base.
That’s a lot of users. By choosing WordPress as your development platform you get massive traction for free.
But… that code. Ugh!
The good news is that when you develop for WordPress you don’t ever touch WordPress code. Instead you write a Plugin. [1] I put forward that in 2017 nothing is stopping you from writing a good, clean Plugin other than yourself.
Environment
WordPress is PHP 7 compatible. WordPress is also HHVM compatible [2]. Running on either vastly increases performance.
It follows that if your environment is PHP 7 then you get the syntax.
Syntax
WordPress Plugins can have PSR compatible namespaces.
WordPress’ answer to Event Dispatcher (and/or Observer) are the add_action() and add_filter() functions. These functions are compatible with closures.
Meaning you can write code like:
add_action('init', function() use ($v) { (new \Acme\Foo\Bar\SomeClass($v))->someMethod(); }); add_action('init', '\Acme\some_function'); add_action('init', ['\Acme\Foo\Bar\SomeOtherClass', 'someStaticMethod']); add_action('init', [$this, 'someOtherMethod']);
Or *any* standards compliant PHP 7 code you want to write.
With thousands of actions and filters available, pretty much any part of WordPress can be changed.
Tools
PHPStorm supports WordPress Plugin development out-of-the-box.
WP-CLI is a set of command-line tools for managing WordPress installations. It simplifies many developer and deployment related tasks and makes unit testing your plugin possible.
WordPress Plugins have PHP CodeSniffer rules ready to go.
WordPress Plugins can be installed using Composer.
Bedrock and Trellis for the win.
Open
WordPress is licenced under the GPL. This still matters.
Getting Things Done
Is there room for improvement? Of course! Just like PHP, WordPress is always improving with the caveat that just like PHP, WordPress strives to keep backwards compatibly.
Developers rejoice, WordPress is moving forward, kicking and screaming as we drag it into the future.
[1] WordPress also has a REST API if you’re into that kind of thing…
[2] https://core.trac.wordpress.org/ticket/40548
One thought on “WordPress as a Development Platform”