Hi there!
Welcome to the 171st freek.dev newsletter!
Here are a couple of links I hope you'll enjoy as much as I did.
Easily create PDFs in Laravel apps
We’ve released a new package called spatie/laravel-pdf, a batteries-included package to generate PDFs in Laravel apps. Under the hood, it uses Chromium to generate PDFs from Blade views.
A mini package to calculate public holidays in a country
We released a mini package called spatie/holidays that can calculate the public holidays of a country.
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.
Introducing tabular assertions
My colleague Seb made a cool package to write complex expectations in a readable way.
Making sure Laravel's debug mode is always disabled in production
Recently, people started talking about a malware called “Androxgh0st” specifically targeting Laravel apps. The malware targets apps with debug mode enabled.
Laravel Pulse cards to show response times, scheduled jobs, broken links
Today, we released the ohdearapp/ohdear-pulse package, which contains Laravel Pulse cards to show you the status of your scheduled jobs, any broken links you have in your Laravel app, and uptime / HTTP performance stats.
My interview questions when hiring a front-end / back-end / whatever developer at Spatie
I just read this nice blog post that contains a few tips on how to interview a Laravel developer. When hiring someone at Spatie, I usually tend to get a feel if a candidate is passionate about our field of work.
Flare ❤️ GitLab
An introduction to the Flare GitLab integration!
Building Maintainable PHP Applications: Over-engineering vs under-engineering
Everyone talks about over-engineering but people rarely talk about under-engineering. Learn about the differences and how they depend on the context you are in.
Laravel Under The Hood - Facades
LLaravel offers an elegant method-calling feature called Facades. At first glance, they resemble static methods, but well, they are not! What kind of magic is Laravel doing?
Streamlining API Responses in Laravel with DTOs
A comprehensive guide for creating custom Data Transfer Objects (DTOs) to enhance readability, efficiency, and testability in Laravel API integrations.
FrankenPHP and Laravel Octane with Docker
Chris shows you how to run Laravel Octane with the new FrankenPHP support inside a Docker container to serve your Laravel application.
Keycode Event Helper
I built this small little helper tool that makes it easy to see information about key presses inside of JavaScript events.
What is a Command Bus?
Take a quick look at what is a Command Bus and develop a mental model on how to think about it and it's purpose.
Hosting Laravel application statically
In this article we will be going over how to I used laravel-export to deploy the very blog you're reading right now; to Cloudflare Pages, Netlify and Vercel.
Nuxt: Superpowers for your Vue 3 application
Nico shares the incredible suite of conveniences Nuxt JS brings to Vue3 applications, from auto-imports to out-of-the-box server side rendering & more!
Exploring the new Laravel 11 middleware configuration
A lot is changing in Laravel 11, including setting up middleware. This post explores how to do it and a lingering question I have after learning about it.
How we built our GitLab integration
A few days ago, we added a GitLab integration. In this blog post, we'll talk about the road to that integration and our struggles.
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
Working with Policies in Laravel (submitted by Bert De Swaef)
Event tracking using Laravel queues (submitted by Boyd Bloemsma)
Idempotency - what is it, and how can it help our Laravel APIs? (submitted by Paul Conroy)
Laravel Pulse in action (submitted by Bert De Swaef)
Decorate PHP (submitted by Doeke Norg)
Dreaming of a strong and statically-typed PHP (submitted by Ryan Chandler)
How to Check If a Laravel Collection Is Empty (submitted by Ash Allen)
Assertions in PHP (submitted by Aleksander Tabor)
Building Maintainable PHP Applications: Accidental vs Essential Complexity (submitted by Davor Minchorov)
Building Maintainable PHP Applications: Framework Decoupling vs Framework Coupling (submitted by Davor Minchorov)
Leveling up Laravel deployments: Unlocking optionality (submitted by Chris Fidao)
Laravel ApiResouce name nested route placeholder (submitted by David Carr)
Creating a Laravel Excel Export with Dropdowns (submitted by Bas van Dinther)
Laravel 10 : Integrating Social Media Share Buttons (submitted by Pranab Kalita)
Laravel Deploy - Customized Laravel Forge Deploy Scripts (submitted by Patrick)
Laravel Discountify for dynamic discounts with custom conditions. (submitted by Khalil Bouzidi)
Creating API Resources in Laravel (submitted by Sean Kegel)
Enhancing Laravel Applications with Traits: A Step-by-Step Guide (submitted by David Carr)
Old posts
Here are a couple of links from a while ago!
Building a Calendar with Carbon
Easy, alternative soft deletion: deleted_record_insert
Clever Code Considered Harmful
Move Model Scopes To Traits In Laravel
Refactoring ugly JavaScript
Top 25 YouTube Channels for Laravel and PHP Developers
Write cleaner queries by using Laravel's whereRelation method
A package to automatically copy deleted records to a separate table
How to test Laravel's invokable rules
Solving an Array Reduce Interview Question in PHP
PHP version stats: January, 2023
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
|