Newslurp

<< Stories

#80 - Automated Code Refactoring Made Easy with Rector 🤖, Surprisingly easy extension development in Rust ✨, StreamPulse 📦, How I Almost Got Hacked By A ‘Job Interview’ ⚠️, Collection::partition 💡

The Laralist <hello@thelaralist.com>

October 19, 10:36 am

#80 - Automated Code Refactoring Made Easy with Rector 🤖, Surprisingly easy extension development in Rust ✨, StreamPulse 📦, How I Almost Got Hacked By A ‘Job Interview’ ⚠️, Collection::partition 💡
Deleting records directly with a query skips Eloquent’s built-in events, observers, and relationship handling. Hydrating models before deletion lets Laravel manage cascading deletes and related cleanup through the ORM, ensuring your database and application logic stay consistent.
The Laralist
#80 - 19th of October, 2025
🧱
Laravel

Rector PHP for Laravel automates common refactors across your codebase — converting if statements to helpers like abort_if, replacing global helpers with Facades, optimizing collections and queries, and updating legacy factories. A quick way to modernize and clean up Laravel projects.

Explore Laravel Nightwatch's internal workings as it delivers real-time insights using AWS services and ClickHouse Cloud, processing over a billion daily events with sub-second latency for efficient global-scale monitoring.

Rector PHP for Laravel automates common refactors across your codebase — converting if statements to helpers like abort_if, replacing global helpers with Facades, optimizing collections and queries, and updating legacy factories. A quick way to modernize and clean up Laravel projects.

The latest Laravel release includes support for PostgreSQL virtual columns with virtualAs() and a failover queue driver, enabling fallback to multiple connections if the primary queue is unavailable. It also allows closures in throw_if, and adds support for several editors like Zed, Fleet, Windsurf, Trae, and Kiro in the local exception page.

💡
Tip of the Week

The ⁠partition method in the ⁠Collection class allows you to directly destructure the result into two separate collections. This enables immediate handling of elements that satisfy a condition and those that do not, without needing additional filtering.

$collection = collect([10, 20, 30, 40, 50, 60]);

// Partition the collection into two parts: numbers less than 35 and those 35 or above
[$lessThanThirtyFive, $thirtyFiveOrMore] = $collection->partition(fn($number) => $number < 35);

$lessThanThirtyFive->all();  // [10, 20, 30]
$thirtyFiveOrMore->all();    // [40, 50, 60]
🐘
PHP

This post shows how easy building PHP extensions with Rust can be via ext-php-rs, wrapping a poker equity library in hours. The code is open-sourced, offering a clear reference for creating similar high-performance extensions.

The State of PHP 2025 report is available. Key takeaways include Laravel’s lead, PHP 8.x dominance, mainstream AI usage, rising PHPStan and Pest adoption, and growing FrankenPHP momentum. Based on the Developer Ecosystem Survey 2025.

📦
Package of the Week

StreamPulse offers a Laravel-native event streaming package with a unified API for multiple platforms. It simplifies complex concepts, supports transaction-aware publishing, and includes real-time monitoring through a UI dashboard.

Misc

A slick “interview” sends a polished technical test hiding obfuscated malware. Seconds from disaster, an AI scan saves the day. Takeaway: sandbox everything, verify everyone, never rush to run code.

Mitchell Hashimoto, Ghostty's creator, shares his process of developing a macOS unobtrusive update feature, detailing AI-assisted and human-refined coding sessions. He transparently opens all AI chat logs, offering insights into modern AI collaboration.

We value your thoughts and feedback. Feel free to hit reply and share your ideas with us.
If you find our content helpful, please consider forwarding it or sharing it with your friends and colleagues.
Thank you for reading,
Mario & Javi
If you prefer not to receive future editions of The Laralist, please unsubscribe.