Configuration Closures

February 6th, 2021

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

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 beta.directorylister.com to get started.

Directory Lister 3

Read More

azPHP Presentation: PsySh

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

Read More

Seeding is Hard

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

A small personal accomplishment

While working on a project at work it was necessary to interface with the Okta API for user authentication and authorization. To accomplish this I created, an independent PHP client library. As it stood there were no official or unofficial PHP libraries available for working with the Okta API and I felt it would be beneficial to the community, as well as my employer, to publish this library as an open source project on the company GitHub account. So I talked to some people, sent some emails and ultimately got the legal department to okay it.

Read More

CactusCon 2014 CTF Writeup

This is a write up to the 2014 CactusCon web application (SpookiLeaks) challenge. You can grab the SpookiLeaks-VM here and try the challenge yourself before reading the solution.

Read More