Category / Web Development

I’ve been wanting to get onto PHPCS for quite some time now. While reading a blog post discussing it, I decided it was now or never. I should have started using PHPCS a while ago anyway…

So, in order to get things up and running, I did a quick Google search and ended up finding a pretty good tutorial, except that it is slightly outdated. Some of the instructions did not match the latest version of PhpStorm.

The article is How to Setup PHP Code Sniffer in Phpstorm on a Windows Machine from

NOTE: At the time of writing this article, I was running PhpStorm version 2016.2.1.

Most of the instructions are correct, except for a couple of them. Here is an updated version of the outdated steps. Also, you’ll need to have PEAR installed on your local machine beforehand.

Step 2

You will actually need to copy all the WordPress-xxx directories in CodeSniffer’s Standards directory as they rely on one another (otherwise you’ll get errors in PhpStorm).

Also, because I’m only using standard PHP on my local machine (no XAMPP or any pre-packaged web server), […]

Continue reading →

I have been using phpDocumentor on my Windows laptop lately, and one of the requirements is to have PEAR installed.

While this is a pretty simple process on Linux, it gets a little more complex on Windows.

Actually, it is not that complex. It is just difficult to find the proper resources (or at least it was for me).

I did find a number of posts / tutorials explaining the manual process of installing PEAR, but:

  1. It introduces possibilities of mishaps,
  2. I prefer when things are automated 😉

Automatically Install PEAR on Windows

First of all, I should specify that this was done on a Windows 10 Home x64 install with PHP 7.0.6. No WAMP, no MAMP, just PHP.

There are basically 2 steps required to install PEAR:

  1. Download the “installer”
  2. Run it
  3. Add the environment variables (yeah that’s more than 2 steps, but this one is optional. Bonus!)

Download go-pear.phar provides a super handy phar file that will allow you to install PEAR on your system in just one command line. […]

Continue reading →

So you just got this new WordPress theme or plugin approved by the review team. Exciting!

You get your first downloads and you watch the stats all the time. What are you waiting for? We all know it: reviews! Especially 5 stars reviews 😉

Reviews are Everything

Indeed, reviews are often what convinces the user to use your product… or not. That’s why all authors are striving for good reviews.

There is another thing we all know, though: unsatisfied users tend to review more than satisfied users. This means that you can easily end up with some bad reviews even though your product is good and the majority of users are happy.

What can you do about?

It may sound simple (and it is) but you just need to ask your users to review your product.

WP Review Me

This is where this small library I wrote becomes your best marketing tool!

It does a very simple job: X days (you can configure X) after the theme/plugin was installed, the user will be prompted to leave a review on

Technically speaking, […]

Continue reading →

WordPress admin notices are great. They’re extremely handy for communicating an important message to the users of your theme or plugin.

Admin notices can be used for sharing an information, warning of a problem, etc. WordPress made is very easy to register with the admin_notices hook. There is one extremely important thing though: admin notice dismissal.

Dismiss an Admin Notice

Have you ever used a plugin that displays a notice that can’t be dismissed? Or a notice that comes back on every page load, whether or not you have dismissed it already? What a pain… Nobody wants that.

In WordPress 4.2, WordPress introduced dismissible admin notices. This is basically a front-end mechanism that hides a notice when you click the close button. But again, refresh the page and the notice is back.

Persistent Notices Dismissal

What you want is for a notice to be permanently dismissed once this close button is clicked. This is exactly what WP Dismissible Notices Handler does.

After writing admin notices dismissal functions over and over I realize how dumb I was for not having a re-usable library. […]

Continue reading →

I’ve been developing WordPress stuff for a few years now. During all this time, my development toolkit changed. A lot.

As I learnt new skills, I discovered new tools. This usually resulted in a gain of productivity, improved skills, and realizing better tools were available.

Even though this cycle definitely has a limit, I think I still have some nice things to discover. Docker for instance is something I’d love to have the time to dive into. Capistrano is also something I really want to learn more about.

As of today though, I’m really happy with my development environment. Here is what it looks like…

Development Environment

In this post I’m focusing exclusively on the environment and not the development tools per se. That could be a topic for another time…

My current development environment is composed of 4 tools (excluding all the basics like Git): Vagrant, Varying Vagrant Vagrants (VVV), Variable VVV (VV) and VVV Dashboard.

This set of tools makes it super easy to setup a production-like dev server, create new site “on the fly” and manage all the resulting mess 😉


Yes I know, […]

Continue reading →

I lost a considerable amount of time today.

I’m completely new to Linters. I’ve read about it lately, and I felt dumb I didn’t start using it earlier. It avoids loosing time on stupid mistakes (a forgotten coma, an extra closing parenthesis… you know!) and help keeping a cleaner code.

I use Sublime as my IDE, and I love it, mostly for its package control. It makes installing a new addons easy as a breeze, and that’s how I installed SublimeLinter.

Installing SublimeLinter

Once you opened Sublime, press Ctrl+Shift+P (you must have the Package Control installed), find “Package Control: Install Package”. Search for “SublimeLinter” and install.

So here I am, with SublimeLinter installed, and… well, nothing. I checked a few Youtube videos and what it does seems awesome, but it simply doesn’t do anything for me. Quick Google search, nothing relevant. Actually, I ended up spending a quite a long time browsing, desperately looking for a solution.

SublimeLinter Settings

I finally found out what was wrong, and again, I felt dumb: it took me 1 minute after that to setup the plugin correctly. […]

Continue reading →