Hi there!

Welcome to the 147th freek.dev newsletter!

I hope you had a wonderful week!
This past period I've been busy creating a new course called Writing Readable PHP.
We'll go back to the basics and share many tips and tricks that my teams has learned
over the years to make code as readable as it can be. And as a bonus, I'll show you how you
can use static analysis to keep your code healthy.

I'm not doing this by myself, my team and I are joined by Christoph Rumpel to create the absolute
best course on code readablity. My guess is that most of you already know that Christoph can
create high quality content too.

We're probably are going to launch a marketing site next week, and the full course around the beginning
of April. To stay in the loop, subscribe to our newsletter about the course.
Here are your interesting links for this edition of the newsletter. Enjoy!

Invading private properties and methods in PHP
Last week, Caleb tweeted about a nifty function called invade. I decided to package it up.
(This function/package was released before some major current events I'm sure you are aware of. If we would release it now,
I might have named it differently.)

A CLI tool to monitor GitHub Actions
Using this tool, you can monitor the results of all your GitHub Actions.

Lean Admin - Laravel package for building custom admin panels (sponsored link)
Lean Admin is a TALLstack-based package for building admin panels using extremely expressive
code - yet still fully customizable and extensible. Join the waiting list to get a discount when
it launches in a few weeks.

Exploring Termwind Internals
In this stream on YouTube, Francisco Madeira, co-creator of Termwind, guides me through the source code of his amazing package to style content on the CLI

Composable seeders in Laravel with callOnce
Laravel 9 is fresh out the door, and it contains a small contribution of mine: a new callOnce method for database seeders.

The web doesn’t have version numbers
Like ‘Web 2.0’, ‘web3’ is a marketing term. There is no versioning system for the web.

The different types of events in event driven systems
Event-driven systems come in all sorts of shapes and sizes. The obvious commonality is; they all use events to communicate information. These events come in many shapes and sizes, and determining what goes into an event has an immense impact on the design of your system.

A global DNS propagation checker on your CLI
Here's a handy CLI tool to check if your domain resolves to the expected IP address worldwide.

Symfony 6.1 will require PHP 8.1
I think this is great news.

Drying up test coverage using model scope events
Let's explore the option of firing events on model scopes to add some glue between our feature tests and our unit tests.


Community links

In this section you'll find links submitted by others.
Let me know if you did write or stumbled across a blog post, tutorial or video that might be interesting to appear in this section


Laravel Flatpickr - An Elegant Laravel Component Wrapper For Javascript Datepicker Library, Flatpickr (submitted by Ashish Dhamala)

Implications Of WordPress Joining The Block Protocol (submitted by Leonardo Losoviz)

Create Simple Search Functionality With Up and Down Keys Support Using AlpineJs (submitted by Ashish Dhamala)

Filament Blog Builder (submitted by STEPHEN JUDE)

Hidden Laravel Tip - The Unbeatable Fluent Class For Array Data (submitted by Ashish Dhamala)

Laravel blade-emerald - a package to generate markup with Emmet like Abbreviation (submitted by Sourav R)

Multitenant Laravel Notifications (submitted by Chrysanthos)

Simple Open Graph Image Generator with AlpineJS and Tailwind CSS (submitted by Mithicher Baro)

Making Laravel Collection Clone (submitted by Ashish Dhamala)

Using lando to run laravel in docker (submitted by René Sinnbeck)


Old posts

Here are a couple of links from a while ago!

When Objects Aren't Enough

A visual guide to SSH tunnels

How to build a simple HTML landing page using Tailwind CSS

Creating a Ruby Gem for Ray

Never Good Enough

A package to prefix ids in a Laravel app

Native enums are coming in PHP 8.1

Laravel Worldwide Meetup #6: Dynamic Static Typing & Flysystem v2

Flashing Banner Messages in Your Laravel Jetstream and Livewire Applications

Live coding new Ray features



Did you like this newsletter?

I take a lot of time curating the right links for you. You could do me a favor by either spreading the word and letting others know about my newsletter.

Alternatively you could consider picking up one of the paid products my team and I have worked on:

All spatie products
Oh Dear
Flare

For each of the above you can use this coupon code to get a discount:
DISCOUNT-FOR-FREEK-DEV-READERS

If you have any questions, remarks or thoughts about this newsletter, simply hit reply!
Thank you so much for reading!




Freek

You are receiving this newsletter because you subscribed at https://freek.dev
Unsubcribe from this newsletter
This mail was sent using Mailcoach