Joe Ferguson

Joe Ferguson headshot

Joe Ferguson is a PHP developer and community organizer. He is involved with many different technology related initiatives in Memphis including the Memphis PHP User group. He’s been married to his extremely supportive and amazing wife for a really long time and she turned him into a crazy cat man. They live in the Memphis suburbs with their two cats.

twitter: @JoePFerguson

Articles

The Workshop: Run Amazon Linux Locally

By Joe Ferguson

This month we focus on running Amazon Linux on your local development machine via Vagrant. While you could spin up resources in EC2 and go to town, maybe you’re not quite ready to jump into the deep end. Perhaps you want to test your application in a controlled environment to see how it performs on Amazon Linux. Possibly you’re new to AWS and don’t want to burn through all of your free credits. These are all great reasons to spend some time creating your local instance for testing your application.

Published in Find the Way With Elasticsearch, July 2019

The Workshop: The Road to 7.3, Part Two

By Joe Ferguson

Last month we explored the world of static analyzers Phan and PHPStan to find compatibility issues and several other common issues in our PHP Easy Math code base. This month, we’re going to review our code base and implement new and recent features from PHP 7.x

Published in Out on a Limb – February 2019, February 2019

The Workshop: Producing Packages, Part Three

By Joe Ferguson

Over the past two months we’ve been building PHP Easy Math a purposely simple example library to demonstrate how to build a reusable package for the PHP ecosystem. Make sure to check the previous issues if you’re just now joining us! This article is the third and final installment in this series. We’re going to cover triaging and managing issues users may open as well as pull requests to your library.

Published in Better Practice – December 2018, December 2018

The Workshop: Producing Packages, Part Two

By Joe Ferguson

Last month we started building PHP Easy Math, a small library which can be included in PHP projects to provide simple methods to do basic addition and subtraction. We’re using this as an example library to focus on what makes a library “good” we are less worried about the practical need for and usage of our package. In this part, we look at why you should provide a license and good documentation for your package.

Published in Generics and Project Success – November 2018, November 2018

Artisinal: Producing Packages, Part One

By Joe Ferguson

PHP developers can now easily share their code for others to use. You can also easily bundle your application’s domain logic into a package to share between multiple projects. This month we are diving into creating PHP packages and ensuring our packages are held to a high standard of having tests, license information, and other best practices for creating and maintaining high-quality PHP packages.

Published in Internal Journeys – October 2018, October 2018

The Workshop: Describe Your Tests with Kahlan

By Joe Ferguson

This month we’re covering a full-featured unit and Behavior-Driven Development (BDD) test framework named Kahlan. Kahlan is similar to RSpec (Ruby) and JSpec (Java) using BDD style syntax where you describe the behavior your application should have.

Published in Magniphpicent 7.3 – September 2018, September 2018

The Workshop: Make PhpStorm Work for You

By Joe Ferguson

This month we’re going to dive into PhpStorm and cover configuration from personal preferences to obeying standards and day to day usage. We’ll see how to use the features of an IDE to improve your productivity and the quality of your code.

Published in Masterful Code Management – August 2018, August 2018

The Workshop: CakePHP, Part Two

By Joe Ferguson

Last month we covered the basics of CakePHP and how to get started creating routes, controllers, database tables, and retrieving data. This month we’re going to dive into returning HTML views, as well as creating and validating forms to create new widgets.

Published in Navigating State – July 2018, July 2018

The Workshop: CakePHP, Part One

By Joe Ferguson

Welcome to the first installment of The Workshop, a column where we try out new tools and techniques to hone our craft. We’ll be covering frameworks, packages, tools, and exploring topics related to the PHP development ecosystem. This month we’re going to jump into CakePHP. CakePHP has recently released version 3.6 of their full stack framework.

Published in Command and Control – June 2018, June 2018

Artisanal: Odds and Ends

By Joe Ferguson

This month I’m running with a collection of odds and ends of Laravel which I feel strongly about or that answer some common questions about Laravel and the related ecosystem. I find these issues to be common among people who ask me about Laravel on social media or in person at conferences or user group meetups.

Published in Treasure, Old & New – May 2018, May 2018

Artisinal: Authentication with Laravel

By Joe Ferguson

Authentication is the foundation of your application’s security. Authentication separates guests from users and restricts functionality in your application to authenticated users. We can also take authentication a step further and completely offload the grunt work to some other service such a GitHub, Google, or any other third party authentication service provider.

Published in Testing in Practice – April 2018, April 2018

Illuminating Lumen

By Joe Ferguson

Lumen is a microframework from the creator of Laravel advertised as “Decidedly Laravel. Delightfully Minimal.” If you are looking at taking your first dive into building an API or microservice, Lumen is a welcome starting point for those already familiar with Laravel.

Published in Long Running PHP, March 2018

Artisanal: Full-Text Searching with Scout

By Joe Ferguson

Laravel Scout is a package that makes adding full-text searching of your Eloquent models simple. Scout is driver based, which means you will need to use a driver for the data source you’ll be searching. Scout ships with the Algolia driver out of the box. While Algolia is a fine solution offering a free tier and reasonable rates, what if you aren’t ready for such a level of commitment? We’re going to cover installing and configuring Laravel Scout and utilizing a community supported MySQL driver so you can test drive Scout in your application before making the leap to Algolia (or another driver).

Published in Know Your Tools, February 2018

Artisanal: Using Data Collections

By Joe Ferguson

Every application you work on will have some way to deal with a data set and take the form of arrays. If you have a more modern application, you may have a class which represents a data set with specific attributes and helper methods. Laravel is no different and takes the entire idea of a data set to the next level by using Collections.

Published in Setting Up to Succeed, January 2018

Artisinal: Queue Monitoring

By Joe Ferguson

Laravel Horizon is a beautiful and code driven configured dashboard for your Redis queues. You can easily monitor throughput, job run times, as well as job failures. Horizon utilizes asynchronous process signals which means your project should be on PHP 7.1 or higher. You _are_ running PHP 7.1, right? Horizon keeps your worker configuration in one simple file, so it’s easy to share with your coworkers or teammates via version control.

Published in Talking Code, December 2017