;
;

Ash Allen Design

The RSS feed for the Ash Allen Design blog that contains articles about Laravel, PHP, and web development.

Fixing PHPStan Issues in Livewire Components with Larastan-Livewire

Read about how to use `calebdw/larastan-livewire` package to solve PHPStan issues related to using Livewire computed properties. W...
Posted on 3 September 2026 | 12:00 am

The `clamp` Function in PHP 8.6

Learn about the new "clamp" function in PHP 8.6 and how it can be used with different data types. We also discuss how to use "clam...
Posted on 28 July 2026 | 12:00 am

Measuring Performance with the "Benchmark" Class in Laravel

Read about the different ways you can use the "Illuminate\Support\Benchmark" class in Laravel to measure the execution time of you...
Posted on 22 January 2026 | 12:00 am

Reduce Duplicate Cache Queries in Laravel with "Cache::memo()"

Learn about how to use the "Cache::memo()" method to memoise cache values and improve performance in your Laravel applications. ...
Posted on 21 January 2026 | 12:00 am

How to Send Telegram Messages in Laravel

In this article, we'll look at how to send Telegram messages from a Laravel application using the "laravel-notification-channels/t...
Posted on 20 January 2026 | 12:00 am

Memoisation in Laravel Using the "once" Helper

In this article, we'll discuss how to use the "once" helper in Laravel to memoise data. We'll also look at how the "once" helper w...
Posted on 19 January 2026 | 12:00 am

Using AI to Build a Laravel Feature with Junie in PhpStorm

In this video, we'll take a quick look at how to use JetBrain's AI assistant, Junie, to build a new Laravel feature in PhpStorm. ...
Posted on 16 January 2026 | 12:00 am

How AI Will Impact My Job as a Freelance Web Developer in 2026

Read my opinions about how I think AI will impact my job as a freelance web developer and content creator in 2026. I discuss how I...
Posted on 13 January 2026 | 12:00 am

Formatting PHP Code with PHP CS Fixer

Read about how to use PHP CS Fixer to automate the formatting of your PHP code. We'll also explore how to use PHP CS Fixer in para...
Posted on 18 December 2025 | 12:00 am

The Difference Between ?: and ?? in PHP

Learn about the difference between the ternary operator (?:) and the null coalescing operator (??) in PHP. We'll also discuss a co...
Posted on 20 November 2025 | 12:00 am

Black Friday 2025 - Up to 50% off!

Get up to 50% off my books with Black Friday 2025 discounts. I am offering 30% off "Battle Ready Laravel" and "Consuming APIs in L...
Posted on 18 November 2025 | 12:00 am

Immutable and Mutable Dates in PHP

Read about the difference between immutable and mutable dates in PHP. We'll also look at a common gotcha I've experienced when usi...
Posted on 17 November 2025 | 12:00 am

Saloon vs Guzzle vs SDK vs Http Facade for Laravel API Integrations

Read about how to decide whether to use Salon, Guzzle, an SDK, or the Http Facade to build API integrations for your Laravel appli...
Posted on 13 November 2025 | 12:00 am

Email Utilities for Laravel v1.0 Released! 🎉

Read about my latest package: Email Utilities for Laravel. It's a small package which can be used to check and validate whether an...
Posted on 10 November 2025 | 12:00 am

Why I Deleted Social Media From My Phone

This year, I deleted social media from my phone. It started off as an experiment, but it has had a significant impact on improving...
Posted on 7 November 2025 | 12:00 am

Returning HTTP 404 Responses Instead of 403 for Unauthorised Access

Read about how to use HTTP 404 responses instead of HTTP 403 when a user is unauthorised to access a resource. We'll also discuss ...
Posted on 31 October 2025 | 12:00 am

Run PHPUnit and Pest Tests Without Vite Assets in Laravel

Read about how to use the "withoutVite" method in your Laravel apps to disable Vite during your PHPUnit and Pest tests. ...
Posted on 29 October 2025 | 12:00 am

The Dangers of Dynamic Method Calls in PHP

Read about the potential dangers of using dynamic method calls in PHP. We'll discuss the issues of using them, and potential alter...
Posted on 30 September 2025 | 12:00 am

The `match` Expression in PHP

Read about how to use the "match" expression in your PHP applications. We'll also discuss how to use them with PHP enums to write ...
Posted on 18 September 2025 | 12:00 am

Check If a String is Valid JSON in PHP

Read about how to use the "json_validate" function in PHP to check whether a string is valid JSON. We'll also discuss the differen...
Posted on 16 September 2025 | 12:00 am

A Guide to Serialization in PHP

Learn about serialization and how it works in PHP. We'll discuss serialized data formats, how to use serialization in PHP, and how...
Posted on 11 September 2025 | 12:00 am

Redactable Models v1.0 is Now Available!

Read about the new v1.0 release of the Redactable Models for Laravel package. The article covers the new "mass redaction" feature ...
Posted on 9 September 2025 | 12:00 am

Fetching Favicons using the DuckDuckGo Icons API in Laravel

Read about how to use the Favicon Fetcher package in your Laravel projects to retrieve websites' favicons via the DuckDuckGo API. ...
Posted on 3 September 2025 | 12:00 am

Create AI Agents in Laravel — The Simple Way

Read this guest post by Revaz Ghambarashvili that introduces us to his Laravel AI package, LarAgent. Continue reading.....
Posted on 7 August 2025 | 12:00 am

The "never" Type in PHP

Learn about how to use the "never" type in PHP. We'll explore how to use it in your own code and look at a practical example of ho...
Posted on 20 June 2025 | 12:00 am

