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!

December 20, 2018

Happy Thursday People! And for those of you celebrating this festive period, Seasons Greetings.

If you’re a developer using PHP to build a website, chances are at some point you’ll need to add a form to the site. Take a look at five of the best PHP form builders.

Also this week we explore the basics of object-oriented programming in PHP.

In the latest podcast from PHP Ugly, the team discusses the results of the recent Laravel 2018 survey and the recent release of PHP 7.3.0.

Matthias Noback has released the 2nd edition of his book Principles of Package Design.

And finally, Early Bird tickets are now on sale for MageTestFest, taking place in Florence, Italy next March.

However, wherever or whatever you may be celebrating, Happy Holidays to one and all!

Ade and Katie

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.


WordPress Fixes Critical PHP Object Injection Issue Leading to Code Execution
The latest WordPress security release fixes a remotely exploitable PHP object injection issue with a 10.0 Critical base score possibly allowing remote attackers to execute arbitrary code on the targeted system.

Comparing the 5 Best PHP Form Builders
If you’re a developer using PHP to build a website for yourself or a client, chances are at some point you’ll need to add a form to the site. That’s where a PHP form builder comes in. Today we’ll take a look at the five best PHP form builders available at Envato Market and compare them in terms of functionality, flexibility and aesthetic appeal. But first let’s look at exactly what a PHP form builder is.

A Love Letter to Legacy Projects
Monday morning. Your previous project just wrapped up and they are going to assign you a brand new one. They even promised you the lead on this project. Who said Mondays couldn’t be great? A few hours later and you are staring at the most dreadful code you have ever seen — controllers of more than a thousand lines, PHP that injects jQuery in the views, raw SQL statements that could challenge a Dostoyevsky novel in size. The list goes on and on. This Monday is going to need a ton of coffee.

Tutorials and Talks

How to Quickly Improve Website Performance
Nowadays, websites should be fast, otherwise visitors will leave your website before they have seen the most important content of your website. It’s obvious, but it can be quite a challenge with all the interesting (frontend) assets that make your website so great once it’s fully loaded. In this post, I’ll describe some quick wins to improve the performance of your website.

Hosting WordPress Yourself Part 8 – Complete Nginx Configuration
In the previous post of this series, I covered security enhancements, automatic server updates, WooCommerce caching and automated server tasks. In this final post I will demonstrate a complete Nginx configuration tuned for WordPress powered sites. In addition to amalgamating all information from the previous 7 articles, best practices from various sources, such as the WordPress Codex and H5BP are included.

Create Style Variations for WordPress Gutenberg Blocks: Part 1
Now is an exciting time for WordPress developers with the official release of version 5.0 just around the corner. This will mark the debut of the brand new editor, code-named Gutenberg. If you have anything to do with WordPress on a regular basis, whether as a developer or as a user, then you'll probably understand why this is big news.

Tracking Vue Errors With Honeybadger in Laravel
I feel like Vue and Laravel were almost made to go together and I’ve been using Vue for quite a while. I’m super stoked that Honeybadger recently shipped an official Vue.js integration. Let’s walk through setting everything up so you so if your Vue app catches fire, you can get it handled!

How to Test Monorepo in 3 Layers
You already have a monorepo, you have at least 2 packages, autoloaded with composer and splitting works. Now you're about to set up testing and code quality tools. How to make testing so tight no bug can escape?

404 Not Found
404 Not Found hardly needs an introduction. It’s by far the most seen status by developers and non-developers alike. 404 is emitted when a resource doesn’t exist, never existed or if the server doesn’t want a client to know that a resource exists.

Route Specific Configuration in Slim
A friend emailed me recently asking about route specific configuration in Slim. He wants to be able to set properties when creating the route that he can pick up when the route is matched. The way to do this is using route arguments. I’ve written about route arguments before in the context of setting default values for a route parameter, but you can also use them to set new data for use later. In this post, I’m going to look at how to use them for configuration data, such as setting required ACL permissions for routes.

