<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Shocm&apos;s Blog</title><description>My simple Blog</description><link>https://shocm.me/</link><language>en-us</language><item><title>Build a Drag-and-Drop Board in Livewire 4 with wire:sort and wire:transition</title><link>https://shocm.me/posts/2026-10-19-livewire-4-wire-sort-wire-transition-kanban/</link><guid isPermaLink="true">https://shocm.me/posts/2026-10-19-livewire-4-wire-sort-wire-transition-kanban/</guid><description>Build a drag-and-drop task board in Livewire 4 with wire:sort and wire:transition, including how to persist the order and what browsers support.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Claude Code Hooks Can Now Fail Closed: onFailure Block for PHP Guardrails</title><link>https://shocm.me/posts/2026-10-17-claude-code-onfailure-block-fail-closed-hooks/</link><guid isPermaLink="true">https://shocm.me/posts/2026-10-17-claude-code-onfailure-block-fail-closed-hooks/</guid><description>Claude Code 2.1.295 adds onFailure &quot;block&quot; to hooks, so a broken guard script stops the action instead of waving it through. Here is a PHP setup.</description><pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Laravel AI SDK 1.1: Agent Skills, Tool Approval, and Safer Failover</title><link>https://shocm.me/posts/2026-10-15-laravel-ai-sdk-1-1-agent-skills-tool-approval/</link><guid isPermaLink="true">https://shocm.me/posts/2026-10-15-laravel-ai-sdk-1-1-agent-skills-tool-approval/</guid><description>Laravel AI SDK 1.1 adds Agent Skills, approval for built-in tools and safer provider failover. Here is what changed and what to check before upgrading.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Test Your App on PHP 8.6 RC3 Today with Docker and GitHub Actions</title><link>https://shocm.me/posts/2026-10-13-test-php-86-rc-docker-github-actions/</link><guid isPermaLink="true">https://shocm.me/posts/2026-10-13-test-php-86-rc-docker-github-actions/</guid><description>PHP 8.6 is in release candidate stage with GA planned for November 19. Here is how to run your tests against it with Docker and a CI matrix job now.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.6 Deprecations: Find Them in Your Codebase Before November 19</title><link>https://shocm.me/posts/2026-10-10-php-86-deprecations-upgrade-scanner/</link><guid isPermaLink="true">https://shocm.me/posts/2026-10-10-php-86-deprecations-upgrade-scanner/</guid><description>PHP 8.6 ships November 19 with a long list of deprecations. Here is which ones will hit real code and a small token-based scanner that finds them.</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.6 pack() and unpack() Get Endianness Modifiers</title><link>https://shocm.me/posts/2026-10-06-php-86-pack-unpack-endianness-modifiers/</link><guid isPermaLink="true">https://shocm.me/posts/2026-10-06-php-86-pack-unpack-endianness-modifiers/</guid><description>PHP 8.6 adds &lt; and &gt; endianness modifiers to pack() and unpack() for signed integers and floats. Here is the syntax, the rules, and one upgrade gotcha.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Laravel 14 Eloquent defaults(): Model Attribute Defaults That Run Code</title><link>https://shocm.me/posts/2026-10-05-laravel-14-eloquent-model-defaults-method/</link><guid isPermaLink="true">https://shocm.me/posts/2026-10-05-laravel-14-eloquent-model-defaults-method/</guid><description>Laravel 14 adds a defaults() method to Eloquent models, so attribute defaults can use config, feature flags, and dates. Here is how it behaves.</description><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.6 clamp() and Duration: Cleaner Retry Backoff for PHP Apps</title><link>https://shocm.me/posts/2026-10-04-php-86-clamp-duration-retry-backoff/</link><guid isPermaLink="true">https://shocm.me/posts/2026-10-04-php-86-clamp-duration-retry-backoff/</guid><description>PHP 8.6 adds clamp() and a nanosecond-precision Time\Duration class. See how they tidy up exponential backoff and other bounded-value code.</description><pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Governments Run on PHP. Here Is How You Can Help Fund and Fix It</title><link>https://shocm.me/posts/2026-09-30-php-foundation-digital-sovereignty-community-hour/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-30-php-foundation-digital-sovereignty-community-hour/</guid><description>Germany is spending 108 million euros on a PHP CMS while the PHP Foundation raised $730K. What that gap means and how PHP developers can close it.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MySQL 26.7 Hands the Thread Pool to Community, and PHP-FPM Is Why You Care</title><link>https://shocm.me/posts/2026-09-29-mysql-267-thread-pool-community-php-fpm/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-29-mysql-267-thread-pool-community-php-fpm/</guid><description>The thread pool plugin left Enterprise in MySQL 26.7. For PHP-FPM shops, it changes what an idle connection costs. Here is how to size it.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>NativePHP Mobile 4.5: Async Tasks Give You a Second PHP Thread</title><link>https://shocm.me/posts/2026-09-26-nativephp-mobile-async-tasks/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-26-nativephp-mobile-async-tasks/</guid><description>NativePHP Mobile 4.5.0 adds AsyncTask, which runs PHP on a background thread and fires your callback back on the UI thread so the screen never freezes.</description><pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Laravel Vet Makes You Read the Code Composer Is About to Install</title><link>https://shocm.me/posts/2026-09-24-laravel-vet-composer-dependency-audit/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-24-laravel-vet-composer-dependency-audit/</guid><description>Vet is a Composer plugin that shows the diff of every dependency update before it lands in vendor, and records what you trust in a vet.json file.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Symfony 8.2 Is Taking FrameworkBundle Apart, and You Will Feel It in bundles.php</title><link>https://shocm.me/posts/2026-09-21-symfony-82-frameworkbundle-split-standalone-bundles/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-21-symfony-82-frameworkbundle-split-standalone-bundles/</guid><description>Two dozen standalone bundles landed on the Symfony 8.2 branch in one week. Here is what MessengerBundle, CacheBundle and friends mean for your app.</description><pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Laravel 13.31 Finishes the Queue Drain You Have Been Faking in Bash</title><link>https://shocm.me/posts/2026-09-19-laravel-queue-drain-deploy-pause-all-totalsize/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-19-laravel-queue-drain-deploy-pause-all-totalsize/</guid><description>Four releases across 2026 quietly assembled a real queue drain gate for deploys. Here is how pauseAll, allReservedJobs, and totalSize fit together.</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.6 Caches Stateless Closures, but Only the Ones You Marked static Yourself</title><link>https://shocm.me/posts/2026-09-18-php-86-closure-optimizations-static-closures/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-18-php-86-closure-optimizations-static-closures/</guid><description>The closure optimizations RFC passed 24 to 0 and then shipped half. Static inference was pulled in August, so typing static on your closures is back on you.</description><pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Laravel 13 Vector Search Now Runs on MariaDB, and the AsVector Cast Is What Makes It Usable</title><link>https://shocm.me/posts/2026-09-14-laravel-13-mariadb-vector-search-asvector-cast/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-14-laravel-13-mariadb-vector-search-asvector-cast/</guid><description>whereVectorSimilarTo now compiles to MariaDB&apos;s vec_distance_cosine, and the new AsVector Eloquent cast handles the binary vector column format.</description><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.6 Gives Streams Real Errors, and You Can Finally Stop Parsing Warning Strings</title><link>https://shocm.me/posts/2026-09-10-php-86-stream-error-handling/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-10-php-86-stream-error-handling/</guid><description>PHP 8.6 adds StreamErrorMode, StreamError objects and stream_last_errors(), so a failed fopen() reports a typed code instead of a warning string.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Stop Asking Claude to Run Pint: Enforce Your PHP Toolchain With Hooks</title><link>https://shocm.me/posts/2026-09-08-claude-code-hooks-php-pint-phpstan/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-08-claude-code-hooks-php-pint-phpstan/</guid><description>Claude Code hooks turn Pint, PHPStan, and Pest from polite CLAUDE.md requests into shell commands that always run. Here is the exact setup for PHP.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Partial Function Application Lands in PHP 8.6, and the Pipe Operator Finally Makes Sense</title><link>https://shocm.me/posts/2026-09-07-php-86-partial-function-application/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-07-php-86-partial-function-application/</guid><description>PHP 8.6 ships partial function application. The ? and ... placeholders build closures from any callable, and they make the 8.5 pipe operator usable.</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Symfony Finally Has an Official LSP, and It Boots Your Kernel</title><link>https://shocm.me/posts/2026-09-06-symfony-language-tools-lsp-neovim/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-06-symfony-language-tools-lsp-neovim/</guid><description>Symfony Language Tools is the official Symfony language server. It boots your app to read the real container, and it runs in Neovim, Zed and VS Code.</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Move Buckets Without a Big-Bang Sync: Laravel&apos;s Read-Through Disk</title><link>https://shocm.me/posts/2026-09-01-laravel-read-through-filesystem-storage-migration/</link><guid isPermaLink="true">https://shocm.me/posts/2026-09-01-laravel-read-through-filesystem-storage-migration/</guid><description>Laravel 13.26 adds a read-through filesystem driver that stacks a new disk over the old one and promotes files on first read, no bulk sync needed.</description><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Your failed_jobs Table Is Logging Customer Emails: Binding Masking in Laravel 13.27</title><link>https://shocm.me/posts/2026-08-31-laravel-13-27-mask-query-bindings-exception-messages/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-31-laravel-13-27-mask-query-bindings-exception-messages/</guid><description>Laravel 13.27 adds a per-connection option that keeps query bindings out of QueryException messages, your logs, and your failed_jobs table.</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Readonly Property Defaults in PHP 8.6: A Four-Year-Old Restriction Finally Lifts</title><link>https://shocm.me/posts/2026-08-30-php-86-readonly-property-defaults/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-30-php-86-readonly-property-defaults/</guid><description>PHP 8.6 lets readonly properties declare default values. Here is what changed, why interface properties made it worthwhile, and the edge cases to watch.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>cpx 2.0: PHP Finally Has Its Own npx</title><link>https://shocm.me/posts/2026-08-29-cpx-2-composer-package-executor/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-29-cpx-2-composer-package-executor/</guid><description>cpx 2.0 runs any Composer package command without installing it. Local binaries win by default, aliases are yours to define, and agents get JSON output.</description><pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Io\Poll: PHP 8.6 Finally Replaces stream_select()</title><link>https://shocm.me/posts/2026-08-26-php-86-io-poll-polling-api/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-26-php-86-io-poll-polling-api/</guid><description>PHP 8.6 ships a native Io\Poll API backed by epoll, kqueue, and WSAPoll. What it fixes about stream_select, and how the new Context and Watcher classes work.</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.5.10 and 8.4.25: The Stack Overflow Hardening Wave Hits Core Array and DOM Functions</title><link>https://shocm.me/posts/2026-08-21-php-stack-overflow-hardening-8-5-10/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-21-php-stack-overflow-hardening-8-5-10/</guid><description>PHP 8.4.25 and 8.5.10 RC add stack limit checks to array_walk_recursive, compact, array comparison, and DOM normalize. Segfaults become catchable Errors.</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Symfony Reprise: What Comes After Webpack Encore</title><link>https://shocm.me/posts/2026-08-20-symfony-reprise-vite-rsbuild/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-20-symfony-reprise-vite-rsbuild/</guid><description>Webpack Encore is in maintenance mode. Symfony Reprise wires Vite and Rsbuild into Symfony instead, with a near tag-for-tag Twig swap.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Alpine.js x-anchor Gets Fixed Positioning, .noflip, and a Livewire Teleport Fix</title><link>https://shocm.me/posts/2026-08-18-alpinejs-anchor-fixed-positioning-livewire/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-18-alpinejs-anchor-fixed-positioning-livewire/</guid><description>Alpine.js v3.15.9 through v3.15.12 quietly reworked x-anchor with .fixed positioning, .noflip, dynamic refs, and fixed a Livewire teleport memory leak.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Livewire&apos;s New #[Authorize] Attribute: Declarative Authorization for Actions</title><link>https://shocm.me/posts/2026-08-16-livewire-authorize-attribute/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-16-livewire-authorize-attribute/</guid><description>Livewire 4.3 added a declarative #[Authorize] attribute for actions, closing a common gap. How it works, the fixes since, and where it still falls short.</description><pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Laravel LSP: First-Party Editor Intelligence Finally Comes to Neovim</title><link>https://shocm.me/posts/2026-08-13-laravel-lsp-neovim-editor-support/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-13-laravel-lsp-neovim-editor-support/</guid><description>Laravel LSP brings route, config, and Blade autocomplete to any editor that speaks LSP. Here is how to install it and wire it into Neovim.</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate></item><item><title>MySQL 9.7 LTS: What PHP Developers Need to Know Before Upgrading</title><link>https://shocm.me/posts/2026-08-10-mysql-97-lts-hypergraph-optimizer/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-10-mysql-97-lts-hypergraph-optimizer/</guid><description>MySQL 9.7 LTS brings the Hypergraph Optimizer and JSON Duality View writes to Community Edition, plus a repo bug that quietly upgrades production servers.</description><pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate></item><item><title>NativePHP v4&apos;s SuperNative: Real SwiftUI and Compose Screens From Blade</title><link>https://shocm.me/posts/2026-08-08-nativephp-supernative-architecture/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-08-nativephp-supernative-architecture/</guid><description>NativePHP for Mobile v4 introduces SuperNative, rendering native SwiftUI and Jetpack Compose screens from Blade with no web view involved.</description><pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate></item><item><title>PHP Foundation Q2 2026: URI Builders, Raw Sockets, and a Leaner zval</title><link>https://shocm.me/posts/2026-08-06-php-foundation-q2-2026-report/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-06-php-foundation-q2-2026-report/</guid><description>The PHP Foundation&apos;s first quarterly report covers ext/uri Builder classes, raw AF_PACKET sockets, a zval size experiment, PIE 1.5, and 100+ security fixes.</description><pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.6 Finally Makes Session Cookies Secure by Default</title><link>https://shocm.me/posts/2026-08-04-php-86-secure-session-defaults/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-04-php-86-secure-session-defaults/</guid><description>PHP 8.6 flips three insecure session defaults, use_strict_mode, cookie_httponly, and cookie_samesite, closing gaps OWASP has flagged for years.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Bus::bulk() in Laravel 13.13: Fast Dispatch Without Batch Overhead</title><link>https://shocm.me/posts/2026-08-02-laravel-bus-bulk-job-dispatch/</link><guid isPermaLink="true">https://shocm.me/posts/2026-08-02-laravel-bus-bulk-job-dispatch/</guid><description>Laravel 13.13 adds Bus::bulk() for high-volume job dispatch. How it groups jobs by queue and connection, and when to prefer it over batch() or dispatch().</description><pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate></item><item><title>NativePHP Desktop 2.2: Nightwatch Support, and a Loopback Fix You Should Not Skip</title><link>https://shocm.me/posts/2026-07-30-nativephp-desktop-22-loopback-security-fix/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-30-nativephp-desktop-22-loopback-security-fix/</guid><description>NativePHP Desktop 2.2 adds Nightwatch integration and window polish, then 2.2.1 patches a real issue where the Electron API server could bind past localhost.</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Laravel&apos;s New @fonts Blade Directive Kills the Web Font Boilerplate</title><link>https://shocm.me/posts/2026-07-28-laravel-fonts-blade-directive-vite/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-28-laravel-fonts-blade-directive-vite/</guid><description>Laravel 13.x adds a @fonts Blade directive backed by a Vite font runtime, turning self-hosted Google, Bunny, and Fontsource fonts into one line of markup.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Building a Reliable Job Queue on MySQL with SKIP LOCKED</title><link>https://shocm.me/posts/2026-07-25-mysql-skip-locked-job-queue-php/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-25-mysql-skip-locked-job-queue-php/</guid><description>How MySQL&apos;s SELECT FOR UPDATE SKIP LOCKED lets PHP workers pull jobs from a queue table concurrently without deadlocks, and how Laravel already uses it.</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Closures in Constant Expressions: PHP 8.5&apos;s Quiet Power Feature</title><link>https://shocm.me/posts/2026-07-24-php-85-closures-in-constant-expressions/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-24-php-85-closures-in-constant-expressions/</guid><description>PHP 8.5 lets you place static closures and first-class callables in constant expressions, so attributes and default arguments can finally carry real logic.</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Filament Tables Without Eloquent: The records() Method for Arrays and APIs</title><link>https://shocm.me/posts/2026-07-23-filament-tables-without-eloquent-records-method/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-23-filament-tables-without-eloquent-records-method/</guid><description>Filament&apos;s records() method builds tables from arrays or a REST API instead of Eloquent. Here is how to wire up columns, sorting, search, and paging.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Top-N-Per-Group in MySQL: LATERAL Derived Tables for PHP Developers</title><link>https://shocm.me/posts/2026-07-22-mysql-lateral-derived-tables-top-n-per-group/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-22-mysql-lateral-derived-tables-top-n-per-group/</guid><description>MySQL&apos;s LATERAL derived tables solve the top-N-per-group problem cleanly. Here is how PHP and Laravel developers use them with joinLateral and raw SQL.</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Single-Use Signed URLs Are Coming to Symfony&apos;s UriSigner</title><link>https://shocm.me/posts/2026-07-21-symfony-urisigner-single-use-signed-urls/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-21-symfony-urisigner-single-use-signed-urls/</guid><description>Symfony 8.2 adds a $version argument to UriSigner so a signed URL invalidates itself after one use. A clean native fix for password reset and login links.</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate></item><item><title>The HTTP QUERY Method Comes to Laravel 13.19</title><link>https://shocm.me/posts/2026-07-20-laravel-13-19-http-query-method/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-20-laravel-13-19-http-query-method/</guid><description>Laravel 13.19 adds Http::query() and query/queryJson test helpers for the HTTP QUERY verb, a safe method that carries its parameters in the body.</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate></item><item><title>The artisan dev Command: Laravel 13.16 Moves Your Dev Stack Into PHP</title><link>https://shocm.me/posts/2026-07-19-laravel-artisan-dev-command/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-19-laravel-artisan-dev-command/</guid><description>Laravel 13.16 turns composer dev into a first-class artisan dev command, moving your concurrent dev processes out of composer.json and into PHP.</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate></item><item><title>NativePHP Mobile v3: The Persistent PHP Runtime Changes Everything</title><link>https://shocm.me/posts/2026-07-18-nativephp-mobile-persistent-php-runtime/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-18-nativephp-mobile-persistent-php-runtime/</guid><description>NativePHP Mobile v3 boots Laravel once and reuses the kernel, cutting response times from ~200-300ms to ~5-30ms, plus a real background queue worker.</description><pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate></item><item><title>array_first() and array_last(): PHP 8.5 Finally Gives Us the Obvious Functions</title><link>https://shocm.me/posts/2026-07-17-php-85-array-first-array-last/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-17-php-85-array-first-array-last/</guid><description>PHP 8.5 adds array_first() and array_last() to read the ends of an array without touching the internal pointer. Here is how they work and why they matter.</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>The Pipe Operator in PHP 8.5: Cleaner Chaining Without the Nesting</title><link>https://shocm.me/posts/2026-07-16-php-85-pipe-operator-guide/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-16-php-85-pipe-operator-guide/</guid><description>PHP 8.5 ships the pipe operator (|&gt;) for chaining callables left to right. Here is how it works, the rules it follows, and when it earns its place.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Spec-Compliant APIs Without the Package: Laravel 13&apos;s JSON:API Resources</title><link>https://shocm.me/posts/2026-07-15-laravel-13-json-api-resources/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-15-laravel-13-json-api-resources/</guid><description>Laravel 13 ships first-party JSON:API resources. See how JsonApiResource handles types, relationships, sparse fieldsets, and includes with less code.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate></item><item><title>As Easy as PIE: PHP&apos;s New Extension Installer Retires PECL</title><link>https://shocm.me/posts/2026-07-14-pie-php-extension-installer-pecl-replacement/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-14-pie-php-extension-installer-pecl-replacement/</guid><description>PECL is officially deprecated. Here is how PHP&apos;s new extension installer PIE works, why it exists, and how to use it to manage extensions like Composer.</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Stay in the Terminal: Managing MySQL with lazysql, a TUI Database Client</title><link>https://shocm.me/posts/2026-07-13-lazysql-tui-database-client-php-developers/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-13-lazysql-tui-database-client-php-developers/</guid><description>lazysql is a fast, Vim-friendly terminal UI for MySQL and PostgreSQL. Here is how PHP developers browse, query, and edit databases without leaving the shell.</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Less Boilerplate, More Console: Symfony 7.4&apos;s Improved Invokable Commands</title><link>https://shocm.me/posts/2026-07-12-symfony-74-improved-invokable-commands/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-12-symfony-74-improved-invokable-commands/</guid><description>Symfony 7.4 upgrades invokable console commands with enum arguments, a MapInput DTO attribute, and new interactive prompts. Here is how to use each one.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Fatal Errors Finally Get a Stack Trace: PHP 8.5&apos;s fatal_error_backtraces</title><link>https://shocm.me/posts/2026-07-11-php-85-fatal-error-backtraces/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-11-php-85-fatal-error-backtraces/</guid><description>PHP 8.5 gives fatal errors a full stack trace by default. Here is how the fatal_error_backtraces directive works and how to tune it in production.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Positioning UI the Easy Way: Alpine&apos;s x-anchor Plugin and the New .fixed Modifier</title><link>https://shocm.me/posts/2026-07-10-alpinejs-x-anchor-plugin-positioning/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-10-alpinejs-x-anchor-plugin-positioning/</guid><description>Build dropdowns, tooltips, and popovers that stay glued to their trigger using Alpine&apos;s x-anchor plugin, including the new .fixed modifier shipped in May 2026.</description><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate></item><item><title>The Laravel AI SDK: Building AI Agents Without Leaving PHP</title><link>https://shocm.me/posts/2026-07-09-laravel-ai-sdk-agents-php/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-09-laravel-ai-sdk-agents-php/</guid><description>A practical tour of the Laravel AI SDK. Provider-agnostic agents, tools, structured output, and pgvector semantic search, all in idiomatic PHP.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate></item><item><title>PhpStorm 2026.1: The IDE Becomes an Open Platform for AI Agents</title><link>https://shocm.me/posts/2026-07-08-phpstorm-2026-1-agentic-ide-mcp-claude-code/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-08-phpstorm-2026-1-agentic-ide-mcp-claude-code/</guid><description>PhpStorm 2026.1 expands its MCP server, adds a Claude Code plugin, ships Git worktrees for parallel agents, and a PHP 8.5 pipe operator quick-fix.</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate></item><item><title>MySQL Invisible Indexes: Test a Drop Before You Commit to It</title><link>https://shocm.me/posts/2026-07-07-mysql-invisible-indexes-safe-drops/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-07-mysql-invisible-indexes-safe-drops/</guid><description>MySQL invisible indexes let you test whether an index is safe to drop without a destructive change. Here is how PHP and Laravel developers can use them.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Route Metadata in Laravel 13.17: Structured Data That Survives Route Caching</title><link>https://shocm.me/posts/2026-07-06-laravel-13-17-route-metadata/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-06-laravel-13-17-route-metadata/</guid><description>Laravel 13.17 promotes route metadata to a first-class attribute with dot-notation reads and group cascading that survives route:cache. Here is how to use it.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Scaling Laravel Queue Workers: Idle Shutdown and SQS Overflow Storage</title><link>https://shocm.me/posts/2026-07-05-laravel-queue-workers-idle-shutdown-sqs-overflow/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-05-laravel-queue-workers-idle-shutdown-sqs-overflow/</guid><description>How Laravel 13.10 makes queue workers cheaper to run with --stop-when-empty-for, the WorkerIdle event, and SQS overflow storage for oversized job payloads.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Pest 4 Browser Testing: One Suite for Unit, Feature, and the Browser</title><link>https://shocm.me/posts/2026-07-04-pest-4-browser-testing-laravel/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-04-pest-4-browser-testing-laravel/</guid><description>A practical guide to Pest 4 browser testing in Laravel: setup, the sign-in flow, smoke assertions, subdomain testing with withHost, and visual regression.</description><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Laravel Pennant: A Practical Guide to Feature Flags</title><link>https://shocm.me/posts/2026-07-03-laravel-pennant-feature-flags-guide/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-03-laravel-pennant-feature-flags-guide/</guid><description>A hands-on guide to feature flags with Laravel Pennant covering scopes, rich values, gradual rollouts with Lottery, testing, and cleanup in production.</description><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Composer 2.10: Malware Filtering and Dependency Policies for PHP</title><link>https://shocm.me/posts/2026-07-02-composer-2-10-malware-filtering-dependency-policies/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-02-composer-2-10-malware-filtering-dependency-policies/</guid><description>Composer 2.10 adds native malware blocking and a unified config.policy framework for PHP supply chain security. Here is how it works and how to tune it.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Composite and Covering Indexes in MySQL: Getting Column Order Right</title><link>https://shocm.me/posts/2026-07-01-mysql-composite-covering-index-design/</link><guid isPermaLink="true">https://shocm.me/posts/2026-07-01-mysql-composite-covering-index-design/</guid><description>How MySQL composite indexes really work, why column order decides everything, and how covering indexes skip table lookups entirely for PHP developers.</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Inside the True Async RFC: PHP&apos;s Long Road to Native Coroutines</title><link>https://shocm.me/posts/2026-06-30-php-true-async-rfc-coroutines/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-30-php-true-async-rfc-coroutines/</guid><description>A clear look at PHP&apos;s True Async RFC, the spawn and await coroutine model, why version 1.6 was voted down, and where native async is heading for PHP 8.6.</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Laravel 13 PHP Attributes: Cleaner Eloquent Models Without Breaking Anything</title><link>https://shocm.me/posts/2026-06-29-laravel-13-php-attributes-eloquent-models/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-29-laravel-13-php-attributes-eloquent-models/</guid><description>Laravel 13 lets you declare Eloquent config like fillable, hidden, and table with native PHP attributes. Here is how the new syntax works in practice.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Inside the PHP Foundation&apos;s Ecosystem Security Team: One Month In</title><link>https://shocm.me/posts/2026-06-28-php-foundation-ecosystem-security-team/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-28-php-foundation-ecosystem-security-team/</guid><description>The PHP Foundation&apos;s new Ecosystem Security Team scanned 300+ Composer packages in its first month. Here is what shipped and how to get involved.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate></item><item><title>NativePHP Mobile v3: Building Your First Native Plugin</title><link>https://shocm.me/posts/2026-06-27-nativephp-mobile-v3-plugin-architecture/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-27-nativephp-mobile-v3-plugin-architecture/</guid><description>NativePHP Mobile v3 (Air) is free, MIT-licensed, and built on a modular plugin system. Here is how the plugin architecture works and how to build one.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Symfony AI: A Practical Guide to PHP&apos;s New Agent Toolkit</title><link>https://shocm.me/posts/2026-06-26-symfony-ai-components-guide/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-26-symfony-ai-components-guide/</guid><description>Symfony AI is nearing 1.0 with components for agents, tools, and one unified API across OpenAI, Anthropic, and Gemini. Here is how to use it in PHP.</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Graceful Queue Shutdowns: Laravel&apos;s Interruptible Job Interface</title><link>https://shocm.me/posts/2026-06-25-laravel-interruptible-jobs-graceful-shutdown/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-25-laravel-interruptible-jobs-graceful-shutdown/</guid><description>Laravel&apos;s Interruptible interface lets queued jobs catch SIGTERM during deploys, so long-running work can stop loops, release locks, and save state cleanly.</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Laravel Wayfinder&apos;s Next Beta: End-to-End Type Safety From PHP to TypeScript</title><link>https://shocm.me/posts/2026-06-24-laravel-wayfinder-end-to-end-type-safety/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-24-laravel-wayfinder-end-to-end-type-safety/</guid><description>Laravel Wayfinder&apos;s next beta generates typed TypeScript from your PHP for routes, models, enums, Inertia props, and broadcasts. Here is how it works.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Generics in PHP? Inside the Bound-Erased Generic Types RFC</title><link>https://shocm.me/posts/2026-06-23-php-generics-bound-erased-rfc/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-23-php-generics-bound-erased-rfc/</guid><description>PHP&apos;s Bound-Erased Generic Types RFC brings native generic syntax to PHP 8.6. Here is how bound erasure works, the syntax, and why the vote is contested.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate></item><item><title>One Command to Rule Them All: Laravel 13&apos;s New artisan dev</title><link>https://shocm.me/posts/2026-06-22-laravel-13-artisan-dev-command/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-22-laravel-13-artisan-dev-command/</guid><description>Laravel 13.16 ships a php artisan dev command that runs your server, queue, logs, and Vite together. Here is how to configure it in your app code.</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Step Debugging PHP in NeoVim: nvim-dap and Xdebug, Done Right</title><link>https://shocm.me/posts/2026-06-21-nvim-dap-php-xdebug-debugging/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-21-nvim-dap-php-xdebug-debugging/</guid><description>A practical guide to wiring up nvim-dap with Xdebug 3 so you can set breakpoints and step through PHP code without ever leaving NeoVim.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Indexing the Unindexable: MySQL Generated Columns and Functional Indexes</title><link>https://shocm.me/posts/2026-06-20-mysql-generated-columns-functional-indexes/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-20-mysql-generated-columns-functional-indexes/</guid><description>Generated columns and functional indexes let MySQL index expressions, JSON paths, and case-insensitive lookups that would otherwise force a full table scan.</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Symfony 7.4 LTS: The Features Worth Upgrading For</title><link>https://shocm.me/posts/2026-06-19-symfony-7-4-lts-what-matters/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-19-symfony-7-4-lts-what-matters/</guid><description>Symfony 7.4 is the new LTS, bringing invokable command upgrades, decoupled controllers, UUID v7 by default, and a caching HTTP client. Here is what matters.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Drag-and-Drop That Survives a Refresh: Alpine&apos;s Sort Plugin with Laravel</title><link>https://shocm.me/posts/2026-06-18-alpinejs-sort-plugin-laravel-drag-drop/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-18-alpinejs-sort-plugin-laravel-drag-drop/</guid><description>Alpine&apos;s Sort plugin gives you Kanban-style drag-and-drop in a few attributes. Here is how to wire it to a Laravel backend and persist the order.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate></item><item><title>blink.cmp: The Completion Plugin That Made My PHP NeoVim Setup Feel Instant</title><link>https://shocm.me/posts/2026-06-17-blink-cmp-neovim-php-completion/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-17-blink-cmp-neovim-php-completion/</guid><description>blink.cmp is the batteries-included NeoVim completion plugin replacing nvim-cmp. Here is how to wire it up for fast, typo-resistant PHP completion.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Partial Function Application: The PHP 8.6 Feature That Completes the Pipe Operator</title><link>https://shocm.me/posts/2026-06-16-php86-partial-function-application/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-16-php86-partial-function-application/</guid><description>PHP 8.6&apos;s partial function application lets you pre-fill arguments with a ? placeholder, and it finally makes the 8.5 pipe operator genuinely useful.</description><pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Laravel Boost: Giving Your AI Agent the Context It Actually Needs</title><link>https://shocm.me/posts/2026-06-15-laravel-boost-ai-coding-context/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-15-laravel-boost-ai-coding-context/</guid><description>Laravel Boost feeds Claude Code and Cursor version-aware guidelines, on-demand skills, and 17,000+ docs so they write idiomatic Laravel instead of generic PHP.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Filament v4 in 2026: Why the Panel Builder Is Worth a Second Look</title><link>https://shocm.me/posts/2026-06-14-filament-v4-panel-builder-guide/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-14-filament-v4-panel-builder-guide/</guid><description>Filament v4 is now at 4.11 with faster table rendering, a TipTap editor, nested resources, and dead-simple MFA. Here is what PHP developers should know.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Pest 4 Browser Testing: End-to-End Tests That Feel Like Unit Tests</title><link>https://shocm.me/posts/2026-06-13-pest-4-browser-testing-laravel/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-13-pest-4-browser-testing-laravel/</guid><description>Pest 4 brings Playwright-powered browser testing to PHP with the visit() helper, smoke tests, visual regression, and parallel sharding. Here is how it works.</description><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate></item><item><title>PHPUnit 13: Sealed Mocks, Smarter Array Assertions, and a Real withConsecutive() Replacement</title><link>https://shocm.me/posts/2026-06-12-phpunit-13-sealed-mocks-array-assertions/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-12-phpunit-13-sealed-mocks-array-assertions/</guid><description>PHPUnit 13 adds sealed test doubles, eight precise array assertions, and a true withConsecutive() replacement. Here is what PHP developers should know.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Laravel 13 JSON:API Resources: Spec-Compliant APIs Without a Package</title><link>https://shocm.me/posts/2026-06-11-laravel-13-json-api-resources/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-11-laravel-13-json-api-resources/</guid><description>Laravel 13 ships first-party JSON:API resources. Learn how JsonApiResource handles attributes, relationships, sparse fieldsets, and includes.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>MySQL 9.7 LTS Is Here: What PHP Developers Need to Know</title><link>https://shocm.me/posts/2026-06-10-mysql-97-lts-php-developers/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-10-mysql-97-lts-php-developers/</guid><description>MySQL 9.7 LTS ships the Hypergraph Optimizer, free enterprise replication tools, JSON Duality Views DML, and officially ends MySQL 8.0 support.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Livewire 4: Islands, Lazy Loading, Optimistic UI, and What Changed</title><link>https://shocm.me/posts/2026-06-09-livewire-4-what-is-new/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-09-livewire-4-what-is-new/</guid><description>Livewire 4 ships single-file components, islands, lazy/defer bundling, wire:sort, optimistic UI, and seven security hardening fixes. Here&apos;s the full breakdown.</description><pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate></item><item><title>PHPverse 2026: Everything You Need to Know Before Tomorrow&apos;s Free PHP Conference</title><link>https://shocm.me/posts/2026-06-08-phpverse-2026-free-online-conference/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-08-phpverse-2026-free-online-conference/</guid><description>PHPverse 2026 is a free online PHP conference on June 9 with Jeffrey Way, Fabien Potencier, Larry Garfield, and more. Here&apos;s the full breakdown.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate></item><item><title>PHP Foundation 2025: 42% of PHP Core, a New Security Team, and What&apos;s Next</title><link>https://shocm.me/posts/2026-06-07-php-foundation-2025-impact-report/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-07-php-foundation-2025-impact-report/</guid><description>The PHP Foundation&apos;s 2025 impact report reveals 2,929 commits, a new Ecosystem Security Team funded by Alpha-Omega, and bold goals for 2026.</description><pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate></item><item><title>NativePHP v3.1: 10x Faster Mobile Apps with Persistent PHP Runtime</title><link>https://shocm.me/posts/2026-06-06-nativephp-v31-persistent-runtime/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-06-nativephp-v31-persistent-runtime/</guid><description>NativePHP v3.1 ships a persistent PHP runtime, background queue workers, and Android 8+ support — slashing response times from 300ms to 30ms.</description><pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Building Real-Time Laravel Apps with Reverb in 2026</title><link>https://shocm.me/posts/2026-06-05-laravel-reverb-real-time-websockets/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-05-laravel-reverb-real-time-websockets/</guid><description>Laravel Reverb is the first-party WebSocket server built for Laravel. Learn how to set it up, broadcast events, and scale to production.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Tinkerwell 5 and the MCP Bridge: Let Claude Actually Run Your PHP Code</title><link>https://shocm.me/posts/2026-06-04-tinkerwell-5-mcp-claude-php/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-04-tinkerwell-5-mcp-claude-php/</guid><description>Tinkerwell 5 ships an MCP server that gives Claude and Cursor direct PHP execution in your project context. Here&apos;s how to wire it up and use it well.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Symfony 8.1: Build HTTP-Less Applications with the Full DI Container</title><link>https://shocm.me/posts/2026-06-03-symfony-81-http-less-applications/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-03-symfony-81-http-less-applications/</guid><description>Symfony 8.1 ships HTTP-less app support, a standalone ConsoleBundle, method-based commands, and the new #[RateLimit] attribute. Here&apos;s what changes.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Supercharge Your PHP Workflow with Claude Code: Practical Tips for Laravel and Symfony Developers</title><link>https://shocm.me/posts/2026-06-02-claude-code-tips-php-developers/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-02-claude-code-tips-php-developers/</guid><description>Practical Claude Code tips for PHP developers: CLAUDE.md setup, custom agents for Laravel/Symfony, skill libraries, and MCP-powered workflows.</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.5&apos;s `clone with`: Immutable Objects Without the Boilerplate</title><link>https://shocm.me/posts/2026-06-01-php85-clone-with-immutable-objects/</link><guid isPermaLink="true">https://shocm.me/posts/2026-06-01-php85-clone-with-immutable-objects/</guid><description>PHP 8.5 adds clone with syntax to update readonly properties while cloning. Learn how to ditch boilerplate wither methods and write cleaner immutable objects.</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.5&apos;s Pipe Operator: Cleaner Data Pipelines in PHP</title><link>https://shocm.me/posts/2026-05-31-php85-pipe-operator/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-31-php85-pipe-operator/</guid><description>PHP 8.5&apos;s pipe operator (|&gt;) enables clean left-to-right function chaining. Learn practical examples, Laravel integration with Spatie&apos;s Piper, and what comes next.</description><pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate></item><item><title>NeoVim for PHP Developers: Simplified LSP Setup in NeoVim 0.11 and 0.12</title><link>https://shocm.me/posts/2026-05-30-neovim-php-lsp-setup/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-30-neovim-php-lsp-setup/</guid><description>NeoVim 0.11 and 0.12 dramatically simplified PHP LSP setup. Learn how to configure phpactor, Treesitter, Blade support, and Laravel Pint with minimal config.</description><pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate></item><item><title>Getting Started with the Laravel AI SDK: Provider-Agnostic AI in Laravel 13</title><link>https://shocm.me/posts/2026-05-29-laravel-ai-sdk-getting-started/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-29-laravel-ai-sdk-getting-started/</guid><description>Laravel 13&apos;s first-party AI SDK brings provider-agnostic text, image, audio, and embedding generation to PHP developers with a clean, familiar API.</description><pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate></item><item><title>Composer 2.9 and 2.10: Security Blocking, Better Repo Management, and What PHP Developers Need to Know</title><link>https://shocm.me/posts/2026-05-28-composer-29-security-repo-management/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-28-composer-29-security-repo-management/</guid><description>Composer 2.9 and 2.10 bring automatic security blocking, a new repo CLI command, and malware filtering. Here&apos;s what changed and how to use it.</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate></item><item><title>NativePHP Air: Free, Modular, and Ready to Ship Native Apps with Laravel</title><link>https://shocm.me/posts/2026-05-27-nativephp-air-modular-plugins/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-27-nativephp-air-modular-plugins/</guid><description>NativePHP Air goes free and open source with a modular plugin system. Here&apos;s what changed, how plugins work, and why this matters for PHP developers.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item><item><title>Stop Ignoring Important Return Values with PHP 8.5&apos;s #[NoDiscard]</title><link>https://shocm.me/posts/2026-05-26-php85-nodiscard-attribute/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-26-php85-nodiscard-attribute/</guid><description>PHP 8.5&apos;s #[NoDiscard] attribute warns you when critical return values are silently discarded. Here&apos;s how to use it to write safer, self-documenting APIs.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate></item><item><title>Ship Code Safely with Laravel Pennant Feature Flags</title><link>https://shocm.me/posts/2026-05-25-laravel-pennant-feature-flags/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-25-laravel-pennant-feature-flags/</guid><description>Laravel Pennant makes feature flags a first-class citizen in your app. Learn how to use it for gradual rollouts, A/B tests, and premium tiers.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item><item><title>Stop Writing PHP Loops for This: MySQL Window Functions Every Developer Should Know</title><link>https://shocm.me/posts/2026-05-24-mysql-window-functions-php-developers/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-24-mysql-window-functions-php-developers/</guid><description>MySQL window functions let the database do ranking, running totals, and row comparisons that most PHP devs still handle in application code.</description><pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate></item><item><title>Building Your First MCP Server with Laravel</title><link>https://shocm.me/posts/2026-05-23-building-mcp-servers-with-laravel/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-23-building-mcp-servers-with-laravel/</guid><description>Learn how to expose your Laravel application to AI agents using the official laravel/mcp package — tools, resources, and prompts in minutes.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate></item><item><title>Building Rich Terminal UIs in PHP with the Symfony Tui Component</title><link>https://shocm.me/posts/2026-05-22-symfony-tui-component/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-22-symfony-tui-component/</guid><description>Symfony&apos;s new Tui component brings CSS-like styling, widget toolkits, and PHP Fibers to terminal UI development in pure PHP 8.4+.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate></item><item><title>Laravel Herd&apos;s MCP Server: Manage Your PHP Dev Environment with AI</title><link>https://shocm.me/posts/2026-05-21-laravel-herd-mcp-server/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-21-laravel-herd-mcp-server/</guid><description>Laravel Herd now ships with a built-in MCP server that connects AI clients like Claude to your local PHP environment with 218 tools.</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate></item><item><title>Laravel Nightwatch: Production Monitoring Built for the Laravel Ecosystem</title><link>https://shocm.me/posts/2026-05-20-laravel-nightwatch-production-monitoring/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-20-laravel-nightwatch-production-monitoring/</guid><description>Laravel Nightwatch delivers production-grade observability for Laravel apps with zero-config setup, deep telemetry, and real-time alerting.</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate></item><item><title>Tempest 3.0: The PHP Framework That Gets Out of Your Way</title><link>https://shocm.me/posts/2026-05-19-tempest-php-3-the-framework-that-gets-out-of-your-way/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-19-tempest-php-3-the-framework-that-gets-out-of-your-way/</guid><description>Tempest 3.0 is the forward-thinking PHP framework requiring PHP 8.5, with a new exception handler, faster ORM, and a discovery system that removes boilerplate.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate></item><item><title>Debounceable Queued Jobs in Laravel 13.6: Stop Processing Redundant Work</title><link>https://shocm.me/posts/2026-05-18-laravel-debounceable-queued-jobs/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-18-laravel-debounceable-queued-jobs/</guid><description>Laravel 13.6 adds native debounceable queued jobs. Dispatch the same job dozens of times, only the last one runs. Here&apos;s how to use it.</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate></item><item><title>AlpineJS in 2026: $store, $persist, and $dispatch Patterns for PHP Developers</title><link>https://shocm.me/posts/2026-05-17-alpinejs-store-persist-dispatch-patterns/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-17-alpinejs-store-persist-dispatch-patterns/</guid><description>Master AlpineJS state management with $store, $persist, and $dispatch. Practical patterns for PHP, Laravel, and Livewire developers building reactive UIs.</description><pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate></item><item><title>The PHP Foundation in 2026: New Leadership, New Direction</title><link>https://shocm.me/posts/2026-05-16-php-foundation-2026-leadership-direction/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-16-php-foundation-2026-leadership-direction/</guid><description>Elizabeth Barron joins as Executive Director, Matt Stauffer lands on the board—here&apos;s how the PHP Foundation&apos;s bold 2026 moves shape PHP&apos;s future.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate></item><item><title>Livewire 4: Islands, wire:transition, and the New Performance Playbook</title><link>https://shocm.me/posts/2026-05-15-livewire-4-islands-transitions-performance/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-15-livewire-4-islands-transitions-performance/</guid><description>Livewire 4 ships Islands, native View Transitions, parallel requests, and single-file components — here&apos;s what changes and how to migrate.</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.6 Closure Optimizations: Free Performance from Code You Already Write</title><link>https://shocm.me/posts/2026-05-14-php-86-closure-optimizations/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-14-php-86-closure-optimizations/</guid><description>PHP 8.6 lands two closure optimizations — static inference and stateless caching — delivering real memory and speed gains with zero code changes required.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>FrankenPHP Worker Mode: Boot Once, Serve Everything</title><link>https://shocm.me/posts/2026-05-13-frankenphp-worker-mode-php-foundation/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-13-frankenphp-worker-mode-php-foundation/</guid><description>FrankenPHP is now an official PHP Foundation project. Here&apos;s how worker mode delivers 15,000 req/sec and what it means for your Laravel and Symfony apps.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate></item><item><title>Claude Code Subagents: Delegate Like a Senior PHP Developer</title><link>https://shocm.me/posts/2026-05-12-claude-code-subagents-php-developers/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-12-claude-code-subagents-php-developers/</guid><description>Claude Code subagents let you delegate specialized tasks to purpose-built agents. Here&apos;s how PHP developers can use them to work faster and smarter.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate></item><item><title>MySQL Performance Schema: Finding Hidden Bottlenecks in Your PHP Apps</title><link>https://shocm.me/posts/2026-05-11-mysql-performance-schema-php/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-11-mysql-performance-schema-php/</guid><description>The slow query log only shows you part of the picture. Learn to use MySQL Performance Schema to uncover lock waits, I/O lag, and query patterns your logs miss.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate></item><item><title>Symfony UX 3.0: A Component-First Frontend for PHP Developers</title><link>https://shocm.me/posts/2026-05-09-symfony-ux-3-component-first-frontend/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-09-symfony-ux-3-component-first-frontend/</guid><description>Symfony UX 3.0 raises the bar for PHP frontends: PHP 8.4 required, dead weight dropped, and Live Components sharper than ever.</description><pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate></item><item><title>Laravel Skills Directory: AI Agent Skills That Think Like a Laravel Developer</title><link>https://shocm.me/posts/2026-05-08-laravel-skills-directory-ai-agent-skills/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-08-laravel-skills-directory-ai-agent-skills/</guid><description>The Laravel Skills directory at skills.laravel.cloud gives your AI coding agent deep Laravel knowledge. Here&apos;s how to set it up and write your own.</description><pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate></item><item><title>NativePHP Mobile v1 Is Here — And It&apos;s Free</title><link>https://shocm.me/posts/2026-05-07-nativephp-mobile-v1-launch/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-07-nativephp-mobile-v1-launch/</guid><description>NativePHP Mobile v1 launched May 2, 2026 as a free, modular platform for building real iOS and Android apps with Laravel.</description><pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate></item><item><title>Tinkerwell 5&apos;s MCP Server: Let Your AI Agent Actually Run the PHP</title><link>https://shocm.me/posts/2026-05-06-tinkerwell-5-mcp-server-ai-agents/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-06-tinkerwell-5-mcp-server-ai-agents/</guid><description>Tinkerwell 5 ships a built-in MCP server that lets Claude, Cursor, and others execute PHP inside your real project context.</description><pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate></item><item><title>PhpStorm&apos;s MCP Server: Giving Your AI Agents Eyes Inside the IDE</title><link>https://shocm.me/posts/2026-05-05-phpstorm-mcp-server-ai-agents/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-05-phpstorm-mcp-server-ai-agents/</guid><description>PhpStorm 2026.1 ships an expanded MCP server that lets Claude Code, Windsurf, and other agents use PhpStorm&apos;s own static analysis tools.</description><pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate></item><item><title>Laravel 12&apos;s Automatic Eager Loading: Finally Solving N+1 Without Thinking About It</title><link>https://shocm.me/posts/2026-05-04-laravel-12-automatic-eager-loading/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-04-laravel-12-automatic-eager-loading/</guid><description>Laravel 12.8 introduces automatic relationship eager loading that silently eliminates N+1 query problems — no more forgetting `with()` on every query.</description><pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate></item><item><title>NeoVim for PHP Development in 2026: Native LSP, Intelephense, and the Modern Setup</title><link>https://shocm.me/posts/2026-05-03-neovim-php-2026/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-03-neovim-php-2026/</guid><description>Set up a powerful PHP development environment in NeoVim 0.11+ using native LSP, Intelephense, Phpactor, Mason, and Treesitter — no more plugin sprawl.</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.5&apos;s Hidden Gems: array_first, clone with, and the Features Nobody Is Talking About</title><link>https://shocm.me/posts/2026-05-02-php85-hidden-gems/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-02-php85-hidden-gems/</guid><description>Beyond the pipe operator and URI extension, PHP 8.5 ships quality-of-life features that clean up your daily code immediately — here&apos;s what to know.</description><pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.5&apos;s URI Extension: Modern URL Parsing Done Right</title><link>https://shocm.me/posts/2026-05-01-php85-uri-extension/</link><guid isPermaLink="true">https://shocm.me/posts/2026-05-01-php85-uri-extension/</guid><description>PHP 8.5&apos;s built-in URI extension replaces the broken parse_url() with RFC 3986 and WHATWG-compliant classes for immutable, safe URL handling.</description><pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate></item><item><title>MySQL 9 VECTOR Type: Building Semantic Search in PHP Without a Dedicated Vector Database</title><link>https://shocm.me/posts/2026-04-30-mysql9-vector-semantic-search-php/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-30-mysql9-vector-semantic-search-php/</guid><description>MySQL 9&apos;s native VECTOR data type lets PHP developers build semantic search and AI similarity features without spinning up a separate vector database.</description><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Symfony 7.3: ObjectMapper, JsonPath, and the Features That Actually Change How You Work</title><link>https://shocm.me/posts/2026-04-29-symfony-7-3-new-features/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-29-symfony-7-3-new-features/</guid><description>Symfony 7.3 ships two powerful new components — ObjectMapper and JsonPath — plus console upgrades and security wins worth knowing about.</description><pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Laravel Volt: Single-File Livewire Components Done Right</title><link>https://shocm.me/posts/2026-04-28-laravel-volt-single-file-livewire/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-28-laravel-volt-single-file-livewire/</guid><description>Laravel Volt lets you write Livewire components as single-file PHP closures — less boilerplate, faster iteration, and cleaner folder structures.</description><pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate></item><item><title>PHP 8.4 Property Hooks: Cleaner Object APIs Without Magic Methods</title><link>https://shocm.me/posts/2026-04-27-php84-property-hooks/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-27-php84-property-hooks/</guid><description>PHP 8.4 property hooks let you intercept property reads and writes directly — no more boilerplate getters, setters, or fragile magic methods.</description><pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Pest PHP 3: Advanced Testing Patterns Every PHP Developer Should Know</title><link>https://shocm.me/posts/2026-04-26-pest-php3-advanced-testing-patterns/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-26-pest-php3-advanced-testing-patterns/</guid><description>Pest PHP 3 brings mutation testing, architecture assertions, and type coverage to PHP. Here are the advanced patterns worth adding to your workflow.</description><pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Laravel Reverb: Real-Time WebSockets Without the Infrastructure Tax</title><link>https://shocm.me/posts/2026-04-25-laravel-reverb-real-time-websockets/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-25-laravel-reverb-real-time-websockets/</guid><description>Laravel Reverb gives PHP developers a self-hosted WebSocket server that plugs directly into Laravel&apos;s broadcasting system — no Pusher account required.</description><pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Rector: Stop Manually Upgrading PHP — Let the Robot Do It</title><link>https://shocm.me/posts/2026-04-24-rector-automated-php-upgrades/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-24-rector-automated-php-upgrades/</guid><description>Rector automates PHP version upgrades and refactoring. Learn how to set it up, write custom rules, and integrate it into your CI pipeline.</description><pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate></item><item><title>FrankenPHP in Production: Worker Mode, Embedded Binaries, and Real Performance</title><link>https://shocm.me/posts/2026-04-23-frankenphp-production-guide/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-23-frankenphp-production-guide/</guid><description>A practical guide to running FrankenPHP in production. Worker mode, embedded binaries, HTTP/3, and the deployment patterns that actually pay off.</description><pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate></item><item><title>PHPStan 2 Tips and Tricks: Leveling Up Legacy PHP Codebases</title><link>https://shocm.me/posts/2026-04-22-phpstan-2-tips-tricks/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-22-phpstan-2-tips-tricks/</guid><description>Practical PHPStan 2 tips for PHP developers. Learn baselines, generics, custom rules, and strategies to reach level max on real-world projects.</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate></item><item><title>NativePHP Mobile: Build Real Native Apps With Laravel and PHP</title><link>https://shocm.me/posts/2026-04-21-nativephp-mobile-building-native-apps-with-laravel/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-21-nativephp-mobile-building-native-apps-with-laravel/</guid><description>NativePHP Mobile lets PHP developers build native iOS and Android apps using Laravel. Here&apos;s a practical guide to its APIs, setup, and native device features.</description><pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Symfony Messenger: The Component PHP Developers Keep Underusing</title><link>https://shocm.me/posts/2026-04-20-symfony-messenger-deep-dive/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-20-symfony-messenger-deep-dive/</guid><description>Symfony Messenger handles async queues, retries, and message buses elegantly. Here&apos;s a practical guide to using it properly in your PHP apps.</description><pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate></item><item><title>The PHP Foundation: How It&apos;s Shaping the Future of PHP</title><link>https://shocm.me/posts/2026-04-19-php-foundation-impact/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-19-php-foundation-impact/</guid><description>The PHP Foundation funds core PHP development and drives the language forward. Here&apos;s what it does, why it matters, and how PHP developers can support it.</description><pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate></item><item><title>MySQL Recursive CTEs for PHP Developers: Querying Hierarchical Data Without the Pain</title><link>https://shocm.me/posts/2026-04-18-mysql-recursive-ctes-php/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-18-mysql-recursive-ctes-php/</guid><description>Recursive CTEs in MySQL let you query trees, org charts, and nested categories in a single query. Here&apos;s how to use them effectively with PHP.</description><pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Building Beautiful TUIs in PHP with Laravel Prompts and Termwind</title><link>https://shocm.me/posts/2026-04-17-laravel-prompts-tui-guide/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-17-laravel-prompts-tui-guide/</guid><description>Laravel Prompts and Termwind bring polished terminal UIs to PHP developers. Learn to build interactive CLI tools your team will actually enjoy using.</description><pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Alpine.js Patterns Every Livewire Developer Should Know</title><link>https://shocm.me/posts/2026-04-16-alpinejs-patterns-livewire/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-16-alpinejs-patterns-livewire/</guid><description>Alpine.js is Livewire&apos;s client-side companion. Master these practical patterns to build snappy UIs without reaching for a full JavaScript framework.</description><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate></item><item><title>MySQL JSON Columns for PHP Developers: When to Use Them and How to Make Them Fast</title><link>https://shocm.me/posts/2026-04-15-mysql-json-columns-php-guide/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-15-mysql-json-columns-php-guide/</guid><description>JSON columns in MySQL are powerful but misunderstood. Here&apos;s a practical guide for PHP developers on when JSON makes sense, how to query it efficiently, and the indexing tricks that keep things fast.</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Livewire 4&apos;s Islands Architecture: Build Faster UIs Without the JavaScript Overhead</title><link>https://shocm.me/posts/2026-04-14-livewire-4-islands-architecture/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-14-livewire-4-islands-architecture/</guid><description>Laravel Livewire v4 introduces islands architecture, single-file components, and optimistic UI directives that change how PHP developers build reactive interfaces. Here&apos;s a hands-on guide to what&apos;s new.</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate></item><item><title>PHP Tek 2026 Is Next Month — Here&apos;s Why You Should Be There in Person</title><link>https://shocm.me/posts/2026-04-13-php-tek-2026-chicago/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-13-php-tek-2026-chicago/</guid><description>PHP Tek returns to Chicago May 19-21 with 30+ sessions, hands-on workshops, and the kind of hallway conversations that change careers.</description><pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate></item><item><title>The PHP 8.5 Pipe Operator</title><link>https://shocm.me/posts/2026-04-11-php-85-pipe-operator/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-11-php-85-pipe-operator/</guid><description>PHP 8.5&apos;s pipe operator (|&gt;) is here, and it&apos;s quietly transforming how we write data transformation chains.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Setting Up NeoVim as a PHP IDE: A LazyVim-Based Guide for 2026</title><link>https://shocm.me/posts/2026-04-12-neovim-php-development-setup/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-12-neovim-php-development-setup/</guid><description>NeoVim with LazyVim gives PHP developers a fast, keyboard-driven IDE with LSP support, testing integration, and Blade syntax highlighting. Here&apos;s how to set it up from scratch.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate></item><item><title>LazyGit: The Terminal UI That Makes Git Actually Enjoyable</title><link>https://shocm.me/posts/2026-04-11-lazygit-terminal-ui-for-git/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-11-lazygit-terminal-ui-for-git/</guid><description>If you&apos;ve ever dreaded interactive rebasing or fumbled through staging individual lines, LazyGit is the TUI that will change your entire Git workflow.</description><pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate></item><item><title>NativePHP 3.1: The Performance Leap That Makes Your App Actually Feel Native</title><link>https://shocm.me/posts/2026-04-11-nativephp-3-1-performance/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-11-nativephp-3-1-performance/</guid><description>NativePHP 3.1 changes the game with a single-boot architecture that dramatically improves performance. There&apos;s never been a better time to build desktop and mobile apps with Laravel.</description><pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Claude Code for PHP Developers</title><link>https://shocm.me/posts/2026-04-11-claude-code-for-php-developers/</link><guid isPermaLink="true">https://shocm.me/posts/2026-04-11-claude-code-for-php-developers/</guid><description>Claude Code isn&apos;t just for JavaScript developers. Here are real workflow patterns for PHP developers — from plan mode to test generation to MCP integrations.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate></item></channel></rss>