This month PHP turns 28 years old, and to celebrate what is considered the web's workhorse's anniversary, we have the most stacked newsletter to date for all our subscribers. The most articles, tutorials and podcasts all in one single PHPWeekly issue. Some highlights include launches of new updates including PHP 8.1, Flare 2.0 and a CLI utility for supercharge your Laravel Forge account. In tutorials we have loads of guides including PHP testing framework, a comprehensive guide to Null Safe operator, Unit Testing and understanding PHP Deserialisation. In podcasts we have new episodes from North Meets South on Feature Flags and Deploying from Github actions. Good negotiation is this week's topic on Developer Tea, and over at Maintainable, Daniela Baron discusses ways to improve the onboarding experience for new developer to a project. Finally in the Reading section we have an article on PHP encapsulation, Enhancing Memory Efficiency in eCommerce using the Flyweight pattern, as well as a blog on cultivating confidence for junior developers. We have all that and more, so we do hope you enjoy this week's newsletter. If you're a student or developer on the move and want the latest PHP news and updates in one place, then subscribe to PHPWeekly.
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].
Do follow us on our social media channels on Twitter and Facebook.
All the best,
Please help us by clicking to our sponsor:
Get Reliable, Fast & Quality Proxies, Without the Tradeoffs
Scrape or crawl any amount of data, without having to worry, settle or break the bank. Buy HTTP, SOCKS & UDP proxies you can set and forget.
Write a Lexer in PHP with Lexical
I recently released a new PHP package called "Lexical". It provides a set of attributes and objects to build regular expression based lexers in PHP.
php[tek] 2023 - A Community Of Communities Powering The Internet
The PHP community came together in Chicago for php[tek] 2023, sharing best practices and the latest updates from the language and frameworks that run over 77% of the internet.
Asynchronous PHP: An Introduction to Fibers
With the arrival of PHP 8.1, we've been introduced to a new and exciting feature that promises to transform the way we tackle asynchronous programming in PHP - Fibers.
Exploring Laravel's Unique Rule: Enforcing Field Uniqueness in Validation
This blog post aims to explore Laravel's unique rule, offering a step-by-step guide with code examples to effectively enforce field uniqueness in validation.
Flare and Ignition now offer AI-powered solutions
Today, we're adding AI-powered solutions to Flare. This means we can suggest a solution for almost any error: the AI will likely suggest a helpful suggestion for most errors.
Problems that occurs when Establishing database connection in PHP
One of main problems that comes in php, that has been faced by new Web Developers is establishing database connection.
How can I stay up-to-date on PHP development trends?
Staying up-to-date on PHP development trends is crucial to remain relevant in the ever-evolving programming landscape. Here are several ways you can stay updated.
How to Use PHP Regular Expressions for Pattern Matching and Data Validation
In this post, we will learn how to use regular expressions in PHP, a popular server-side scripting language.
Taming the Beast of Intermittent Failures: A Laravel Circuit Breaker Tale
A circuit breaker is a design pattern that stops a system from continually attempting to carry out an operation that is likely to fail.
Web Scraping Specialists Wanted
If you're a skilled Web Scraping Specialist with a knack for creative problem-solving, join our remote team to gather data from e-commerce websites and enhance our data-driven solutions. Embrace challenging projects, overcome blocking technologies, and collaborate with a diverse global team in a flexible, fast-paced environment.
Junior PHP/Python Developer - Remote
We're looking for Full-Stack Developers to join our dynamic remote international team. As a developer, you'll work on a range of projects, including Business Intelligence systems, Legal SaaS, and cutting-edge online projects. You'll be responsible for improving legacy systems, monitoring technical systems, and delivering high-quality solutions. You should be proficient in front-end and back-end development, have strong problem-solving skills, and experience with Python, PHP, Postgres, MongoDB, and Linux servers. If you're a self-motivated team player, apply now.
Technical Support Manager - Remote
Are you interested in programming but don't have the experience yet to be a skilled developer? Join our team as a Technical Support Manager and be part of our SaaS company's success. You'll work closely with our customers to provide timely solutions, troubleshoot technical issues, and contribute to feature development. Using your skills, you'll quickly identify and resolve issues, while also working closely with our team to deliver an exceptional customer experience. You don't need to have programming experience to succeed in this role, but you should have a passion for technology and a desire to learn. You will help us enhance our products and deliver an outstanding customer experience.
Tutorials and Talks
Lifecycle Hooks In Laravel - How To Build Them, And Why You'd Want To
We, as programmers, have to be particularly adept at breaking large, complicated problems down into smaller, easier-to-manage chunks. Sometimes, however, it turns out that some of those smaller, repeated bits of code that we've extracted to reduce duplication (or some other need) have to be interacted with differently based on some external context.
Email in Laravel with Mailable & Notification classes (and how to test them in Dusk!)
This tutorial demonstrates how to use two different email techniques in Laravel to send mail: Mailable and Notification.
Injecting Dependency Like You've Never Seen Before: Unprecedented Laravel Missteps
Ah, the majestic art of Dependency Injection in Laravel – when executed flawlessly, it's like watching a ballet dancer pirouette gracefully. However, when it goes wrong, it's a hip-hop dancer in a ballet class, utterly hilarious.
Software Quality Metrics: No Sorcery, Just Simple Math!
Greetings, PHP Padawans and Code Craftsmen! You've arrived at the right place if you're in search of the One Ring to rule your PHP code! The magical journey we're embarking on today involves a fantastical beast with a forbidding name - Software Quality Metrics.
How to Trigger Upload Started/Finished Event in Component (FilamentPHP)
When writing custom components in Filament, it is sometimes necessary to interact with upload events. For example, you may want to deactivate the save button and display a "File Uploading" button.
Step By Step To Pest PHP Testing Framework In Laravel 10
The PestPHP testing framework offers several benefits that make it an excellent choice for testing PHP applications, particularly in the context of Laravel projects. Here are some of the key benefits of using PestPHP.
Laravel Ecommerce Tutorial: Part 6.2, Listing And Deleting Products
This the part 6.2 of the on going tutorial series on building an ecommerce website in Laravel from start to deployment.
Laravel Unit Testing Comprehensive Guide for Api Endpoints
In this blog post, we will dive into the world of unit testing Laravel API endpoints, exploring best practices and demonstrating how to create effective test cases using Laravel’s testing framework.
Mastering Null Safety in PHP 8: A Comprehensive Guide to Using the Null Safe Operator
This blog will equip you with the knowledge and skills to harness the full potential of null safety in your PHP code.
Understanding Logging in Laravel Applications
This tutorial provides an overview of how logging works in Laravel applications, covering topics such as log configurations, channel drivers, and log message formatting.
Understanding PHP Deserialization & Type Juggling Attacks Part I
I’m going to bring you the first part of this series understanding deserialization and type juggling attacks in php.
News and Announcements
Define Casts in a Query
Laravel has Eloquent attribute and custom casting. But did you know about query-time casting? It's documented in Laravel, and illustrated beautifully by Aaron Francis
Bellows: Supercharge your Laravel Forge account
Bellows is a CLI utility that sits on top of the Laravel Forge CLI to get your site up and running quickly.
PHP 8.1.20 Released!
The PHP development team announces the immediate availability of PHP 8.1.20. This is a security release. All PHP 8.1 users are encouraged to upgrade to this version.
Flare 2.0 has been launched!
We're very proud to launch it today. Long-time users will immediately notice that both our marketing website and application have a new coat of paint.
A Week of Symfony #858 (5-11 June 2023)
This week, we started working on the upcoming Symfony 6.4 and 7.0 releases. In Symfony 6.4 we added a feature in Scheduler to allow setting the timezone for the next run derived from a cron expression and added a max_retries config option to HttpClient. In Symfony 7.0 we removed some unneeded code in Uid and dropped support for Doctrine DBAL 2.x. Lastly, next week we'll celebrate the SymfonyOnline June 2023 conference.
SymfonyOnline June 2023
Join us for the sixth edition of the international online Symfony conference. The entire conference will take place online for 4 days in English.
Laravel Live UK 2023
Laravel Live UK 2023, the official Laravel conference for the UK, is coming to London for a two-day conference on June 22nd and 23rd 2023. Join hundreds of Laravel and PHP enthusiasts for inspirational talks, engaging networking, and amazing learning opportunities.
Podcasts and Vlogs
PHP Ugly: 338: PHP Just In time
This week on the podcast, Eric, John, and Thomas talk about PHP JIT, Wordpress Security, Our Interview on another podcast, and more...
The Stack Overflow: The meeting that changed how we build software (Ep. 579)
Jim Highsmith, an original signatory on the Agile Manifesto, tells Ben and Ryan about what software development looked like at the time of the Apollo program, the evolution of user interface, and the meeting where “17 adventurous techies changed the world.”
No Compromises Podcast: When Should You Use Final Classes Or Private Properties?
The discussion of final classes was a hot topic recently. We had planned on discussing this even before it came up on Twitter, but here is our unsolicited opinion.
North Meets South Podcast: World Champions, Deploying From Github Actions, And Feature Flags
Jake and Michael discuss the world champion Denver Nuggets, building assets and deploying apps in GitHub Actions, and feature flags with Laravel Pennant.
Maintainable Podcast: Daniela Baron - About Those Docs
Robby has a chat with Senior Staff Engineer, Daniela Baron (she/her), about ways to improve the onboarding experience for new developers to a project, examples of reliable traceability from code to tests to business goals across repositories and project management tools.
Developer Tea: Good Negotiation is About Collaborative Problem Solving
Negotiation is not about getting more of what you want out of another person. Real artful negotiation is about finding alignment, and solving the problems presented at a level of divergence.
Shoptalk Show: 569: Apple’s Web Apps, Meta Quest and Vision Pro, and Missing Sticky Headers
How do you point out things in a UI? Are Arc Boosts the end of the web? What do you think of VR and AR / Vision Pro and Meta Quest? And what do you do when the sticky header goes missing?
Visualising Laravel and Horizon metrics using Prometheus and Grafana
Using this package, you can send all sorts of metrics (user counts, subscription counts, queue workloads) around your Laravel to Prometheus and visualize the historical trends using Grafana.
Use Ray()->Trace() To Figure Out Where A Call Came From
An important problem of a programmer's productivity is finding his way through the code. A good project structure and your IDE can get you a long way, but sometimes it’s not enough. Luckily enough Ray has a bunch of tools to help you out.
Enhancing Memory Efficiency in Ecommerce Applications with the Flyweight Pattern
In this article, we will explore how the Flyweight pattern can be implemented in a real-world ecommerce application using code examples.
Cultivating Confidence: Essential Steps for Junior Developers
There is something that has always been a challenge for me, and it’s building confidence. I have always been a shy kid, always doubting myself. When I started my studies, I met teachers telling me how bad I was, and that I didn’t belong in that field. I had a hard time not taking their word for it.
PHP Encapsulation — Safeguarding Data Integrity and Enhancing Modularity in OOP (Object-Oriented Programming)
This article delves into PHP encapsulation, its significance in ensuring data integrity and code modularity, and provides an example to illustrate its practical implementation.
Drupal Field Content Migration with Views Bulk Edit module
Use the Views Bulk Edit module to migrate content for individual fields on selected content types.
Interesting Projects, Tools and Libraries
Simple class, array as xml converter.
A package to quickly connect using eloquent.
A basic class that helps to perform CRUD actions on a server.
The missing RESTful API component to CakePHP's bake console. Create RESTful API skeletions in seconds.
Providing scout commands for the Laravel Tenancy package.
A PHP Client library to consume the Intuo API.
Provides support for Drupal HTML output printer to phpunit's teamcity result printer.
Driver for Excel in PHP.
This library helps you to suppress media queries in your dynamic content.
Uses Faker to fake Swagger schemas.
Please help us by clicking to our sponsor:
Protect your PHP Code
Why not try SourceGuardian 14. 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?