Hi there!
Welcome to the 172nd freek.dev newsletter!
Here are a couple of links I hope you'll enjoy as much as I did.
⭐ My keynote at PHPUKConference 2024
I was honoured to give the keynote at this year's PHPUKConference. The talk titled "Fantastic functions and how to find them" is about cool ways on how to use PHP.
⭐ Laravel Data v4 has been released
We've released a new major version of our popular laravel-data package. My colleague Ruben wrote a post mentioning all of the changes.
Product for Engineers: Helping engineers flex their product muscles (sponsored link)
Product for Engineers is PostHog’s newsletter dedicated to helping engineers improve their product skills. Subscribe for free to get curated advice on building great products, lessons (and mistakes) from building PostHog, and deep dives on top startups.
⭐ Generating status badges using PHP
Recently, we introduced a nice new feature to Oh Dear: status badges. Here's how we use generate and cache those badges serverside.
Pest comes with Ray integration out of the box
Discover how Pest offers a Ray integration out of the box!
Exploring Laravel Login Link
Here's a cool Laracasts video made by Christoph Rumpel that demostrates our spatie/laravel-login-link package.
Laravel Clockwork: A Deep Dive into Debugging, Profiling Skills and Best Practices
Laravel Clockwork is a powerful debugging and profiling tool seamlessly integrated into the Laravel framework. With its real-time web interface, Clockwork provides developers with instant insights into their application's runtime behavior.
Generate PDFs in Laravel: A Deep Dive into Laravel PDF Export with Spatie/Browsershot
Spatie/BrowserShot is a versatile Laravel package that facilitates the generation of PDFs or screenshots by leveraging headless browsers. This package seamlessly integrates with Laravel applications, allowing developers to capture the rendered HTML of web pages or views and convert them into PDFs or images.
Automatically Hash Laravel Model Values Using the "Hashed" Cast
Learn how to automatically hash sensitive data (such as passwords) using the "hashed" model cast in Laravel. This article also covers how to test your field is being hashed correctly.
Reusable Input Components without Livewire, with Livewire
Follow along to see how we can create a generic TextInput component with a fluent interface that can be reused everywhere with just a few lines of code.
Is it time to ditch MySQL and PostgreSQL for SQLite?
SQLite is getting all the hype lately, but can it really compete with MySQL and PostgreSQL for production web applications?
The podcasts I listen to as a PHP developer
I listen to a lot of podcasts, they keep me inspired, I've compiled a lost of the podcasts I listen to as a PHP developer.
Getting started with Livewire session properties
Livewire's Session Properties is a simple yet powerful feature for enhancing user experience and maintaining state across page refreshes.
The infamous Repository Pattern in PHP
The repository pattern is a data source abstraction that behaves like a collection; containing domain (value) objects. In this post we'll be exploring what a repository is, and what it is not.
My Favourite Alpine.js Plugins
I've been using Alpine.js for a long time now, these are a few of my favourite plugins.
Using interfaces in third-party packages
How to effectively use interfaces to make your PHP package easier to work with and more customizable than ever before.
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
Davor Minchorov: "Building maintainable PHP applications" PHPSkopje 1 (submitted by Davor Minchorov)
Get a random element from a JavaScript array (submitted by Ryan Chandler)
How to Validate Your Laravel App's Config (submitted by Ash Allen)
Securing your email - A guide to setting up SPF and DKIM DNS records (submitted by Spatie)
A simple VAT Checker package (submitted by Bert De Swaef)
Monitoring Fly Machine Resource Usage with Laravel Pulse (submitted by Kathryn Anne Tan)
Creating Flexible Layouts in Laravel with Yields, Includes, and Slots (submitted by David Carr)
What is a drip campaign? (submitted by Spatie)
Laravel Pulse Request Recorder (submitted by Chrysanthos)
Laravel - Eager loading can be bad! (submitted by Oussama Mater)
Using when with the Laravel Http Client (submitted by Chris Rhymes)
Composition over Inheritance (submitted by Andrew Cairns)
Automating Missing Translation Checks with GitHub Actions (submitted by Bas van Dinther)
Favicon Fetcher v3.2.0 released! (submitted by Ash Allen)
Display Desktop Notifications in PHP CLI Applications (submitted by Ash Allen)
Handling Errors with Third-Party APIs (submitted by Sean Kegel)
Processes and Artisan Commands in Laravel (submitted by Ash Allen)
Code to an interface! (submitted by Oussama Mater)
Sit Down with James Brooks (submitted by Bert De Swaef)
Dear Laravel package authors... (submitted by Muhammed Sari)
Cacheable Entities: A Laravel package with a story (submitted by Mazen Touati)
Laravel Mix and Vite in one Laravel project: how to use them together? (submitted by Aleksander Tabor)
I created a vat number package (submitted by Bert De Swaef)
Comparing Functional API & Class-based Components in Volt (submitted by Bert De Swaef)
How to have transition working with dynamic list on Livewire (submitted by Eser DENIZ)
Everything You Need Know About Hosting Laravel App on Flyio (submitted by Shahryar)
Laravel Exchange Rates v7.2.0 released! (submitted by Ash Allen)
Sit Down with Rissa Jackson (submitted by Bert De Swaef)
A Look Into Custom Laravel Pulse Cards (submitted by Kathryn Anne Tan)
A Guide to Override the default Login behavior in FilamentPHP (submitted by Tapan Sharma)
Old posts
Here are a couple of links from a while ago!
Request Level Validation
How to secure model ID’s in Livewire and why this is important
Using Laravel Sanctum to create dynamic abilities
Creating an onboarding email drip campaign using Mailcoach
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:
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 freek.dev
Unsubscribe from this newsletter
This mail was sent using Mailcoach
|