Author: Bryan Serrano


  • The wp-admin panel is already password protected in that you are required to login. Sometimes that’s not good enough. This tutorial explains how to add an additional layer of authentication to the login process, essentially blocking wp-login.php requests from annoying bots or other malicious users. Step 1: Create a `/path/to/.htpasswd` file. Step 2: Create a…

  • Your form will still be slow but the user experience will be better. They will see a progress bar and see status updates in real time. The idea is to refactor something like this: Into this: And this: Before Imagine you have this form somewhere on your corporate intranet. The user clicks submit. They wait,…

  • When you get a new Macbook Pro with M1 chip you get an old version of Bash. Bash isn’t old. It’s still being maintained. It has millions of Linux and Windows users. Here’s how to put the newest version of Bash back inside your MacOS box. Prerequisite: Install Homebrew. (Install iTerm2 for good measure.) Install…

  • The WordPress REST API has been available since 4.7.  It’s robust, consistent, and nifty to work with. Why? Backend and mobile developers can use other frameworks while still keeping WordPress around for their customers. Frontend developers can build sites using JavaScript without having to touch PHP. Let’s get started! Recommended Tools Troubleshooting Getting Started WordPress API supports…

  • Getting cwRsync to work with Vagrant on Windows 10 is a pain. This tutorial is for people who have: Reading comprehension 101: cwRsync is a standalone version of rsync for Windows that doesn’t require Cygwin to be installed. I don’t have Cygwin installed because Git For Windows includes Git Bash and this is “good enough.” With a…

  • pcov is faster, uses less memory, is more accurate than phdbg. Phpdbg Pcov Caveat, only works with PHPUnit 8+… Or does it? How to switch to pcov if you are stuck with PHPUnit 7 If you are doing this: Or this: Simply change to: And you’re done.

  • I work on a project that uses Travis CI to test and build against three jobs. (PHP 7.0, 7.1, 7.2) I recently ran into a roadblock where Travis would fail with “No output has been received” on the job that did code coverage using Xdebug. A screenshot of the last successful build before the failure: Only…

  • When I switched from Linux/OSX  to Windows 10, I encountered problems with “disappearing files.” First time it happened: I have a web application with a directory  named “aux.” When copying over the project from Linux to Windows this folder and its contents silently disappear. Second time it happened: Pulling the textmate.ruby bundle from GitHub: List of reserved file names on Windows 10: The following…

  • This tutorial will show you how to code a simple JSON API using Opulence PHP. We will install Opulence’s skeleton project using composer, then create a ‘user’ database entity, and finally we will match CRUD (Create, Read, Update, Delete) to POST, GET, PUT, and DELETE. Prerequisites: PHP7, Composer, MySQL. Installing Create an Opulence project with the following command:…

  • PHP7 is a general purpose scripting language well suited for web development. Composer is the defacto package manager for PHP7. This tutorial will show you how to install PHP7 and Composer on Windows 10 for use in a command prompt. A common misconception is that you need a web server like IIS, Apache, or Nginx…