PHP

For When Things Get Gnarly in Eloquent

Jonathan Reinink has written some excellent content around Eloquent and this article is one that I reference frequently. Jonathan walks us through handling sticky situations when we need to get a single record back from a relationship without causing N+1 issues.

Dynamic Relationships in Laravel using Subqueries →

May 20, 2020

Sorting Parent Eloquent Models by a Child Relationship

Recently I had a situation in a Laravel app where I needed to sort a collection of parent models by a particular value in a BelongsTo() relationship field.

It’s fairly simple to sort the opposite direction, meaning, to sort all the related models that belong to a parent model.

Read the entire article on the Zaengle blog →

Oct 6, 2016

Simplifying Conditional Expressions

As I’ve been reading through Refactoring by Martin Fowler, I’ve found it helpful to rewrite some of the examples from the book in PHP in order to cement the concepts into my mind. While Martin’s examples are primarily in Java, I’ve found an overwhelming majority of the concepts apply to PHP, which is where I spend most of my programming time.

In today’s article, I will attempt to rework the Simplifying Conditional Expressions (pp. 237-270) section into a handful of PHP-based examples.

Read the entire article on the Zaengle blog →

Apr 16, 2016

Replace Conditional with Polymorphism

Polymorphism is an extremely helpful technique to master. Take a look at this article to see it implemented in a Laravel application:

If you've ever done any research into refactoring, or programming in general, you've most likely heard the term "polymorphism". When I first came across it, I have to admit, I was intimidated.

Now that I've become more familiar with the concept, I can assure you, the word itself is more complicated than the underlying principle!

Read the entire article on the Zaengle blog →

Apr 15, 2016

Refactoring Techniques: Extract Method

A while back, I’d thrown out a question in the Laravel Slack channel asking people what the “must-reads” were for devs. Along with the obvious Uncle Bob books, someone (I believe it was Matt Stauffer) mentioned Refactoring - Improving the Design of Existing Code by Martin Fowler. I looked it up on Amazon and while it was available, I found myself questioning whether a book that was dated 1999 would have any validity in the “modern” coding world I find myself in… not to mention that it didn’t appear to be written for PHP, which is the primary language I use.

I’m glad to say that I put aside my doubts, followed the recommendation, and picked up a copy!

Initially I was disappointed to see that the examples are written in Java, a language I know nothing about. However, I’ve been surprised to see how the broader concepts, such as organization and classes, relate very similarly to what I find myself dealing with in the PHP/Laravel world.

Read the entire article on the Zaengle blog →

Feb 5, 2016