Scout APM helps PHP developers pinpoint N+1 queries, memory leaks & more so you
can troubleshoot fast & get back to coding faster. Start your free 14-day trial today.
I lay out my arguments why adding generics that don't do anything at runtime is a good idea.
A close look at attributes, also known as annotations; in PHP 8
Why I quit my job
Laravel Beyond CRUD is a book and video course on designing and managing large Laravel applications
All new features, deprecations, speed and performance improvements in PHP 8
A collection of talks that have guided me while learning event sourcing
A close look at named parameters in PHP 8
The impact of PHP 8 on my code
Taking a closer look at the ternary, null coalescing and spaceship operators in PHP.
Making the case to vote YES for the named arguments RFC
I'm making a video course and an ebook, based on the series
The new match expression in PHP 8 explained
What performance impact does the JIT have on real-life web applications
An unexpected similarity between braille the history and future of software development
Enrich your resources in Laravel Nova
How an in-house framework broke a few hundred websites
Constructor promotion in PHP significantly reduces the amount of code we need to write for simple objects
How does type system usage compare to team and project size?
Array + array in PHP is a different kind of merge
There's a difference between array_merge and array_merge_recursive
A survey about how we use type systems in PHP
How modern PHP versions are managed
6 things you might not know about Laravel Nova
The best features of PHP 7.4
About the value of our own creations
Dealing with different personalities within your team
The best features of PHP 8
How array_chunk works in PHP
Bridging the gap between stateful and event sourced sub-systems
How a minor version update broke our project
My personal take on how to improve PHP
A close look at a event-sourced, long running server architecture in PHP
How to use bitmasks to store booleans
Exploring patterns to add enum-like behaviour in PHP
A blog series about managing larger Laravel projects
PHP isn't the same old crappy language it was ten years ago
Some benchmarks with the new preloading feature in PHP 7.4
How to upgrade to PHP 7.4 on a Mac with Homebrew
A to-the-point list of features, changes and deprecations in PHP 7.4, available as of November 28, 2019
Making custom relation classes in Laravel
How to use Laravel's HasManyTrough
House keeping rules about translating my blog posts
Some thoughts on guest posts on this blog
Joe Watkins replied to my letter, this is my reply to him.
A few thoughts on how PHP, the language, is developed nowadays
Preloading allows for parsed PHP files to be available for all requests
PHP 7.4 adds typed properties to classes
Thoughts on strong and weakly typed programming languages
Do you know about the original definition of "Object Oriented Programming"?
An in-depth look into one of our client projects
As programmers we're almost always reading code. There are a lot of things we can do to make this easier.
I'm starting a no-nonsense, to the point, programming related podcast
A podcast, sort of.
Short closures, also called arrow functions, are available in PHP 7.4
I'm starting a monthly-ish newsletter
An SQL injection vulnerability in Laravel has been disclosed and fixed
How to destructure arrays in PHP using list or its shorthand notation
How to upgrade to PHP 7.3 on a Mac with Homebrew
Adding async support to action classes in Laravel
Programmers shouldn't underestimate the value of properly learning their toolset
How to handle enums in PHP.
The pros and cons of adding a JIT compiler to PHP.
I'm working on a community driven content aggregator
Analytics without the marketing blah blah; by a developer, for developers.
a great blog about web development and programming.
How to reliably compare dates and periods.
Readable code shouldn't be underestimated.
betterwebtype.com is an amazing resource about web typography.
PHP 7.3 has trailing function call commas, flexible Heredoc, the is_countable function and more.
codingwriter.com helps you write your technical blog.
Optimised data structures in PHP for better type validation and autocompletion.
Addressing PhpStorm performance issues on OSX in October 2018.
assertchris.io is Christopher Pitt's new blog, and worth checking out.
How to merge arrays in PHP
There appears to be some confusion about view models and view composers in Laravel. Let's clarify it.
Well structured code is essential in maintaining large projects. We'll look into splitting a project in domains to keep a grip on your code.
View models are simple classes which prepare data for a view, instead of directly relying on the models themselves.
MySQL views are a powerful tool and can be seamlessly integrated with Laravel Eloquent models.
A brief history of the web, looking forward to 2045.
Three arguments on why service locators are a bad idea.
Every programmer reads a lot of code on a daily basis. Are there things you can do to make it easier?
Scopes can help you find files you're looking for much more easy.
Microsoft acquired GitHub yesterday. What does this mean for the tech industry?
What makes a type system safe; how does the Liskov substitution principle help with this; and what does it mean regarding type variance?
A close look at what dependency injection is about—and what not.
There's a big performance issue in PHPStorm on OSX with Retina- and high-resolution screens. It's fixable.
Thoughts on PHP's type system and what it means for the language as a whole.
A selection of less-known-yet-powerful features of PHPStorm.
How to render responsive images in an optimal way.
How to debug MySQL foreign key errors.
Enable query logging on MySQL servers and find the log file.
Thoughts about where to place a curly bracket, and what it means for your cognitive load.
How to fix "cannot create a JSON value from a string with CHARACTER SET 'binary'" MySQL import error
We created a new asynchronous PHP package at Spatie.
I spent some time improving the performance of UUIDs on the database level.
Significantly improve PHPStorm's performance.
The second beta release of Stitcher ties a lot of loose ends together, getting ready for real production sites.
Integrating the Responsive Images spec together with CSS backgrounds.
Create loop-able, array-like collections in PHP with type checking.
Looking into web performance and how to improve it. From the perspective of both backend- and frontend development; client- and server side optimisations.
The first beta release of Stitcher has arrived!
PHP has some problems with arrays. Generics can fix those problems. In this blog post, we'll be exploring the possibilities if this RFC were to be added.
Sublime vs. Atom vs. Brackets vs. Visual Studio Code