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!

February 22, 2018

Hello and welcome to the latest @phpweeklynews.

DrupalCamp London takes place next month, with three days of sessions, keynotes and activities in the heart of the city. Get your tickets now.

Also this week we have an article that takes a look at understanding software design patterns.

We have the last in the three part series on Building a Vue Spa with Laravel, learning how to load async data before the vue-router enters a route.

Plus we learn how to install SSL on Joomla.

And finally, the latest Laravel news podcast out this week has been recorded in three parts, one of which looks at dynamic rate limiting, but all of which bring the latest Laravel news.

Enjoy your read, 

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.


Six Things I Learned as an Exhibitor at Sunshine PHP 2018 
Once upon a time (ok, eight years ago) concrete5 went to SXSW Interactive, and I published a short piece on some things I learned during that experience. I thought it'd be fitting to do the same, having just had an opportunity to go to another conference, yielding a vastly different experience. PortlandLabs just got back from sponsoring SunshinePHP, and I have some thoughts to share.

8 Tips for Improving Bootstrap Accessibility
A few years ago, I wrote about my experiences on developing a Bootstrap version 3 project to be fully accessible for people with disabilities. This focused mostly on Bootstrap accessibility in terms of front-end design. (It didn’t cover accessibility in terms of screen readers, as that’s a whole other story). Recently, Bootstrap version 4 was released, so let’s take a look and see if any of the issues I had in the past have improved.

Which Programming Language Should You Learn? Python Vs PHP Vs C++
PHP and Python are high-level scripting languages used for server-side communication, which means it processes user input, queries data, and performs database operations for web apps. It’s the other side of HTML, CSS, Javascript. These languages dictate how a website looks, how it’s organised, and how a user interacts with it. PHP and Python are scripting languages that can do the heavy-lifting of a website.

Tutorials and Talks

Persisted WordPress Admin Notices: Part 2
In part one of this series, we learned how to implement a basic admin notice that appears at the top of every WordPress admin page. In this tutorial, we'll start to build out a plugin to contain all our custom admin notice code. We'll begin by implementing standard admin notices and use them as a base for more flexible and advanced examples.

Understanding Design Patterns - Simple Factory
This series has been written for developers new to software design patterns and those who find software design patterns difficult to understand.

Custom Events in Laravel
In this article, we are going to explore the basics of event management in Laravel. It's one of the important features that you, as a developer, should have in your arsenal in your desired framework. As we move on, we'll also grab this opportunity to create a real-world example of a custom event and listener, and that's the ultimate goal of this article as well.

Defense Programming: Anticipating Failures with Tests
When you start working on a new feature, it is wise to plan out not only how it is expected to work, but what happens if something fails. Taking the time up front to anticipate failure is a quality of a great developer.

New in Symfony 4.1: Fastest PHP Router
Symfony 4 is the fastest PHP framework according to independent benchmarks, but we are continuously working on making it faster. In Symfony 4.1, we improved the Routing component to make it much faster when matching incoming URLs.

Testing Length Validation in Laravel
I thought it might help people new to the Laravel framework and testing, to walk through how to test length validation. When I say length validation, I mean the constraints of length that you might want to put on a string field.

Amp Promises: From Generators To Coroutines
Generators become available in PHP since version 5.5.0. The main idea is to provide a simple way to create iterators but without creating a class that implements Iterator interface. A generator function looks like a normal function, except that instead of returning the result once, a generator can yield as many times as it needs to in order to provide the values to be iterated over.

Factory as a Service
Dependency Injection Containers are a great invention - when used the right way, they allow us to keep our factories and assembly logic of services outside the core business logic of our application.

Laravel Horizon with Forge and Envoyer
I recently installed Horizon for and while it wasn’t that hard to install, I still had to figure some things out. Since this was the first time setting everything up I thought I’d write up the steps to take to get started with Horizon and set everything up with Forge and Envoyer.

Local and Remote Code Coverage for Behat
PHPUnit has built-in several options for generating code coverage data and reports. Behat doesn't. The main issue is that StoryBDD isn't about code, so it doesn't make sense to calculate code coverage for it. 

Deploy Docker Containers Fast to Microsoft Azure
It’s hard to ignore the fact that Docker is a way to move forward for rapid application development, distributed architectures and microservices. In this article I’m looking at how to deploy Docker containers on Microsoft Azure.

How To Install SSL On Your Joomla Site
There are a lot of ways that bring extra functionality and improvements to a CMS like Joomla. In a previous post, I explained the process of installing a Joomla module, this time I’ll show you how to install SSL on Joomla.

