Simplifying service providers in Laravel packages original

by Freek Van der Herten – 3 minute read

In almost every Laravel package, there is a ServiceProvider class responsible for registering bindings package resources such as config files, views, migrations, ...

While preparing a workshop that I gave on package development, I watched some videos of our own Laravel package training video course again. While watching the videos on using the service provider again, I had the idea to simplify how resources can be registered.

Meanwhile, I've fleshed out the idea and release it as a new package called laravel-package-tools. In this blog post, I'd like to introduce the package to you.

Read more

Join 9,500+ smart developers

Get my monthly newsletter with what I learn from running Spatie, building Oh Dear, and maintaining 300+ open source packages. Practical takes on Laravel, PHP, and AI that you can actually use.

No spam. Unsubscribe anytime. You can also follow me on X.

Introducing Ray: a debugging tool for pragmatic developers original

by Freek Van der Herten – 16 minute read

I'm proud to announce the immediate release of Ray, a desktop app that vastly improves your debugging experience. Ray is a dedicated window to send dumped values to. It has a lot of features that help you find and fix bugs faster.

screenshot

Ray is available for macOS, Windows and Linux.

In this blog post, I'd like to share why and how we've built Ray. If you just want to know what Ray is, head to the Ray homepage.

Read more

Announcing our secret project original

by Freek Van der Herten – 1 minute read

These past few months, my team and I have worked on something that we think will be very usefull for PHP and Laravel devs.

At 14:30 CEST you can see me release it live in this stream on YouTube.

I've already shown our project to a couple of friends. This is what they said:

Read more

Writable getters in JavaScript

lea.verou.me

A pattern that has come up a few times Vera's my code is the following: an object has a property which defaults to an expression based on its other properties unless it’s explicitly set, in which case it functions like a normal property. Essentially, the expression functions as a default value.

Read more [lea.verou.me]