Hi there!

Welcome to the 141st freek.dev newsletter!

I hope all is well in your lives!

These last two weeks I've been working hard on a refresh of our Laravel Package Training video course.
As a freek.dev reader, I got a little scoop for you. I've just launched the refreshed website,
and you can already buy the course if you want. Keep a bit quiet on it for now, I will push
it a bit on social media early next week (retweets than are appreciated).

Here are a couple of links of which I hope you'll enjoy that as much as I did.

Avoid describing your data multiple times in a Laravel app using laravel-data
We've created a new package that can be used to handle data in a structured way in a big Laravel app.

My current setup (end 2021 edition)
Here's a detailed rundown of all hardware, software and services that I use to get things done.

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.

How to test that an Eloquent model actually exists
There's a new assertion method that you can use to replace `assertDatabaseHas`.

Faking HTTP requests in Laravel
Pretty cool that Laravel makes it so easy to test things like this out of the box.

Laravel Worldwide Meetup #11: Building APIs, and Models/Spotlight With Livewire
Here's the recording of the latest edition of the Laravel Worldwide meetup.
Philo Hermans showed off two great Livewire packages that he made.
Steve McDougall did a cool live coding session on how to build APIs.

Increase Database Performance By Using Multiple Columns
By thinking outside of the box, you can often get much faster database performance by splitting
values across multiple database columns.

Efficient Distance Querying in MySQL
A clever use of MySQL indexes and generated columns to make blazing fast geolocation searches.

Database and Eloquent ORM: New features and improvements since the original Laravel 8 release (1/2)
In this series, I show you new features and improvements to the Laravel framework since the original release of version 8.
This week is about the Database and Eloquent features in Laravel 8.

Ensuring data(base) consistency during concurrent requests
Bugs caused by race conditions can be a huge source or frustration. They are difficult to identify
and often difficult to remedy.

Things I Didn't Know About SQS
Chris Fidao wrote another excellent post on AWS.

We Analyzed 425,909 Favicons
The people at IconMap fetched the Tranco top 100,000 websites and analyzed their favicons

Exploring Blade internals
Liam Hammet explores the inner workings of Blade.You will find all videos in this playlist on YouTube.

A look at new features and improvements since the original Laravel 8.0 release: Collections
The Laravel team released so many great Laravel 8.x updates over the last year, it's incredible!
I wrote a series of blog posts highlighting some of the best new features and improvements. Today: Collections.

The Visitor Pattern in PHP
The Visitor Pattern opens up your entities to extension without changing them (much); and keeps the code separate.

How to update large data in Laravel
Here are a few best practices for working with a large tables.

Creating multi-worksheet Excel files with Simple Excel
Here's how to use our spatie/simple-excel package to reate multi-worksheet files.

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


Reducing the latency of your Laravel app: A Twitter Thread. (submitted by Daniel Alm)

Laravel Service Container and Service Providers Explained (submitted by Farhan Hasin Chowdhury)

How to Use Laravel With MongoDB: A Comprehensive Guide (submitted by Filip Josifovski)

Using Digital Ocean Spaces with Laravel 8 (submitted by Florencia)

Security in Laravel: How to Protect Your App (submitted by Filip Josifovski)

Simple JWT Auth support for Laravel PHP Framework (submitted by Ricardo Čerljenko)


Old posts

Here are a couple of links from a while ago!

Encrypting and signing data using private/public keys in PHP

HTML Forms: Preventing Double Form Submissions

Casual Conversation Call #2 with Christoph Rumpel

Build a Remaining Character Count Component with Alpine.js

Media Library Pro makes uploading files to a Laravel app a breeze

Object oriented code done right

Store strongly typed settings in a Laravel app

Learn all new PHP 8 features by watching this free video course

Apply Filters Conditionally In Laravel With when()

spatie/once v3 has been released, now uses a PHP 8 WeakMap

The best PRs we got in October

The problems with traditional form uploads

How the Pest PhpStorm Plugin Will Improve Your Testing Workflow



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