Subscribe! Enter your email address below:

NO SPAM: We absolutely hate spam. We will not share, rent, or give away your email address to anyone.You can unsubscribe at any time. Easily!

January 2, 2020

Welcome to a New Year, a New Decade and a Bumper Double Edition of PHP Weekly to take you into 2020!

Packed with the usual mixture of podcasts to listen to, tutorials to work on and conferences to sign up for.

Ade and I would like to thank each and every one of you out there in the PHP community, who have subscribed to our weekly newsletter and who help us immensely with article submissions, ideas and general advice.

With over 17,000 people receiving and reading PHP Weekly each week we would not be where we are today without all of you. We are humbled by the kind words and inspired by the advice.

Here's to a Happy, Healthy and Prosperous 2020 for you and your families.

Katie and Ade

Please help us by clicking to our sponsor:

encrypt php scripts
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.


24 Best WordPress Form Plugins for 2020
Add a feature-rich and easy-to-use form plugin to your WordPress website to help you collect information that is vital to the functionality and growth of your business.

Secure WordPress Hosting: 16 Must-Have Features You Should Consider
Security is paramount if you are running a serious online business. Every year thousands of online businesses lose data worth millions of dollars in the hands of cyberattacks. Secure WordPress Hosting is inevitable in this modern era of the web, which can offer a better defense system against cyber damages.

Symfony 2010s Decade in Review
Today, December 31, 2019, is the last day of the 2010s decade. That's why it's the perfect moment to make a quick recap of the last 10 years for the Symfony project. We've flicked through the thousands of articles published in this blog since 2010 and we've selected the most significant events. Let's take a trip down memory lane.

The PHP Classes Community in 2019 and 2020 Future Plans
The 2019 year was great for all developers that participated in the PHP Classes community. The plans for 2020 are even greater. Not only the PHP Classes site will distribute many elePHPants to many PHP developers around the world, but it will also provide opportunities to any developer that wants to make money from their software development passion, so you only have to work for your own company creating your own products and services that the PHP Classes site will help you to advertise and sell. Read this article to learn about these plans for the PHP Classes developer community in 2020.

Tips For PHP Security
While PHP is one of the most popular scripting languages, applications written with it are quite susceptible to attacks. As a developer, it’s your responsibility to protect your PHP security code and applications from potential hackers. To create the most secure PHP website possible and safeguard your sensitive data, start with these tips.

Christmas Presents
When I was a kid, I admit, Christmas was mostly about the presents. This changed over time as I grew older. We all know that the Christmas we celebrate is not what it should be, yet still we fail to fundamentally change something about it, or at least about the way we deal with it. Admittedly, fundamental change is really, really hard to achive. So why not try some little changes?

Tutorials and Talks

Build a Donations System Using Twilio Studio and Pay
If you've ever created a fundraising campaign, you've probably faced one big (and essential) problem: how do I actually accept payments from supporters? In this guide, we’ll show you how to build a donation system using Twilio Studio and Pay.

Better Navigation: How to Add a Dropdown Menu in WordPress
WordPress features a built-in menu management system that makes it easy to add menus to your website. In this quick tip, I’ll share two easy ways that you can transform any standard WordPress menu into a dropdown menu.

Letsencrypt Wildcards
I have a number of domains spread across multiple registrars. Some are mine, others are friends and family domains so they are spread out across multiple registrars and name service providers. This becomes a bit of a challenge to manage when it comes to SSL certs for them, especially when someone wants to add a new host. Expanding the cert to include the new hostname is a very manual process. It would be so much nicer if I could just use auto-renewing wildcard certs everywhere. So that was the evening's project.

Entering The Application Layer
Domain- and application code are two separate things. Moreover, applications are allowed to use several groups of the domain at once if they need to in exposing the domain functionality to the end user. But what exactly belongs in this application layer? How do we group code over there? These questions will be answered in this chapter.

8 Steps You Can Make Before Huge Upgrade to Make it Faster, Cheaper and More Stable
"How much will cost upgrade from Symfony 3 to Symfony 4 with Rector?" Similar questions fill my personal and Rector email in the last 3 months. It's hard to give a reasonable answer without actually seeing the repository, so I reply with follow-up questions to get get more details. Yet, I've discovered there are few repeated patterns, that make the upgrade easier and that most projects can do by themselves before migration starts.