Building a Vue SPA with Laravel Part 3
We will continue building our Vue SPA with Laravel by showing you how to load asynchronous data before the vue-router enters a route.

Mutation Testing with Infection in Big PHP Projects
There's no doubt that having tests in a project allows you to find potential bugs earlier and more easily.

Streaming CSV Using PHP
In one of our applications, there’s a need to get lists of data from a service. This data is used to generate reports by background process, resulting in an XLSX file that can be downloaded or attached to email.

A Package to Assign Statuses to Eloquent Models
Imagine you want to have an Eloquent model hold a status. It's easily solved by just adding a status field to that model and be done with it. But in case you need a history of status changes or need to store some extra info on why a status changed, only adding a single field won't cut it. To handle these cases, our team has created a package called laravel-model-status.

Using Laravel's Bootable Eloquent Traits
In this blog post we’ll take a look at using PHP traits with Laravel’s Eloquent models, hooking them up with events and making them configurable.
News and Announcements

WP Offload S3 1.6 Released: Lighter And More Independent
It’s not often that removing something from a product is a cause for great cheer, but with the removal of the dependency on the Amazon Web Services plugin in the latest release of WP Offload S3, we think everybody is going to be very happy! ‎As well as a bunch of bug fixes, this release also includes improved support for sites with an identity crisis and a certain plugin that changed the way it regenerates thumbnails.

DrupalCamp London - March 2nd-4th 2018, City University of London
DrupalCamp London brings together hundreds of people from across the globe who use, develop, design, and support the Drupal platform. It’s a chance for Drupalers from all backgrounds to meet, discuss, and engage in the Drupal community and project. DrupalCamp London is the biggest camp in Europe (followed very closely by Kiev), at ~600 people over three days. Due to its size and location, we’re able to run a wide range of sessions, keynotes, BoFs, Sprints, and activities to take part in. Tickets are on sale now.

Imagine 2018 - April 23rd-25th 2018, Wynn Las Vegas
Imagine 2018 attracts the biggest innovators in eCommerce. You can network with key merchants, partners, and developers, and join industry leaders in live breakout sessions, customer panels, and keynotes. Can you afford to miss it? Tickets are on sale now.

International PHP Conference - June 4-8th 2018, Berlin
The International PHP Conference is the world’s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. Internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level. All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the webinale taking place at the same time. Tickets are on sale now.

Dutch PHP Conference - June 7-9th 2018, Amsterdam
Ibuildings is proud to organise the eleventh Dutch PHP Conference on June 8th and 9th, plus a pre-conference tutorial day on June 7. Both programs will be completely in English so the only Dutch thing about it is the location. Keywords for these days: Know-how, Technology, Best Practices, Networking, Tips & Tricks. The target audience for this conference are PHP and Mobile Web Developers of all levels, software architects, and even managers. Beginners will find many talks aimed at helping them become better developers, while more experienced developers will come away inspired to do even better and with knowledge about the latest tools and methodologies. Tickets go on sale next month.

Nomad PHP US - March 22nd 2018 20:00 CDT
Banishing Loops with Functional Programming, by David Hayes. Functional programming is one of the most mind-bending and counter-intuitive topics for most PHP developers. While almost every developer knows what a PHP function is, that’s just the first part of the power that is functional programming. By harnessing the power of higher-order functions, we can write clearer, more accessible, and maintainable code. Applicable in PHP, JavaScript, and beyond, fewer loops will make you love programming more than ever before.

Nomad PHP EU - March 22nd 2018 20:00 CET
Generators: All About the Yield, presented by Justin Yost. Generators are a relatively unexplored feature of PHP. Coming about in PHP 5.5, Generators provide for the ability to write Iterator style code without a lot of upfront work. In addition to that Generators provide for some amazing abilities to write coroutines in PHP that we previously didn’t have. Generators are at their core a tool to enable us to write code that can solve entire classes of problems that beforehand would have been exceedingly hard to do before hand. Perhaps most importantly, generators are fun to explore.


Three Devs and a Maybe Podcast - Build, Provision and Deploy in the Cloud with Thijs Feryn
In this weeks episode we are joined by Thijs Feryn to discuss his upcoming PHP UK conference talk. We start of the show highlighting what drew him to a Tech. evangelist role, bridging the gap between code/infrastructure and the ideas behind ‘Infrastructure as Code’. From here we move on to discuss system and infrastructure provisioning automation tools such Ansible and Terraform. This leads on to adding Packer into the mix, moving towards immutable infrastructure, testing these automation tools and how history has a way of repeating itself. Finally, we touch upon the philosophy behind DevOps, focusing on empathy and its core values CAMS.