Git Hooks on Windows
I recently was asked to add a git hook to our main repository to add the Jira issue number to the commit message in an automated way. We were so far handling this really inconsistently, with many commits not having the ticket number at all, while others would have them either at the start or the end of the commit message. Since our branches all contain the ticket number (naming is like `feature/APP-123-this-new-feature) this should be easy, right?

Object-Oriented PHP With Classes and Objects
In this article, we're going to explore the basics of object-oriented programming in PHP. We'll start with an introduction to classes and objects, and we'll discuss a couple of advanced concepts like inheritance and polymorphism in the latter half of this article.

How to Build a WordPress Theme from Scratch: First Steps
WordPress themes give WordPress users the ability to completely change the look of a WP website, as well as add functionality to it. In this three-part series, we’ll introduce WordPress themes, showing how they work, how they’re structured, the PHP architecture behind them, and other relevant information. We’ll then embark on a journey to build a WordPress theme. This first article prepares us for this journey by discussing the theory behind WordPress themes.

What’s New in PHP 7.3: A Look at Final Release
PHP is still giving a tough competition to other scripting languages, mainly due the rapid updates pushed out by the core maintenance team. In this blog, I will discuss the newly introduced PHP 7.3 features and updates. The good part is that you can install the new version on your test servers and check out the features yourself. As always remember NOT to use the RC updates on dev/live servers as this could break live apps.

PhpStorm Protected Branches Feature
Recently, while working on a little project, I decided to clean up some of the commits on the master branch before pushing it to Packagist. To be lazy, I decided to use PhpStorm's interactive rebase tool instead of the good ole command line. BUT I COULD NOT! And I started to go mad.

Updating WordPress GUIDS
Recently I changed domain name of one of my other WordPress blogs. However after transferring I found that the GUId’s of the old posts were not updated. They were still referencing the old domain. This caused the feed of the new site to show incorrect domains. My initial thought was to to use a plugin, but it would have taken some time to search for the one I required. So the next best thing for me was to do a update on the post table directly from my hosting PHPMyAdmin interface.

Handcrafting Mocks
In an application I was working on I wanted to implement automated tweets. Of course, this logic should also be tested. In this blogpost I'd like to show you how you can easily handcraft your own mocks.
News and Announcements

Laravel 5.7.17 Released
Laravel 5.7.17 is available with new query builder methods, a new message for detecting lost connections in MariaDB, and improvements to adding foreign keys in Postgres.

WordPress 5.0.1 Security Release
WordPress 5.0.1 is now available. This is a security release for all versions since WordPress 3.7. We strongly encourage you to update your sites immediately. Plugin authors are encouraged to read the 5.0.1 developer notes for information on backwards-compatibility.

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

Facebook Releases HHVM 3.30 As The Final Version Officially Supporting PHP
While Facebook's HHVM "HipHop Virtual Machine" project was born as a faster PHP implementation, with PHP7 offering significant upstream performance improvements and Facebook pursuing their own Hack programming language implementation with HHVM, the v3.3.0 release is the last release officially focusing on PHP language support.

DayCamp for Developers - January 18th 2019 Online
PHP 7.0 was a leap forward in performance; 7.1 was another step forward, as was 7.2 and 7.3. With nothing more than keeping PHP up-to-date, applications get faster, servers work less and handle more. So why worry about performance if PHP is going to do it for us? Tickets are on sale now.

PHP Benelux - 25-26th January 2019, Antwerp
The 10th edition of the conference takes place in January and this time all activities will be retro-themed. We will be looking back on all the good vibes of the old days to see what has changed over the years. This two-day event will bring you experts from all over the world that will educate you in our workshop and presentation sessions. The last few tickets are on sale now.

PHP UK Conference - February 20th-22nd 2019, London
We are pleased to announce the 14th Annual PHP UK Conference. An optional workshop day followed by two days of amazing talks, plentiful networking opportunities and great socials. With over 600 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. There are countless networking opportunities to engage with international speakers and delegates, making the event one you won't want to miss. Tickets are on sale now.

MageTestFest - March 5-8th 2019, Florence Italy
All the ingredients you like as a developer. Let our great set of speakers blow you away. Join developers from all around the world for this unique and leading event. Are you going to be there? Join us at the most exciting developer-centric Magento event ever! With two days of workshops followed by the conference and hackathon. Early Bird Tickets are on sale now.

Midwest PHP Conference - 8-9th March 2019, Minnesota
The Midwest PHP Conference is hosted by the Minnesota PHP User Group community through the North Foundation in Bloomington, Minnesota from March 8th - 9th, 2019. This is our seventh year and each year the conference continues to become better. Our goal is to share best practices, ideas, and techniques about building state-of-the-art software applications. Early Bird tickets are on sale now.

php[tek] Conference - May 21st-23rd 2019, Atlanta
The 14th annual PHP educational conference, php[tek] has always been the premier conference for PHP professionals. This year we are working hard on some special changes we are making to the event. We are going to be focusing on providing the highest quality technical education we can, in a unique format over 3 days in Atlanta, GA. If you are interested in keeping up to date as we make new announcements, sign up for our mailing list and follow our twitter account. For now though, Save the Date!


That Podcast Episode 57: The One Where We Talk about Mental Health with Jenna Quindica
Because mental health awareness is important...

PHP Ugly Podcast #131: Keeping Abreast
The week Eric, John and Thomas discuss various topics including the Laravel 2018 survey results and the release of PHP 7.3.0.

Post Status Draft Podcast - Interview with Matt Mullenweg on Gutenberg, WordPress and The Future
In this episode, I am joined by Matt Mullenweg, the co-founder of WordPress and CEO of Automattic. Just after releasing WordPress 5.0, and on the heels of WordCamp US, Matt and I review the event, the release, and discuss how he thinks things went, what could have gone better, and what he sees ahead. We also dig into WooCommerce, various plans around core development processes, Automattic and more. I hope you enjoy.

Voices of the ElePHPant - Interview with Brandon Savage
This week Cal Evans spoke to software developer extraordinaire and object oriented PHP expert Brandon Savage.

PHP Web Development Podcast Ep #26 - Speaking to Rafael
Rafael is a full stack developer who is well versed In PHP and has been in the industry for many years. We will be discussing his journey as a developer and how he became a senior developer. In this first episode we will be covering questions surrounding progression, what progression really means, how long should developers stay within companies to be able to add value, what causes developers to move on etc.

Reading and Viewing

How To Publish a Vue Component as an NPM Package
If you're like me, you have a handful of useful Vue components you use between different projects. Many times I've wanted to publish an individual Vue component to NPM for myself and others to access more easily. When I've attempted this in the past, I've gotten tripped up on annoying little things with NPM and Webpack. I've since worked through those issues and have landed on a fairly simple workflow. Checkout the following screencast to reveal this ancient hidden knowledge.

Introducing The (unofficial) Drupal Recording Initiative
Shout-out to Matt Westgate of Lullabot, who I met earlier this year at DrupalCorn Camp in Des Moines for casually referring to what I’ve been doing for the past five years as the “Drupal Recording Initiative.” It was yet another one of those moments when I realised that what I’ve been doing for the past five years is much bigger than just me.

A Week of Symfony #623 (3-9 December 2018)
This week, 2.7.50, 2.8.49, 3.4.20, 4.0.15, 4.1.9 and 4.2.1 were published as maintenance and security releases. In addition, the SymfonyCon Lisbon 2018 conference gathered hundreds of Symfony community members from all around the world.

Principles of Package Design, 2nd Edition
All of a sudden it became book-writing season. It began in August when I started revising my second book, "Principles of Package Design". Apress had contacted me about adopting it, and they didn't want to change a lot about it. However, the book was from 2015 and although I had aimed for it to be "timeless", some parts needed an update. Furthermore, I had happily pressed the "Release" button back then, but it's the same as with software development: the code you wrote last year, you wouldn't approve of today.


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

A PHP library for implementing the Experience API (Tin Can API).

Toolbox for video conversions, transcoding, querying, thumbnailing... wraps around ffmpeg and ffprobe.

Automate your PHP projects' cacert.pem management.

LibreNMS is an autodiscovering PHP/MySQL/SNMP based network monitoring which includes support for a wide range of network hardware and operating systems including Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP and many more.

The Ilios Curriculum Management System addresses the needs of the Health Professions educational community by providing a user-friendly, flexible, and robust web application to collect, manage, analyse and deliver curricular information.

Flextype is Open Source, fast and flexible file-based Content Management System.

A self-hostable microservice, built with Slim Framework, which enables authorised users to commit arbitrary data to an immutable, append-only public ledger.

MsgPHP is a project that aims to provide (common) message based domain layers for your application. It has a low development time overhead and avoids being overly opinionated.

The multipurpose rss reader, live stream, mashup, aggregation web application.

Chamilo is a learning management system focused on ease of use and accessibility.

This library detects errors and exceptions in your application and reports them to Rollbar for alerts, reporting, and analysis.

High-level machine learning library that lets you build programs that learn from data using the PHP language.

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 ©