<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>ollieread.com - Laravel &amp; PHP Expert</title>
  <link href="https://ollieread.com" />
  <link href="https://ollieread.com/atom.xml" rel="self" type="application/atom+xml" />
  <id>https://ollieread.com</id>
  <updated>2026-05-20T15:58:50+00:00</updated>
  <author><name>Ollie Read</name><uri>https://ollieread.com</uri></author>
  <entry>
    <title>TheGamePanel: A Modern Alternative to Pterodactyl</title>
    <link href="https://ollieread.com/articles/thegamepanel-a-modern-alternative-to-pterodactyl" />
    <id>https://ollieread.com/articles/thegamepanel-a-modern-alternative-to-pterodactyl</id>
    <updated>2026-05-20T00:00:00+00:00</updated>
    <published>2026-05-20T00:00:00+00:00</published>
    <summary>After years of working with existing game server panels, I&#039;m building my own. The Game Panel is a modern alternative to Pterodactyl and Pelican, built from the ground up on a purpose-built PHP framework with a modular architecture designed for hosts and server owners alike.</summary>
  </entry>
  <entry>
    <title>Composer Run Dev and Laravel Sail</title>
    <link href="https://ollieread.com/articles/composer-run-dev-and-laravel-sail" />
    <id>https://ollieread.com/articles/composer-run-dev-and-laravel-sail</id>
    <updated>2026-03-24T00:00:00+00:00</updated>
    <published>2026-03-24T00:00:00+00:00</published>
    <summary>If, like me, you&#039;re a user of Laravel Sail for some of your Laravel projects, you&#039;ll have probably noticed that the 
default &#039;composer run dev&#039; command that ships with Laravel, just won&#039;t work for you. Well, I&#039;ve got a solution for 
you!
</summary>
  </entry>
  <entry>
    <title>Laravel&#039;s Route &quot;Model&quot; Binding</title>
    <link href="https://ollieread.com/articles/laravels-route-model-binding" />
    <id>https://ollieread.com/articles/laravels-route-model-binding</id>
    <updated>2025-12-03T00:00:00+00:00</updated>
    <published>2025-12-03T00:00:00+00:00</published>
    <summary>A source-driven walkthrough of how Laravel resolves route parameters into model instances, covering the UrlRoutable interface and implicit binding customization.</summary>
  </entry>
  <entry>
    <title>The Hidden Parts of Laravel</title>
    <link href="https://ollieread.com/series/the-hidden-parts-of-laravel" />
    <id>https://ollieread.com/series/the-hidden-parts-of-laravel</id>
    <updated>2025-12-03T00:00:00+00:00</updated>
    <published>2025-12-03T00:00:00+00:00</published>
    <summary>Laravel&#039;s documentation is excellent, but it doesn&#039;t cover everything. Tucked away in the framework&#039;s source code are features that are either briefly mentioned or entirely undocumented. This series explores those hidden capabilities, how they work, and how you can use them in your own projects.
</summary>
  </entry>
  <entry>
    <title>Manual Service Resolution in Laravel</title>
    <link href="https://ollieread.com/articles/manual-service-resolution-in-laravel" />
    <id>https://ollieread.com/articles/manual-service-resolution-in-laravel</id>
    <updated>2025-11-26T00:00:00+00:00</updated>
    <published>2025-11-26T00:00:00+00:00</published>
    <summary>An examination of the various methods for manually resolving services from Laravel&#039;s service container, with recommendations on which to use.</summary>
  </entry>
  <entry>
    <title>Laravel Middleware Priority</title>
    <link href="https://ollieread.com/articles/laravel-middleware-priority" />
    <id>https://ollieread.com/articles/laravel-middleware-priority</id>
    <updated>2025-11-19T00:00:00+00:00</updated>
    <published>2025-11-19T00:00:00+00:00</published>
    <summary>An exploration of Laravel&#039;s undocumented middleware priority feature that controls execution order when multiple middleware pieces apply to a route.</summary>
  </entry>
  <entry>
    <title>Decorating Services in Laravel</title>
    <link href="https://ollieread.com/articles/decorating-services-in-laravel" />
    <id>https://ollieread.com/articles/decorating-services-in-laravel</id>
    <updated>2025-11-11T00:00:00+00:00</updated>
    <published>2025-11-11T00:00:00+00:00</published>
    <summary>How to use Laravel&#039;s undocumented extend method to add functionality to existing services without modifying their code.</summary>
  </entry>
  <entry>
    <title>Introducing the Request-derived Context Pattern</title>
    <link href="https://ollieread.com/articles/introducing-the-request-derived-context-pattern" />
    <id>https://ollieread.com/articles/introducing-the-request-derived-context-pattern</id>
    <updated>2025-06-29T00:00:00+00:00</updated>
    <published>2025-06-29T00:00:00+00:00</published>
    <summary>Defining the Request-derived Context Pattern, an architectural approach for extracting and managing contextual  information from HTTP requests.