Name Your Laravel Horizon Workers For Easier Debugging at the CLI
As part of our Oh Dear! monitoring service, we run workers. A lot of workers. Every site uptime check is a new worker, every broken links job is a new worker, every certificate check is a- you get the idea.

How to Use PHP in HTML
In this article, I'll show you how to use PHP code in your HTML pages. It’s aimed to PHP beginners who are trying to strengthen their grip on the world's most popular server-side scripting language.

How to Create a Marketplace with WooCommerce Multi Vendor Plugin
You may have shopped online many times, choose from hundreds of products and paid through a credit card. Have you ever wondered where all these products, different pricing, different colors, and sizes come from? More importantly, how are all these things being managed? In this article, I’ll describe a great idea that brings all these things together – WooCommerce Multi Vendor Marketplace.

Intro to Building Websites with Gatsby and WordPress (Fast and Static)
How does a typical dynamic website, like those based on WordPress, work? When a visitor enters the URL on a browser or visits your website through a link, a request is sent to your web server.

Using onCreateNode to Combine Drupal Bundle Schema Types in GatsbyJS
One of the challenges with Drupal is a data model that is split amongst different types of content. This becomes even more true with Drupal Commerce. You have different product types that contain different yet similar schema and need to be displayed in the same buckets. I wrote the following code to take all product types and make a singular product schema type.

PHP 7.4 Typed Properties BC Problems
Prior to PHP 7.4, declaring property scalar types was done with DocBlocks. With typed properties introduced in PHP 7.4, the scalar type can now be set like this...
News and Announcements 

Symfony 5.0.2 Released
Symfony 5.0.2 has just been released with a list of the most important changes.

Symfony 4.4.2 Released
Symfony 4.4.2 has just been released with a list of the most important changes.

WordPress 5.3.2 Maintenance Release
WordPress 5.3.2 is now available! This maintenance release features 5 fixes and enhancements.

Laravel 6.8.0 Released
The Laravel team released a minor version v6.8.0 last week, adding useful test response updates along with the latest features, changes and fixes for Laravel 6.x.

CakePHP 3.8.8 Released
The CakePHP core team is happy to announce the immediate availability of CakePHP 3.8.8. This is a maintenance release for the 3.8 branch that fixes several community reported issues.

CakePHP 4.0.0 Released
The CakePHP team is thrilled to announce the immediate availability of 4.0.0. This is release begins a new chapter for CakePHP as 4.0 is now API stable. With this release, Cake 3.x moves into maintenance mode while 2.x moves into security release mode.

CakePHP 4.0.1 Released
The CakePHP core team is happy to announce the immediate availability of CakePHP 4.0.1. This is a maintenance release for the 4.0 branch that fixes several community reported issues.

Git 2.25 Is On The Way For Release In Early 2020
Git maintainer Junio Hamano released Git 2.25-rc0 on Christmas as the first test release en route to this next feature update for this widely-used distributed revision control system.

PHP UK Conference - 19th-21st February 2020, London
PHP UK is pleased to announce the 15th Annual PHP UK conference; a 2-day event with 3 great tracks held at The Brewery, in the heart of the City of London. With over 700 delegates, speakers and sponsors, PHP UK conference aims to deliver fantastic up-to-date content about PHP and related web technologies in a comfortable and professional setting. Early Bird Tickets are on sale now.

WordCamp Asia Conference - February 21st-23rd 2020, Bangkok
The inaugural WordCamp Asia will be in Bangkok early next year, expecting 1,000 participants from around the world. Flagship WordCamps draw more attention than any other types of WordPress events in terms of media, users and businesses. Tickets are on sale now.

DrupalCon - 18th-22nd May 2020, Minneapolis

At this annual gathering, you can share your knowledge and skills about Drupal innovation with others to help drive the Drupal project’s growth by becoming a speaker. You can participate in informative sessions, and opt for popular trainings and/or a summit within your industry to master Drupal for improved customer satisfaction. Tickets are on sale now.

