Hi everyone,
It's the first newsletter for December and we hope you're all doing well. Recently, the packagist.org team announced that it is shutting down support for Composer v1.x on February 25th, 2025. While 96% of Composer updates use v2, there is a good chance most people will not be affected by this. However, if you have legacy apps, you may need to check and update them to v2 before the key dates. In other news, the PHP Foundation recently introduced a pre-release of the PHP Installer for Extensions (PIE), which aims to simplify managing PHP extensions in the PHP ecosystem. For more info on that, just head on over to our news section. In Podcasts we have new episodes from Laravel news and this week, they talk about PHP 8.4 Black Friday and Composer wardens. Syntax discusses the new speculation rules API for prefetching and pre-rendering pages to improve website performance. Finally in our Reading section we have articles on the KISS Principle and the DRY (Don't Repeat Yourself) approach emphasizes that every piece of knowledge in a system should have a single, unambiguous representation.
We have all that and more, so we do hope you enjoy this week's newsletter. If you have an article, tutorial or podcast that you would like to be featured in our newsletter, feel free to reach out to us at [email protected].
All the best,
Adrian
|
Please help us by clicking to our sponsors:
|
Articles
PHP Performance Optimization
Let's dive deep into each optimization technique and understand how they contribute to better performance.
Comprehensive Guidebooks for PHP and Algorithm Learning
Here are some book recommendations that cover everything from programming fundamentals to advanced algorithms, always with a practical approach focused on application in web development.
Laravel Under The Hood - Extending the framework
A few days ago, I was fixing a flaky test, and it turned out I needed some unique and valid values within my factory.
Why Your Laravel Relationship Returns an Integer (and How to Fix It)
If you’ve ever used Laravel’s Eloquent ORM, you know how great it is , until something weird happens.
Lazy Objects in PHP 8.4: A New Era of Efficient Object Handling
PHP 8.4 introduces lazy objects, a feature designed to defer an object's initialization until it is accessed. This approach minimizes resource usage, especially for objects with heavy initialization logic that may only sometimes be used during execution.
|
Tutorials and Talks
Mastering Dynamic String Manipulation with Laravel's Str::replaceArray()
String manipulation in Laravel often involves replacing multiple placeholders with dynamic values. Laravel provides a powerful solution through the Str::replaceArray() method, making complex string replacements straightforward and efficient.
Managing API Rate Limits in Laravel Through Job Throttling
When working with external services like AWS SES for email delivery, preventing API flooding is crucial. Laravel provides an elegant solution through Redis::throttle to manage your rate limits effectively.
Efficient Large Dataset Handling in Laravel Using streamJson()
When working with substantial datasets in Laravel applications, sending all data at once can create performance bottlenecks and memory issues.
Dockerizing a Simple PHP Application
In this blog post, we'll walk through a practical example of Dockerizing a simple PHP application. By the end of this guide, you'll have a working Docker container serving a basic PHP app.
What Happens When You Run “php artisan serve” in Laravel?
Let’s explore this in detail, step by step, understand how Laravel identifies and runs the ServeCommand, and dive into what PHP’s built-in server is and how it compares to traditional web servers like Nginx or Apache.
How to Connect Redis with PHP Using Docker Compose
Now I share with everyone how we can use Redis in PHP. We know what Redis is, right? In Programming, you've probably seen it somewhere before.
PHP OOP Part-1: Introduction, Object, and Class
If you're a beginner or unfamiliar with OOP concepts, this series is designed to guide you step by step. In this part, I will discuss about the OOP introduction, object and class in PHP.
Deploying Multiple PHP Applications Using AWS Elastic Beanstalk with a Standalone ALB
In this guide, we’ll deploy multiple PHP applications using AWS Elastic Beanstalk (EB) environments, and configure a single standalone Application Load Balancer (ALB) for all environments.
Beginner's Guide to PHP Form Handling with Cookies
In this guide, we'll explore PHP form handling using cookies to store user data. Cookies are a way to persist small amounts of data on the user's browser, making it possible to remember user preferences or information across different sessions.
Building Dynamic and Maintainable Menus in Laravel
This blog post explores how to simplify and structure your menus using a Menu Builder system, making them easier to maintain, extend, and scale.
Fluent Array Handling in Laravel: The fluent() Helper
Working with nested arrays in Laravel just got smoother with the introduction of the fluent() helper function, providing a more intuitive way to access and manipulate multi-dimensional data.
Build Your Own Lightweight Query Builder in PHP
In this tutorial, we’ll create a lightweight query builder in PHP 8.2 that supports basic database operations. If you missed our last blog on writing a custom ORM in PHP, check it out here for additional context.
How to generate a PDF file in a few lines of code with Symfony
Developers are always on the lookout for solutions that are efficient, extensible, and compatible with their existing tech stacks, but finding the right balance is not always straightforward. |
News and Announcements
PIE (PHP Installer for Extensions)
The PHP Foundation has recently introduced a pre-release of the PHP Installer for Extensions (PIE). PIE aims to simplify managing PHP extensions by providing a modern, flexible alternative to PECL and treating extensions as first-class citizens in the PHP ecosystem.
Packagist.org is ending support for Composer 1.x
The packagist team announced it's shutting down support for Composer v1.x on February 25th, 2025.
Access Request Data Fluently in Laravel 11.34
This week, the Laravel team released v11.34, with a Request::fluent() method, a Number spellOrdinal() helper, conditional route definitions, shorthand fakes for HTTP responses, and more.
Symfony 7.2.0 released
Check the Living on the Edge category on this blog to learn about the main features of this new stable release; or check the release announcement of BETA1 to get the list of all new features.
Symfony 5.4.49 released
Symfony 5.4.49 has just been released. Here is the list of the most important changes since 5.4.48.
The PHP Foundation Turns Three!
Wow. Can you believe it? Just three years (and one day) ago, PHP had no organization behind it. Only two people were being paid to work on the language that powers 70% of the web.
|
Podcasts and Vlogs
Laravel News Podcast: PHP 8.4, Black Friday, and Composer Wardens
Jake and Michael discuss all the latest Laravel releases, tutorials, and happenings in the community.
The Stack Overflow: Even high-quality code can lead to tech debt
Ben and Eran talk about the intersection of software development and AI, the evolution of program synthesis, and Eran’s path from IBM research to startup CTO.
Maintainable Podcast: Dan Moore: Building Developer-Friendly Authentication Solutions
Dan emphasizes the importance of internal consistency in codebases, automated tests, and proper documentation to preserve decision-making context.
Software Engineering Radio: SE Radio 644: Tim McNamara on Error Handling in Rust
Tim McNamara, a well-known Rust educator, author of Rust in Action (Manning), and a recipient of a Rust Foundation Fellowship in 2023, speaks with SE Radio host Gavin Henry about error handling in Rust.
Developer Tea: Using ChatGPT for Career Experience Simulations - LLMs and Direct Simulations for Faster Career Experience Gains
Can you use ChatGPT to become a better engineer? I'm not just talking about learning a language or fixing a bug with ChatGPT providing advice... I'm talking about career simulations.
Shoptalk Show: Mouthblogging HTML in 2025
We're talking HTML this episode, detail summary, HTML datalist element, styling selects, anchored pop ups, popovers, invokers, HR in select, target=blank, HTML for People, and what we still need.
WP Builds: 400 – From WordCamps to podcasts: Bud Kraus’ adventures in WordPress
So there! I’m joined on the podcast by Bud Kraus. Bud is a WordPress educator and content creator, best known for his educational materials on joyofwp.com.
Frontmatter Podcast: Pete Zerger, Author of CISSP: The Last Mile
In this episode of the Frontmatter podcast, Len Epp interviews Pete Zerger, a cybersecurity strategist and Chief Information Security Officer, and author of the LeanPub book, CISSP: The Last Mile.
Mostly Technical: 61: Chasing Vanity
Ian and Aaron go in-depth on Aaron's highly anticipated arrival on Bluesky - what's good, what's bad, and why he doesn't like when people tell him he's using it wrong. Plus an update on ads, a big garage idea, and more.
Syntax: Fast Websites: The New Speculation Rules API
Discussion on using the new speculation rules API for prefetching and prerendering pages to improve website performance, inspired by the fast McMaster Carr site.
The Changelog: If not React, then what?
Alex Russell answers the question, “If not React, then what?” Csaba Okrona identifies four core problems that create and reinforce knowledge silos, Rob Koch’s Markwhen is like Markdown for timelines
|
KISS Principle (Keep It Simple, Stupid)
KISS advocates for simplicity in software design. Complex systems are more prone to errors, harder to maintain, and difficult for other developers to understand.
What is PHP Fiber? Does PHP Fiber Really Give You Asynchronous Execution?
Fibers don’t provide true asynchronous execution, but they are a powerful tool for managing tasks more efficiently. Let’s explore this concept in detail.
DRY (Don't Repeat Yourself)
DRY emphasizes that every piece of knowledge in a system should have a single, unambiguous representation.
Doctrine for Dummies: 50 Recommendations to Optimize ORM and Turbocharge Your App
These 50 tips are your pit stop for optimization! Let’s dive into the key strategies that will not only turbocharge your app’s performance but also refine your code, making it faster, cleaner, and more efficient than ever.
PHP is a Single-Threaded Language, So How Does Laravel Handle Queue Jobs Asynchronously?
If PHP is single-threaded, how does Laravel achieve this magic? Let’s break it down in simple terms.
CLEAN CODE: Chapter 2: Meaningful Names
These examples demonstrate how meaningful names improve code readability and maintainability.
|
Interesting Projects, Tools and Libraries
laravel/legacy-factories
The legacy version of the Laravel Eloquent factories.
malios/php-to-ascii-table
A PHP library to generate plain text tables.
sbrindle/phpcpd
Copy/Paste Detector (CPD) for PHP code.
opengento/module-webapi-logger
This module allows you to analyze all the webapi rest done call toward your Magento.
mitchdav/laravel-stripe-ids
Generate Stripe-style IDs (ch_xxxxxxxxxx) for your Eloquent models.
kitpages/data-grid-bundle
Symfony DataGridBundle.
hackthissite/php-bull-scheduler
PHP library to schedule Redis jobs for the NodeJS Bull Redis queue.
majus28/pdf
TCPDF is a PHP class for generating PDF documents and barcodes.
vikpe/php-html-heading-normalizer
PHP class for normalizing (promote/demote) HTML headings.
webbuilders-group/silverstripe-gridfield-deleted-items
Provides a series of components that allows you to view versioned objects that have been deleted from the draft site.
|
Jobs
------
Do you have a position that you would like to fill? PHP Weekly is ideal for targeting developers and the cost is only $75/week for an advert. Please let me know if you are interested by emailing me at [email protected] |
Please help us by clicking to our sponsor:
Protect your PHP Code
Why not try SourceGuardian 15. Click here to download a 14 Day Trial copy. Protect your code using Windows, Linux or Mac and run everywhere with our free Loaders. |
So, how did you like this issue?
|
|
|
|