That Podcast Episode 45: The One Where We Talk about PSR-15 Again
Beau and Dave discuss the current state of PHP FIG's HTTP Handler PSR.

Changelog Podcast #284: Moore's Law and High Performance Computing
Todd Gamblin, a computer scientist at Lawrence Livermore National Laboratory, joined us to talk about Moore’s Law, his work at Lawrence Livermore National Laboratory, the components of a micro-chip, and High Performance Computing.

Full Stack Radio Podcast Episode 82: Sarah Drasner - Animating the Web with CSS and JavaScript
In this episode, Adam talks to Sarah Drasner about using animations and transitions to create more intuitive user interfaces, as well as technical tips, tricks and best practices for implementing them well.

Laravel News Podcast LN55: Collisions, Stimuli, and Dynamic Rate Limiting
Jake and Michael record a show in three parts, with each spending a bit of time broadcasting solo, but as always, bringing you the latest news from the Laravel community. 

Magetalk Magento Podcast #161 - “Cocaine and Caviar”
The guys rap about #magentohatmonday as the best of the Magento Community, Imagine MC Duties fall to Phillip, "Winkling" Conversion Rates, Healthcare Startups for Magento.

PHP Ugly Podcast #95: I/O Errors
Topics include MongoDB.

Reading and Viewing

Cloudways Interview - Valery Kurilov CEO Of SE Ranking Talks About Google Updates And Evolution Of SEO
As Google is rolling out new updates  every few months, SEO’s are getting perplexed about the future of organic marketing. SE Rankings is a prominent name in the SEO industry. We talked to its CEO, Valery Kurilov to discuss the impact of google updates on search rankings, the evolution of SEO, and other similar ranking factors that influence organic marketing. Read on to know what Kurilov has to say about all these things.

Integrate Security Testing into PhpStorm
PhpStorm is one of the leading IDEs for developing PHP applications. Its support for key developer tools, such as version control systems, remote deployment, and databases makes it easy for developers to write code efficiently. With the help of our PhpStorm plugin you can seamlessly integrate our best-in-class security analysis directly into PhpStorm. This enables developers to quickly scan their project, to review found security vulnerabilities, and to apply patches at the lowest cost point without ever leaving PhpStorm. Get a trial and test it!

PHP OOP Way Kindle Edition (by Sergey Zhuk, published 6th December 2017) 
A practical guide to writing robust, maintainable, and bug resistant object-oriented PHP code, that covers advanced topics, concepts, and techniques of the object-oriented programming, starting with such basic terms as encapsulation and inheritance and ending with composition and design patterns.

Security Principles for PHP Applications: A php[architect] guide (by Eric Mann, published 18th December 2017)
Security is an ongoing process not something to add right before your app launches. In this book, you'll learn how to write secure PHP applications from first principles. Why wait until your site is attacked or your data is breached? Prevent your exposure by being aware of the ways a malicious user might hijack your web site or API.

PHP 7 Data Structures and Algorithms Complete Self-Assessment Guide Paperback – (by Gerardus Blokdyk, published 5th January 2018)
This valuable PHP 7 Data Structures and Algorithms self-assessment will make you the established PHP 7 Data Structures and Algorithms domain visionary by revealing just what you need to know to be fluent and ready for any PHP 7 Data Structures and Algorithms challenge.


PHP Developer (f/m) at Surplex GmbH, Germany
You are looking for a secure and exciting position as PHP developer that enables you to evolve your technical skills? You have a passion for PHP and want to work on the implementation of new technologies? If you have at least four years experience in project-oriented programming with PHP, you might be the right woman or man for us.

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

Interesting Projects, Tools and Libraries

RAD platform for building a business application using the Laravel framework. 

Open Source Point of Sale is a web based point of sale application written in PHP using CodeIgniter framework.

The server administration software for your needs. Developed by experienced server administrators, this panel simplifies the effort of managing your hosting platform.

Garden CLI is a PHP command line interface library meant to provide a full set of functionality with a clean and simple api.

The Exakat Engine is an automated code reviewing engine for PHP.

OpenEMR is the most popular open source electronic health records and medical practice management solution.

Ready to use back-end API, extensible API-first Content Management.

Small set of PHP scripts to practice exploiting LFI, RFI and CMD injection vulns.

Customisations for Adminer, the best database management tool written in PHP.

Aimeos PHP e-commerce framework for high performance online shops.

Prefixes all PHP namespaces in a file/directory to isolate the code bundled in PHARs.

Open software engineering platform and fun adventure game.

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 ©