php[tek] - May 18th-21st 2020 - Nashville, TN
Welcome to php[tek] 2020 where we combine leadership, expertise, and networking in one event. A relaxing atmosphere for tech leaders and developers to share, learn and grow professionally while also providing you with the knowledge to solve your everyday problems. Join us on the journey to be excited about work again! The Call for Speakers ends in a couple of days and Early Bird Tickets are on sale now.
PHP fwdays'20 is the largest conference in Ukraine for PHP developers, and for those who want to learn about a wide range of new technologies, reveal the latest trends. At PHP fwdays’20 well-known international and Ukrainian PHP experts meet the audience: users and developers, architects, team leads etc. The highest level of the program is guaranteed by several stages of selection and rehearsals for every speaker. Tickets are on sale now.

SymfonyLive Warszawa June 9-12th 2020, Poland
Come for the conference to learn all about the latest developments with Symfony, share best practices, experience, knowledge and make new contacts with the great Symfony community from Poland! All talks will be in Polish, except for the Keynotes, which will be in English. Early Bird Tickets are on sale now and the Call for Papers is open.

Dutch PHP Conference - June 25-27th 2020, Amsterdam
Join us for 3 full days of Insights, Inspiration " Community around PHP and Web Technology! Learn new stuff and get inspired by 50+ speakers and 500+ fellow attendees: join our Tutorial Day Thursday June 25 with master classes from the PHP Web Tech community followed by the main Conference Days Friday and Saturday June 26 and 27, two days full of talks and social activities. The Call for Papers is now open.

Nomad PHP US - January 16th 2020 6:00 PST
How I Learned to Stop Wiring and Love Autowiring Containers, presented by Beau Simensen. Does managing YAML, XML or PHP container configurations make you sad? Do you dread making changes to your classes' dependencies for fear of the inevitable container configuration wiring blues? Life doesn't have to be this way! Not if your container supports autowiring, that is. Hear one developer's journey into the wild world of containers, learn how autowiring works, and find out how using autowiring can free you from having to manually configure every dependency.

Podcasts and Vlogs

PHP Ugly Podcast #172: DoIt4PHPUgly
This week Eric, Thomas and John discuss various topics including the release of Laravel 6.7.0.

php[podcast] Episode 27: Migrating Frameworks, Depression and Mental Health, Laravel Vapor and Michael Akopov
For December 2019, we take a look at this month’s issue “Expedition PHP.” Our guest this month is Michael Akopov.

Reading and Viewing

A Week of Symfony #677 (16-22 December 2019)
This week, Symfony 4.4.2 and 5.0.2 maintenance versions were released. Meanwhile, we improved performance when using Symfony with the Alpine Linux distribution, which is common when using Docker.

A Week of Symfony #678 (23-29 December 2019)
This week, Symfony 4.4 migrated the server:log command away from the deprecated WebServerBundle. Meanwhile, the upcoming Symfony 5.1 version merged several performance improvements, such as adding an array cache in front of the serializer cache. In addition, it improved developer experience when using Search, Email and Tel form types.

All About WordPress - An Interview With Birgit Pauli-Haack
It’s a great opportunity to interview one of the most active members of the WordPress Community. She’s none other than Birgit Pauli-Haack, the founder and CEO of Pauli System, LC.

New Year’s Resolutions Won’t Help You Become a Developer
It feels like you’re finally making your goal to become a web developer official, but you’re really shooting yourself in the foot. This video explains why and what you should do instead.

The Laracon EU 2019 Videos Have Been Released
Laracon EU is an amazing conference I had the pleasure of attending these past years. Last week the videos of the 2019 edition have been released. You can see them all in this handy playlist on YouTube.

Interview with Anne Stefanyk, CEO of Kanopi Studios: Drupal Can Be Anything You Want It To Be
Agiledrop is highlighting active Drupal community members through a series of interviews. Now you get a chance to learn more about the people behind Drupal projects. This time we spoke with Kanopi Studios' awesome CEO Anne Stefanyk, covering everything from her first getting to know the Drupal community to Kanopi's exciting projects and community involvement all through to Anne's love of treehouses.

