Passionate PHP developer, Linux junkie, gamer and coffee aficionado.

Dedicated husband and father of two.

Profile Photo
Configuration Closures
February 6th, 2021 Code , PHP
Photo by Luca Bravo on Unsplash

Nearly every application in existence requires some form of configuration. After all, no two instances of the same app are exactly the same. The "tried and true" (read "quick and dirty") way of doing this has conventionally been with arrays. This works well for most basic configuration values of scalar types, however, sometimes it may be necessary to configure complex objects.

Read More
Directory Lister 3 (beta) is here!

I'm excited to announce the immediate availability of Directory Lister 3 Beta for testing and feedback. Everyone is encouraged to download the Directory Lister 3 beta and start testing today. Head on over to to get started.

Directory Lister 3

Read More
Embrace the Framework
October 17th, 2019 Code , Frameworks
Photo by Dayne Topkin on Unsplash

Frameworks are among the most important tools we developers have and yet they are often taken for granted. The way I see it is a framework has two primary benefits: 1) saving individual developers time by providing predefined solutions to common problems and 2) allowing teams to work more efficiently by giving them a common model for coding standards, file organization, design language and more. However, these benefits quickly break down when framework conventions are broken or ignored, intentionally or otherwise.

Read More
azPHP Presentation: PsySh
June 25th, 2019 Code , PHP , Presentation

My presentation from the June 2019 azPHP meeting on PsySH, the terminal-based interactive PHP debugger and REPL.

Read More
Seeding is Hard
May 24th, 2018 Code , Laravel , PHP

We've all been there... banging our heads against a wall for 20 minutes wondering why our app isn't working before we realize we forgot to seed our database when running migrations. Okay, easy fix:

$ php artisan migrate --seed
Migration table created successfully.
Migrating: 1996_02_27_123456_create_pokemon_table
Migrated:  1996_02_27_123456_create_pokemon_table
Seeding: PokemonSeederReflectionException : Class PokemonSeeder does not exist
Read More