</summary>
  </entry>
  <entry>
    <title>Managing the Memory Usage of the Laravel Eloquent Identity Map</title>
    <link href="https://ollieread.com/articles/managing-the-memory-usage-of-the-laravel-eloquent-identity-map" />
    <id>https://ollieread.com/articles/managing-the-memory-usage-of-the-laravel-eloquent-identity-map</id>
    <updated>2025-06-10T00:00:00+00:00</updated>
    <published>2025-06-10T00:00:00+00:00</published>
    <summary>Addressing memory management challenges when using a Laravel Eloquent identity map, particularly in scenarios involving large model hydration or Laravel Octane environments.</summary>
  </entry>
  <entry>
    <title>Building An Eloquent Identity Map</title>
    <link href="https://ollieread.com/series/building-an-eloquent-identity-map" />
    <id>https://ollieread.com/series/building-an-eloquent-identity-map</id>
    <updated>2025-06-10T00:00:00+00:00</updated>
    <published>2025-06-10T00:00:00+00:00</published>
    <summary>A two-part series walking through the implementation of an identity map for Laravel Eloquent. The first article  introduces the pattern, explains what it achieves, and builds a minimal implementation using a custom base model  class. The second article follows up on the memory implications of that implementation, covering how to manage and  prevent memory leaks, particularly in long-lived processes such as those powered by Laravel Octane.
</summary>
  </entry>
  <entry>
    <title>A Minimal Identity Map for Laravel Eloquent</title>
    <link href="https://ollieread.com/articles/a-minimal-identity-map-for-laravel-eloquent" />
    <id>https://ollieread.com/articles/a-minimal-identity-map-for-laravel-eloquent</id>
    <updated>2025-05-21T00:00:00+00:00</updated>
    <published>2025-05-21T00:00:00+00:00</published>
    <summary>Implementing the Identity Map pattern for Laravel Eloquent to ensure consistent model instances across your application.</summary>
  </entry>
  <entry>
    <title>Avoiding Eager Loading When Registering Laravel Drivers</title>
    <link href="https://ollieread.com/articles/avoiding-eager-loading-when-registering-laravel-drivers" />
    <id>https://ollieread.com/articles/avoiding-eager-loading-when-registering-laravel-drivers</id>
    <updated>2025-05-05T00:00:00+00:00</updated>
    <published>2025-05-05T00:00:00+00:00</published>
    <summary>How to defer driver registration in Laravel to avoid eager loading features on every request.</summary>
  </entry>
  <entry>
    <title>Website revamp, new content and upcoming projects</title>
    <link href="https://ollieread.com/articles/website-revamp-new-content-and-upcoming-projects" />
    <id>https://ollieread.com/articles/website-revamp-new-content-and-upcoming-projects</id>
    <updated>2025-05-05T00:00:00+00:00</updated>
    <published>2025-05-05T00:00:00+00:00</published>
    <summary>Announcing the blog relaunch, initial articles, and upcoming educational products.</summary>
  </entry>
  <entry>
    <title>How to Hide Route Parameters from Controllers in Laravel</title>
    <link href="https://ollieread.com/articles/how-to-hide-route-parameters-from-controllers-in-laravel" />
    <id>https://ollieread.com/articles/how-to-hide-route-parameters-from-controllers-in-laravel</id>
    <updated>2025-05-05T00:00:00+00:00</updated>
    <published>2025-05-05T00:00:00+00:00</published>
    <summary>How to use Laravel&#039;s forgetParameter() method to remove route parameters from the controller&#039;s scope after they&#039;ve been processed.</summary>
  </entry>
</feed>
