Welcome to the latest edition of phpweekly.com.
Voting is now open in the election for the next At-Large member of the Drupal Association Board.
Also this week sees the release of Laravel 8.3, plus Joomla 4 Beta 4 and Joomla 3.10 Alpha 2.
Have a good week,
Stay safe and well.
All the best,
Ade and Katie
Please help us by clicking to our sponsor:
Protect your PHP Code
Why not try SourceGuardian 11. Click here to download a 14 Day Trial copy. Protect your code using Windows, Linux or Mac and run everywhere with our free Loaders.
Time to Vote!
Elections for the next At-Large member of the Drupal Association Board have now reached the voting phase. Voting will take place from now, 15 September, until 30 September at 10 am PDT.
Difference Between PHP and WordPress for Web Developing
PHP lays down the foundation for designing and developing websites by giving the users all the necessary functions in hand. It is of utmost importance to have prior knowledge of coding before delving deep into creating a website using PHP.
3 Reasons PHP Won’t Fade Away in 2021
PHP has been a prominent player in the “development industry” since its launch in 1994. Several programming languages have come and gone since PHP’s release, but nothing has withstood the aggressive market as PHP did.
A Simple Recipe for Framework Decoupling
If you want to write applications that are maintainable in the long run, you have to decouple from your framework, ORM, HTTP client, etc. because your application will outlive all of them.
Certificate Lifetime Limited to 1y Since September 1st, 2020
Earlier this year, Apple announced that it would limit the lifetime of trusted certificates to 398 days. Shortly after, both Firefox and Chrome followed in their footsteps.
Tutorials and Talks
Building The Next Generation react/http PSR-15 Adapter
Two and a half years ago I wrote how to use RecoilPHP to create a PSR-15 middleware adapter for react/http using coroutines, monkey patching, and autoloader hijacking. Today there is a followup on that without any coroutines, monkey patching, and autoloader hijacking. But using ext-parallel instead, react-parallel/psr-15-adapter was created.
Refactoring is the process of modifying and restructuring code without changing its functionality. When I first heard about it, I was like: Why would anyone do that? It took some years until I fully understood the concept and that the working code is not always good.
Automating the Laravel 8 Schema Dump Using GitHub Actions
The release of Laravel 8 introduced us to many great new features, and I think it is one of the best releases we have ever had! However, to me, the schema dump command is far by the most useful for me in some personal projects and for the large projects I work on every day at work.
Ketting v6: Using Hypermedia APIs with React
We just released Ketting 6. This is the accumulation of about a year of learning on how to better integrate REST APIs with frontend frameworks, in particular React.
How Static Methods Kill You Like Corona
Do you know the Broken Window theory? It's a social pattern in code, a great post written by a guy behind one small manual website - StackOverflow. If you combine this theory and Static Methods in Your code, you'll get Corona. As we already know, it might or might not be deadly. How it spreads, what are ways to protect, can we cure it?
Laravel Tutorial #7: Views
This the last part of the MVC structure. In Laravel, views are stored in the resources/views directory. Notice that the view files are named xxx.blade.php. That is because Laravel uses the Blade templates, it allows us to design the views without repeated coding.
How To Install Nginx + PHP + MySQL on WSL Ubuntu 20.04- Windows 10
Nginx is an Apache alternative web server in the open source category to support several internet protocols such as HTTP (S), IMAP, and POP3. It can also be used as a reverse proxy with WebSocket support. The server offers a gunzip module, whereby compressed web pages can be unpacked before being sent to the browser.
Use Elementor Template Kits to Create a Custom WordPress 404 Page
In this series, our mission is to create a 404 page that people won’t mind visiting. In the first part, I showed you how to add the popular Elementor plugin to your WordPress website. We then used Elementor to quickly and easily create a 404 page using a ready-made template, before building a completely custom 404 page, without using a template.
Working With Data
I like to think of that simple idea of grouping code in domains - which I explained in the previous chapter - as a conceptual foundation we can use to build upon. You'll notice that throughout the first part of this book, this core idea will return again and again.
Updating the Laravel Installer
Installing the new Laravel installer using Composer is easy, but what if you already have it installed? The latest Laravel installer will be essential to your workflow, so you need to make sure you get the newest version. If you’re scratching your head, we’ve got you covered!
Switching Between Queue Drivers in Laravel Without Stopping the World
Each of the queue drivers supported by Laravel has its pros and cons, and sometimes you may want to switch between drivers to accommodate business needs. In this post we're going to look into the possible ways to switch between drivers.
|News and Announcements
Joomla 4 Beta 4 and Joomla 3.10 Alpha 2 Are Here: Test Them Now!
The Joomla Project is pleased to announce the availability of the Joomla 4.0 Beta 4 release, and the second Alpha of Joomla 3.10. We invite you to download, install and test the package to improve quality assurance for the forthcoming 4.0 release and to discover the new features introduced in this major release.
Laravel 8.3 Released
The Laravel team released v8.3.0 this week with JSON casting for database test assertions, the ability to use closures in queued batches, and added various facade method PHPDocs.
CakeFest 8-11th October 2020 - An Important Announcement!
We Are Going Virtual! The team has come to a very difficult decision - CakeFest 2020 8 - 11th October, will now be a virtual conference. While we know there are many in the community who will be disappointed about this announcement, we know that this is the time for our community to rally together.
PHP.RUHR 2020 Web Development & Digital Commerce - November 4-6th 2020, Dortmund
Don't miss the seventh episode of one of the most outstanding PHP and web development conferences in Europe. This year's conference will be a very special one, because for the first time we will have a hybrid concept, which means that there will be visitors on site and there will be video streaming. Anyway, all participants will be able to get in touch with the speakers and with each other. Furthermore, there will be additional digital booths for sponsors. Tickets are on sale now.
NomadPHP: Building APIs with Laravel, A Simple Approach To Scale
Presented by Steve McDougall, October 15th 2020 11:00am PDT. Building APIs can be easy right, we design the data model, slap some routes in and controllers to wrap our ORM access. But is this efficient, and does it scale? What happens when our application grows to a point where we have 100s of Models and more scopes than your average game of Call of Duty? How can we structure and approach our APIs in Laravel, so that scale from a code perspective isn't an issue? In this talk I will take you through how I approach this problem, and have been approaching this problem for the last few years.
NomadPHP: Preparing for Doctrine 3Subscribers
Presented by Denis Brumann, November 12th 2020 11:00am PST. Doctrine ORM is probably the most used database abstraction in PHP. With Doctrine 3 on the horizon it's a perfect time to look at how Doctrine has changed and will change and what this means for you as users. This talk looks at some of the already merged features for Doctrine 3 that could have an impact on your code and why the might prevent you from upgrading. I will show approaches for tackling these changes and how your projects might benefit from introducing them already.
Podcasts and Vlogs
MageTalk Magento Podcast #223: “Death by a 1000 Pings” (feat. Eric Hileman, CEO at MageMojo)
Eric Hileman sits down with Kalen to discuss team remote culture, how to maintain open communication in Slack!
Voices of the ElePHPant - Interview with Dave Delaney
This week Cal interviewed creator of "Networking For Nice People" Dave Delaney.
Laravel Podcast Series 4: Episode 13 - Presets & Jetstream, with Michael Dyrynda
One of the most powerful tools in creating Laravel apps quickly is how much you can get done in an app that just contains the skeleton scaffold Laravel comes with. The frontend presets, which in Laravel 8+ are now contained in a tool called Jetstream, allow you to scaffold your frontend build tooling and user registration, login, and management, all with a single command. Learn more in this episode with Michael Dyrynda.
PHPUgly #205: Laravel Release Party
This week on the podcast, Eric, John, and Thomas discus Laravel 8, Laravel 8, and Laravel 8. Oh and he sprinkle in some other topics here and there.
php[architect] Podcast: Editor Bytes – Under the Scope
Editor-in-chief Oscar Merida looks into the September 2020 issue, Under the Scope.
PHP On The Road to The 8.0.0 Release
Version 8.0.0 Beta 3 is released. It's now enter the stabilisation phase for the developers, and the test phase for the users.
php[architect] Magazine September 2020 - Under the Scope
It’s time to review some fundamentals and remind ourselves how some things we might take for granted work. This month, we have articles on serialising PHP objects, using middleware effectively, and measuring project metrics. We also cover tools to make your development setup more useful, how autoloading works, and building a composite to keep your application maintainable.
A Week of Symfony #715 (7-13 September 2020)
This week, Symfony development activity was frantic with tens of fixes and new features merged. The upcoming Symfony 5.2 version added support for shared locks, integration of Cache and Messenger components to allow computing cached values in a worker and the introduction of PHP 8 compatible attributes for routes and required attributes.
Invert, Always, Invert
Today, we will look at one of my favourite mental models called - The Inversion principle. Mental models are a set of simple, abstract but useful principles that help us make sense of the world around us.
WordPress Development in Depth: 7 (A php[architect] guide) Published 27th August 2020
By Peter MacIntyre and Sávio Resende. This book shows you how to use plugins and themes from WordPress’ thriving ecosystem to make a search-engine friendly website with advanced features.
Do you have a position that you would like to fill? PHP Weekly is ideal for targeting developers and the cost is only $50/week for an advert. Please let me know if you are interested by emailing me at email@example.com
Interesting Projects, Tools and Libraries
Some exercises to practice whiteboard interview questions in PHP.
A free shopping cart system, based on OpenCart, ideal alternative to Opencart, rich to develop - easy to use!
Wrapper for OVH Object Storage integration with laravel.
Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way.
The Form component allows you to easily create, process and reuse HTML forms.
The Messenger component helps application send and receive messages to/from other applications or via message queues.
Provides Mailgun integration for Symfony Mailer.
PHP Backup Utility - Creates and encrypts database and file backups, syncs your backups to other servers or cloud services and assists you monitor your backup process.
Futuristic grinder for legacy code with effortless confidence.
Ergonode backend repository.
Support additional aggregate queries on Eloquent relations.
Official PHP wrapper for the Unsplash API.
Please help us by clicking to our sponsor:
Performance Insights in Less Than 4 Minutes
Scout is PHP application monitoring designed for developers. Pinpoint n+1 queries, memory leaks & more with tracing logic that ties bottlenecks to source code. Start your free 14-day trial today.
So, how did you like this issue?