Check if a Signed URL is Valid in Laravel Tests

Read about how you can verify that a URL is a signed URL in your Laravel tests. Continue reading... Sub...
Posted on 18 June 2025 | 12:00 am

Pass a Query Builder to "whereIn" to Reduce Your DB Queries

Learn how to reduce your database queries by passing an instance of "Illuminate\Database\Query\Builder" to the "whereIn" method of...
Posted on 16 June 2025 | 12:00 am

Asymmetric Property Visibility in PHP

Learn about how to use asymmetric property visibility (added in PHP 8.4) to define different visibility levels for reading and wri...
Posted on 13 June 2025 | 12:00 am

Formatting Monetary Values in JavaScript

Learn how to format monetary values in JavaScript using the "toLocaleString" method and "Intl.NumberFormat" object. Con...
Posted on 11 June 2025 | 12:00 am

Check Every Key Exists in a PHP Array with Arr::hasAll()

Read about how to use the "Arr::hasAll" method (added in Laravel 12.16) in your Laravel applications to ensure a given array conta...
Posted on 9 June 2025 | 12:00 am

Cast Laravel Model Fields to "Illuminate\Support\Uri" with "AsUri"

Read about how to use the new `Illuminate\Database\Eloquent\Casts\AsUri` cast (added in Laravel 12.17) to cast Laravel model prope...
Posted on 7 June 2025 | 12:00 am

A Guide to Custom Model Casts in Laravel

In this article, we'll dive into what "mutators", "accessors", and "casts" are and how to use them in your Laravel application. We...
Posted on 14 April 2025 | 12:00 am

Covariance and Contravariance in PHP

Learn about covariance and contravariance and how these concepts apply to your PHP code. We'll discuss these concepts in the conte...
Posted on 3 April 2025 | 12:00 am

Human-Readable File Sizes in Laravel (KB, MB, GB)

Learn how to convert file sizes in bytes to human-readable file sizes using the "Number::fileSize" method. For example, we'll show...
Posted on 2 April 2025 | 12:00 am

Microservices in Laravel

Learn about the strategies Gary Clarke uses to build scalable Laravel applications using microservices. Continue readin...
Posted on 31 March 2025 | 12:00 am

Formatting and Spelling Ordinal Numbers in PHP and Laravel

Learn how to convert numbers to ordinal numbers (e.g., "1" to "1st") in PHP and Laravel apps. We'll also discuss how to spell out ...
Posted on 28 March 2025 | 12:00 am

How to Filter Profanity in Laravel with Squeaky

Read about how to use Squeaky, the new Laravel package by Jon Purvis, to validate input and ensure it doesn't contain profanity. ...
Posted on 4 March 2025 | 12:00 am

Preventing Destructive Commands from Running in Laravel

Read about how to use the Illuminate\\Console\\Prohibitable trait to prevent destructive commands from running in your Laravel app...
Posted on 17 February 2025 | 12:00 am

The Web Dev's Guide to Freelancing is Now Available! 🎉

The Web Dev's Guide to Freelancing is now available. It's packed full of tips, tricks, strategies, and guidance you can use to kic...
Posted on 14 January 2025 | 12:00 am

Access Route Model-Bound Models in Laravel Form Requests with "#[RouteParameter]"

Read about the #[RouteParameter] PHP attribute that you can use in Laravel to access route model-bound models in your form request...
Posted on 9 December 2024 | 12:00 am

Working with Images in Laravel Using Intervention Image

Learn about how to use Intervention Image (intervention/image) in your Laravel applications to resize, rotate, crop, and watermark...
Posted on 25 November 2024 | 12:00 am

Building Livewire Components with Volt

Read about how to use Volt to build Livewire components. We'll compare the functional API and class-based API and then look at how...
Posted on 28 October 2024 | 12:00 am

How to Set Up Your Mac for Web Design

In this guest article, we learn how to set up your Mac to get it ready for web design. Continue reading... ...
Posted on 23 October 2024 | 12:00 am

A Guide to Laravel Pipelines

Learn about how to use the Pipeline class in Laravel to break complex workflows into smaller, isolated, focused processes. We'll t...
Posted on 30 September 2024 | 12:00 am

Freelance Web Dev Hub: Free Community for Web Developers

Join the growing community of freelance web developers on Discord. It's a great place to ask questions, get support, and hang out ...
Posted on 17 September 2024 | 12:00 am

Review: Advanced Inertia

Read my review of the fantastic "Advanced Inertia" book by Boris Lepikhin. I give a brief summary of what's covered, then give my ...
Posted on 12 September 2024 | 12:00 am

Free Tool: Freelance Rate Calculator

Use the free "Freelance Rate Calculator" tool to calculate an hourly or daily rate from an annual summary (and vice versa). ...
Posted on 9 September 2024 | 12:00 am

Limit Eager Loaded Relationships on Laravel Models

Learn how to limit the eager-loaded relationships on Laravel models. We'll also take a look at the underlying SQL queries that are...
Posted on 8 September 2024 | 12:00 am

The Web Dev's Guide to Freelancing (Pre-Order Now)

The Web Dev's Guide to Freelancing is now available for pre-orders. It's packed with strategies, tips, and tricks to kickstart you...
Posted on 2 September 2024 | 12:00 am

Transform Your Business Strategy with a Powerful SWOT Analysis

What is a SWOT Analysis and Why Is It Important? How to Create an Effective SWOT Analysis for Your Business. What Are the Common M...
Posted on 29 August 2024 | 12:00 am