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
Run Composer Binaries From Project Directories
December 4th, 2020 Linux , PHP
Photo by Arnold Francisca on Unsplash

As a PHP developer I often find myself having to run executable files installed to a project via Composer (e.g. php-cs-fixer, phpunit, psysh, etc.). These binary files typically reside in vendor/bin relative to the root of a project and in order to run these binary files from the project root I would need to cd into the vendor/bin directory first or type out the relative path (e.g. vendor/bin/php-cs-fixer fix) every time I wanted to run one of these executables.

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
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