How to Get Rid of Technical Debt or What We Would Have Done Differently 2 Years Ago
We talked about cleaning legacy code with Rector 2 months ago on 40th meetup of PHP friends in Prague. The talk was not full of shallow tips, nor about framework migration. Instead, we talked about small decisions that were made 2 years. Decisions, which took 3 months to get rid of.

Kinsta Kingpin: Interview with Sebastiaan van der Lans
Sebastiaan van der Lans is co-founder and owner of web agency Van Ons. Starting out in 2006, Van Ons has grown into a leading tech agency in Amsterdam with a team of 25 experts who are focused on building WordPress sites, shops and applications for big names.

Building Filters Using laravel-query-builder
On the subscribers screens of the Mailcoach, you can filter out the subscribers that have a certain status, you can search and sort them. In the video below, which is part of the upcoming Mailcoach video course, I explain how we built these filters

From Software Developer to CEO – SimiCart’s Incredible Success Story
The biggest achievement of any Magento developer is to convert his expertise into a full-fledged business. The process is all about growing from $50 an hour to a multi-millionaire entity. Max Ta is a great example of this transition. Max began as a developer at MageStore. After three years, he finally decided to take the leap of faith and started SimiCart, a Magento dev agency.


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 protected]

Interesting Projects, Tools and Libraries

This plugin for the CakePHP Framework allows you to use the Twig Templating Language for your views.

A PHP package for mapping remote {json:api} resources to Eloquent like models and collections.

Manages configuration settings stored in the database and makes them accessible via a service in your Symfony project.

Open source API management platform which helps to build and manage RESTful APIs.

A PHP library to support implementing representations for HATEOAS REST web services.

Opensource ISP billing system based on stargazer.

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.

A collection of useful PHP scripts and functions, all designed to be copy-and-paste-able into your current framework.

The project allows you as a developer to listen to Redis pubsub using async instead of blocking I/O using PHP. This is done by utilising predis/predis-async under the hood.

Envato-PHP is a PHP client for Envato API. You can easily integrate it with your all kind of PHP based projects. This package is also compatible with Laravel 5.

Tensor is a library and extension that provides objects for scientific computing in PHP.

Lightweight Flysystem wrapper/configuration plugin for CakePHP v3.x

This bundle provides convenient integration of the popular DataTables jQuery library for realtime Ajax tables in your Symfony 4.1+ or 5.0+ application.

This is a command-line tool to check if given files implement your .editorconfig rules.

Faker is a PHP library that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymise data taken from a production service, Faker is for you.

Ninja is Now Just Awesome - a modern web GUI for Naemon.

Open source CMS written in PHP focused on ease of use with true WYSIWYG editing and flat-file storage.

TreoPIM is a single page application (SPA) with an API-centric architecture and flexible data model based on entities, entity attrubitues and relations of all kinds among them.

Phpmig is a (database) migration tool for php, that should be adaptable for use with most PHP 5.3+ projects. It's kind of like doctrine migrations, without the doctrine. Although you can use doctrine if you want. And ironically, I use doctrine in my examples.

Code for database forms and Drupal module for the project.

A small PHP library for validating VAT identification numbers (VATINs).

A PHP addressing library, powered by CLDR and Google's address data.

A minimal middleware based micro framework using PHP Framework Interop Group - PSR, with the goal is to achive the best combination of flexibility and simplicity by using standards.

Centreon is a network, system, applicative supervision and monitoring tool, one of the most flexible and powerful monitoring softwares on the market.

Please help us by clicking to our sponsor:

encrypt php scripts 
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.

So, how did you like this issue?

Like us on FacebookFollow us on Twitter
We are still trying to grow our list. If you find PHP Weekly useful please tweet about us! Thanks.
Also, if you have a site or blog related to PHP then please link through to our site.

unsubscribe from this list | update subscription preferences 

Subscribe! Enter your email address below:

NO SPAM: We absolutely hate spam. We will not share, rent, or give away your email address to anyone.You can unsubscribe at any time. Easily!

Talk to us!

If you have some news, want to share a link with us or chat with us feel free to email us.

And we also have an RSS feed that you can use.

Like us on FacebookFollow us on Twitter

Copyright ©