Elektrine lite

← Feed

Joel Clermont

jclermont@phpc.social

<p>Organizer of Milwaukee PHP. Co-host of No Compromises <a href="https://phpc.social/tags/podcast" class="mention hashtag" rel="tag">#<span>podcast</span></a>. Helping <a href="https://phpc.social/tags/PHP" class="mention hashtag" rel="tag">#<span>PHP</span></a> and <a href="https://phpc.social/tags/Laravel" class="mention hashtag" rel="tag">#<span>Laravel</span></a> developers level up their skills.</p>

Posts

  • View post

    Have you ever had someone review your pull request, make changes without telling you, and just merge it in? In this week&#39;s podcast, Aaron and I discuss whether the traditional code review workflow still makes sense when AI tooling lets us move faster than ever. #php #laravel https://masteringlaravel.io/daily/2026-09-28-laravel-podcast-is-the-traditional-code-review-workflow-holding-you-back

  • View post

    Ever have a test that fails once out of 500 runs, then passes when you run it again? The test value you picked might be colliding with random Faker data. #php #laravel https://masteringlaravel.io/daily/2026-08-12-republished-picking-a-good-test-value

  • View post

    You pass a model to Mockery&amp;#39;s with() and the test fails, even though your code called the service with the right model. Here&amp;#39;s a cleaner way to match it. #php #laravel https://masteringlaravel.io/daily/2026-08-13-when-mockery-says-your-eloquent-model-doesnt-match

  • View post

    In today&amp;#39;s video, watch a listener with the wrong import silently stop working, with no errors anywhere, and see the one-line test that catches it instantly. #php #laravel https://masteringlaravel.io/daily/2026-08-14-video-make-sure-your-listeners-are-wired-up

  • View post

    When your app is behind a reverse proxy, it might seem like an easy fix to just force HTTPS to make your links render correctly, but it totally ignores other important behavior that remains broken, like rate limiting. #php #laravel https://masteringlaravel.io/daily/2026-08-17-the-downside-of-just-forcing-https-when-behind-a-reverse-proxy

  • View post

    Composer insisted the class didn&amp;#39;t exist, but it was sitting right there in the vendor folder. The problem was the package, but I&amp;#39;ll explain how we fixed it with Composer and why we picked the approach we did. #php #laravel https://masteringlaravel.io/daily/2026-08-18-when-composer-cant-find-a-class-that-exists

  • View post

    You don&amp;#39;t need to obsess over your site analytics, but an occasional look can pay off. One glance at ours revealed a stranger already selling our book for us. #php #laravel https://masteringlaravel.io/daily/2026-08-19-republished-pay-attention-to-analytics

  • View post

    Most factory states just flip a flag, but they can also accept arguments. That opens up some useful patterns, like deriving test data from another model. #php #laravel https://masteringlaravel.io/daily/2026-08-20-factory-states-can-accept-arguments

  • View post

    In today&amp;#39;s video, watch a paginated list quietly show some records twice while never showing others, and see the one-line fix that makes pagination deterministic. #php #laravel https://masteringlaravel.io/daily/2026-08-21-video-why-pagination-sometimes-has-overlapping-pages

  • View post

    Ever been told your slow app just needs caching? In this week&amp;#39;s podcast, Aaron and I break down the layers of caching in a Laravel app, from the Cloudflare edge down to in-request memoization. #php #laravel https://masteringlaravel.io/daily/2026-08-24-laravel-podcast-which-layer-of-caching-does-your-slow-app-actually-need

  • View post

    JSON language files use the string itself as the key, so where does the pluralization pipe go? Today&amp;#39;s tip shows it works exactly like array files, once you get past how strange it looks. #php #laravel https://masteringlaravel.io/daily/2026-08-25-pluralization-works-in-json-language-files

  • View post

    Automated tests catch most bugs, but not all of them. Today&amp;#39;s tip is a reminder of why I still click through the app before pushing my code. #php #laravel https://masteringlaravel.io/daily/2026-08-26-republished-manual-testing-still-has-its-place

  • View post

    Laravel redirects back to the previous page when validation fails, but what happens when there is no sensible previous page? Today&amp;#39;s tip covers a redirect loop that shows up with bookmarks and new tabs, and a simple way to stop it. #php #laravel https://masteringlaravel.io/daily/2026-08-27-when-a-validation-failure-causes-a-redirect-loop

  • View post

    Dropping an index in a down migration usually means guessing at its name. Today&amp;#39;s tip shows a cleaner way that lets Laravel figure it out for you. #php #laravel https://masteringlaravel.io/daily/2026-08-28-republished-a-better-way-to-drop-a-unique-index

  • View post

    Converting an Eloquent casts property to the newer casts method looks like a pure style choice for which syntax you prefer, but here&amp;#39;s a real-world example where the two behave differently. #php #aravel https://masteringlaravel.io/daily/2026-08-31-when-new-syntax-is-not-actually-equivalent-functionality

  • View post

    Pennant defaults to the database driver, but not every feature flag needs a table row and a query. Today&amp;#39;s tip shows when the array driver is the lighter choice. #php #laravel https://masteringlaravel.io/daily/2026-09-01-you-dont-always-need-to-put-pennant-in-the-database

  • View post

    Sometimes multiple controller actions need the same guard logic, but it doesn&amp;#39;t belong in a policy or form request. Here&amp;#39;s a clean way to share redirect logic without messy hacks. #php #laravel https://masteringlaravel.io/daily/2026-09-02-republished-sharing-redirect-logic-between-controller-actions

  • View post

    Laravel serializes a model&amp;#39;s loaded relationships when you queue a job, but not when you queue a collection of models. Here&amp;#39;s the right way to load relationships inside the job. #php #laravel https://masteringlaravel.io/daily/2026-09-03-republished-loading-relationships-inside-a-queued-job

  • View post

    If another site loads a script built by your Laravel app, switching to Vite can quietly break it. Here&amp;#39;s the CORS gotcha we hit and how we fixed it. #php #laravel https://masteringlaravel.io/daily/2026-09-04-republished-something-to-know-if-serving-scripts-for-other-sites

  • View post

    Ever handed off a feature request with barely any detail and expected the developer to just figure it out? In this week&amp;#39;s podcast, Aaron and I make the case for writing requirements before development starts, and why letting AI write them for you is a trap. #php #laravel https://masteringlaravel.io/daily/2026-09-07-laravel-podcast-write-better-requirements-or-pay-for-it-later

  • View post

    Laravel 13 ships with a hardened cache serialization default. It&#39;s a real security win, but when it breaks, you don&#39;t get an exception. Here&#39;s how it works and what to watch for. #php #laravel https://masteringlaravel.io/daily/2026-08-04-the-sneaky-failure-mode-in-laravel-13s-hardened-cache

  • View post

    Attackers have been abusing PHP object deserialization since before Laravel existed. Here&#39;s how those attacks work, and a way to protect against them. #php #laravel https://masteringlaravel.io/daily/2026-08-03-why-unserialize-is-on-every-php-security-checklist

  • View post

    We use UI toolkits to help us make styling decisions easier, but does this mean we always accept their decisions? Let me share a recent example where I pushed back on the defaults. #php #laravel https://masteringlaravel.io/daily/2026-07-30-does-this-field-look-readonly-to-you

  • View post

    Ever been tempted to make a property public just so a test can assert on it? Today&#39;s tip shares a rule we follow on every project, and the trick that lets you keep your tests isolated without touching application code. #php #laravel https://masteringlaravel.io/daily/2026-07-29-republished-avoid-changing-your-code-purely-for-a-test

  • View post

    Ever mock a facade and have your macro mysteriously disappear? Today&#39;s tip shows a technique for testing macros you&#39;ve added to classes you don&#39;t own. #php #laravel https://masteringlaravel.io/daily/2026-07-28-how-to-test-a-macro-on-a-class-you-dont-own

  • View post

    Would you let an AI agent run commands on your production server? In this week&#39;s podcast, Aaron and I explain why that&#39;s just as reckless as FTPing code straight to production. #php #laravel https://masteringlaravel.io/daily/2026-07-27-laravel-podcast-running-ai-agents-on-your-production-server-is-the-new-ftp

  • View post

    In today&#39;s video, learn how to keep dev tooling out of your production Docker image by giving each Dockerfile its own ignore file, plus a gotcha in how Docker decides which one to use. #php #laravel https://masteringlaravel.io/daily/2026-07-24-video-ignoring-files-per-environment-with-docker

  • View post

    In Laravel you reach for Storage::fake() to keep tests from writing real files. But what about code that uses raw fopen or fwrite? Here is the tool for that. #php #laravel https://masteringlaravel.io/daily/2026-07-23-how-to-keep-your-tests-off-the-real-filesystem

  • View post

    If you isolate a Valet site to a specific PHP version, your Composer scripts might still run on the system default. One small prefix fixes it. #php #laravel https://masteringlaravel.io/daily/2026-07-22-republished-composer-scripts-and-valet-isolate

  • View post

    A public property in Livewire can be edited from the browser, even one you never put in a form. There&#39;s a one-line attribute that stops it, and I keep forgetting it exists. #php #laravel https://masteringlaravel.io/daily/2026-07-21-the-livewire-security-feature-i-keep-forgetting-to-use