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!

June 1, 2017

Welcome to the latest edition of your favourite PHP newsletter.

The release candidate for WordPress 4.8 is now available to be tested, in preparation for next weeks release. 

Also, in the Cloudways interview this week, Drupal Director of Engineering Tim Lehnen talks about the association and the community.

Online conference Day Camp 4 Developers takes place tomorrow, focusing on application security in the PHP world. Five experts, including Sammy Powers and Eric Mann, will teach you about Cryptography and Security. There's several levels of ticket purchasing, including a video of the event if you're not free to watch it live.

Plus Matt Stauffer celebrates recording the 100th episode of the Five Minute Geek Show podcast, talking about community.

And finally, if you're fed up of gaining Twitter followers, only to see them disappear a few days later, we've an article on how to build an app to identify this "follower farming" behaviour.

Have a great weekend,

Katie and Ade

Please help us by clicking to our sponsor:

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


Testing Keeps Me From Getting Things Done
We frequently get asked questions about unit testing, and this article is a prime example of that. Each of these questions is important, sensible, and understandable. In fact, we believe that they are different perspectives of a single, unasked core question, so we have publicly printed our responses here.

HHVM and MongoDB
At the start of 2015 we began work on an HHVM driver for MongoDB, as part of our project to renew our PHP driver. Back then, HHVM was in its ascendancy and outperforming PHP 5.6 two to one. With such a huge performance difference it was reasonable to assume that many users would be switching over. With PHP 7 released, however, we saw very little use of the HHVM driver for MongoDB.

What’s new on - April 2017
At the end of April we joined the community at DrupalCon Baltimore. We met with many of you there, gave our update at the public board meeting, and hosted a panel detailing the last 6 months worth of changes on If you weren't able to join us for this con, we hope to see you in Vienna!

Refactoring with the Advanced Boy Scout Rule
When we join teams to coach them with refactoring their legacy code base, many of them are overwhelmed by the sheer mass of code. That typically results in the request for "some refactoring sprints" or even "a complete rewrite". Both are obviously not a solution from the business perspective - feature development and bug fixing needs to go on and the refactoring should not eat up large portions of time. But where and how should the team start? What we call the "Advanced Boy Scout Rule" has helped many teams to overcome this staleness and reach fast results while continuing to deliver business value.

Clock Needs An Interface
Almost every application needs to work with time: if not for some greater purpose like expiring access credentials, entities usually store information about when they were created or generally when something happened. Telling time is indeed a crucial responsibility, and being able to rely on the mechanism across the whole codebase is really important. But it can get problematic.

Tutorials and Talks

17 WordPress Functions.php File Hacks
In this article, we’ll tell you everything you need to know about the WordPress functions file and how to use it to your advantage. We’ll discuss what it does, why you should use it, and when not to. Plus, we’ll introduce you to 17 useful file hacks to extend your site’s functionality without having to install a plugin.

Generate a JSON Feed with Laravel
JSON Feed is a new standard to formalise a JSON based RSS feed that aims to simplify creating feeds by doing away with the XML standard. Implementing a feed for your site is simple, and the spec is surprisingly clear.

Building Your Startup: Approaching Major Feature Enhancements
In today's tutorial, I'm going to talk about ways to think about making bigger changes to an existing codebase. Specifically, I'll walk you through the impacts of adding the ability for meeting participants to collaboratively brainstorm and decide on activities, i.e. what we should do when we meet up.

How to Build a Twitter Follower-Farmer Detection App with RestDB
Follower farming is a known social media hack taking advantage of people who “#followback” as soon as someone follows them. The big brands, celebs, and wannabe celebs take advantage of this, as it keeps their followers count high but following count low, in turn making them look popular. In this post, we’ll build an app which lets you log in via Twitter, grabs your followers, and compares the last fetched follower list with a refreshed list in order to identify the new unfollowers and calculate the duration of their follow, potentially auto-identifying the farmers.

TypeScript With Laravel Mix
In a recent Spatie project we decided to give TypeScript a shot for the business critical part of a new application. TypeScript provides static analysis to reduce the chance of introducing bugs, to have self-documenting code, and to improve our tooling (autocompletion!)

The Idempotent Command
The great thing about the server architectures we have these days is that everything is scalable (if you set it up correctly). The hard thing about the server architectures we have these days is that everything is scalable (if you set it up correctly). Yeah, I know. One of the things you may run into these days (and that I had to solve this week) is that these days we provision all servers similarly (or according to their role). This may also mean that you provision several of your servers to run the same cronjobs at the same time. However, some tasks may not be run multiple times, and especially not at the same time. In a symfony project I'm working on, I was tasked with making sure some of the cronjobs would only be run once, even if started on several servers at the same time.

Fixing the trusted_proxies Configuration for Symfony 3.3
If you upgrade an existing Symfony application to the new 3.3.0 version, you may see this error (depending on your application configuration): The "framework.trusted_proxies" configuration key has been removed in Symfony 3.3. Find the solution here.

How to Integrate Facebook Login with CakePHP 3
Previously, we have learned how to integrate Facebook login using a plugin called Facebook Login. A lot of things have changed since then, include Facebook SDK and the maintenance of Facebook Login plugin. It has become obviously that we need a new way to integrate Facebook login with CakePHP application. In this tutorial, we will show you how to integrate Facebook login with CakePHP 3 application using another CakePHP plugin.

Building a Command Line Daemon in PHP to Emulate AWS SQSD
Sometimes when you’re building a project there are parts of the architecture that exist on production that don’t exist on your development machine. Those missing parts (like proprietary software that’s specific to your hosting provider) can sometimes mean unwelcome surprises when you deploy to production. Recently as part of my work on Mergebot, I decided to address this. In this article, I’m going to cover some of the aspects of creating a command line app in PHP and explain how I implemented them for my replica SQSD CLI.

Slim's Route Cache File
When you have a lot of routes, that have parameters, consider using the router's cache file to speed up performance. To do this, you set the routerCacheFile setting to a valid file name. The next time the app is run, then the file is created which contains an associative array with data that means that the router doesn't need to recompile the regular expressions that it uses.

Programming With Yii: Generating Documentation
Welcome! Recently, I wrote about building REST APIs for your Yii application and expanded custom APIs for our startup series application, Meeting Planner. In todays tutorial, I'll introduce you to Yii's apidoc extension, which automatically generates browsable documentation for your code. I'm going to use it to generate API documentation for Meeting Planner.

How to Customise "not found" and "method not allowed" Response Prototypes in Zend Expressive 2
Sometimes the nature of an application requires you to change the default framework's way to structure error responses (like 404 and 405). In this article I'm going to explain how to customize those responses when working with Zend Expressive 2.

Web App Performance Testing with Siege – Plan, Test, Learn
Building a simple web application today isn’t that hard. The web development community is friendly, and there are lots of discussions on Stack Overflow or similar platforms, and various sites with lessons and tutorials. In this article, designed to speed this process up, I will cover the basic concepts of testing the app (regression, load, and stress testing) with Siege and some tips and tricks I like to use when I’m testing my own web apps.

Zttp is a Wrapper Around Guzzle for Simplifying Common Use Cases
Zttp is a new PHP package by Adam Wathan that is a Guzzle wrapper designed to bring an expressive syntax and simplify common use cases. Here is an example of a Post request with a custom header.
News and Announcements

WordPress 4.8 Release Candidate
The release candidate for WordPress 4.8 is now available. RC means we think we’re done, but with millions of users and thousands of plugins and themes, it’s possible we’ve missed something. We hope to ship WordPress 4.8 on Thursday, June 8, but we need your help to get there. If you haven’t tested 4.8 yet, now is the time!

Day Camp 4 Developers - 9am CDT June 2nd 2017 
Application security is on everybodys mind these days. Every day we hear of another site hacked or another data breach. Does your team do everything it can to keep your site secure and your data safe? Join us for this weeks Day Camp 4 Developers as five experts teach you and your team about Cryptography and Security. Invest a day in your career. Tickets are on sale now.

Dutch PHP Conference  - 29-30th June-1st July 2017, Amsterdam
Ibuildings is proud to organise the eleventh Dutch PHP Conference on June 30th and July 1st, plus a pre-conference tutorial day on June 29th. 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. Tickets are on sale now.

Madison PHP Conference - September 22nd-23rd 2017, Madison
Madison PHP Conference in Madison, Wisconsin focuses on PHP and related web technologies. This event is organised by Madison PHP and is designed to offer something to attendees at all skill levels. It will be two days of networking, learning, sharing, and great fun! Tickets are on sale now.

Drupal Con - 26-29th September 2017, Vienna
DrupalCon is an international event that brings together the people who use, develop, design and support the Drupal Platform. Tickets have yet to be released, but the Call for Papers is open now.

ZendCon - October 23rd-26th 2017, Las Vegas
Now in its 13th year, ZendCon is the "must attend" event and the largest gathering of the PHP and open source communities. ZendCon brings together industry thought leaders, recognised PHP experts, enterprise decision makers, IT managers, dev and ops teams, and independent developers for four days of professional and business development. ZendCon connects the vast open source ecosystem and provides unique opportunities to engage with prominent speakers, community leaders, and vendors. You'll learn about the latest innovations and network with peers to get educated, advance your coding practices, and solve business challenges. Tickets are on sale now.


Lately in PHP Podcast Episode 83 - PHP 7.2 Release Date Time Table
Now that PHP 7.2 release managers were elected, the time table for each alpha, beta, release candidate and general availability dates were announced. This was one of the main topics discussed by Manuel Lemos and Arturs Sosins in Episode 83 of the Lately in PHP podcast.

Full Stack Radio Podcast Episode 65: New PushSilver Pricing and Co-Founding KiteTail
In this episode, David shares the details behind the pricing changes he's decided on for PushSilver and talks about some of the new features and marketing strategies he's working on for the upcoming launch. Adam shares the details behind his decision to bring on a co-founder for KiteTail, talks the collaboration process when working on an app with somebody else, and give an update on where he's at with getting KiteTail integrated into the Test-Driven Laravel course app.

MageTalk Magento Podcast #130 – “PJ Diddles, Esquire”
No lie - we built this episode in less than 10 days.

North Meets South Web Podcast Episode 28 - Vue Components, Chainable Jobs, and Life After Thirty
Jake and Michael talk about how simple Vue makes life, chaining jobs in the upcoming Laravel 5.5, and Michael's upcoming 30th birthday.

dev/hell Podcast Episode 91: Check the Police Blotter in Mountain View
Chris and Ed do an extremely rare daytime recording of the show on the American Memorial Day holiday. But why is a Canadian not working on an American Holiday? You’ll have to tune in to find out why along with some thoughts on mentoring and why the current crop of browser-centric testing tools are completely shit. Thanks to Ben Ramsey for his poetry choice and Chance Garcia for allowing us to bring another health issue to people’s attention.

Changelog Podcast #251: JAMstack, Netlify CMS, and 10x-ing Smashing Magazine
Matt Biilman and Chris Bach joined the show to talk about JAMstack, Netlify CMS, how open source drives standards, and 10x-ing the speed of Smashing Magazine.

The Five-Minute Geek Show Podcast: Episode 100 - Overlapping Communities
Hi, I'm your host Matt Stauffer and this is Episode 100. One, zero, zero. We've made it!

PHP Roundtable Podcast Episode 63: A php[tek] 2017 Special
We have a mashup recording with PHPUgly and PHP Town Hall during the community night at php[tek] 2017. We chat about OSMI, UUID's, git, product development, getting involved in the PHP community and funky socks.

North Meets South Web Podcast Episode 29: Vue Components, Chainable Jobs, and Life After Thirty
Jake and Michael talk about how simple Vue makes life, chaining jobs in the upcoming Laravel 5.5, and Michael's upcoming 30th birthday.

Reading and Viewing

Cloudways Interview - Tim Lehnen Talks About Drupal Association And Community
We are happy to host a very important person in the Drupal sphere here today, Tim Lehnen. Tim is the Director of Engineering at the Drupal Association. He’s been a member of for over 11 years.

Contact Us Form PHP / HTML / CSS : Full Coding Available Kindle Edition (published 10th April 2017, by Jiger Chawda)
As we all know the important page in the website is contact us page from where people can contact us.. In this book we have provided full Code for your contact form...You have to just copy and paste the code in your website and it will start working...Please look at the important note inside the book to know more about the Page save setting and much more...

Safety of Web Applications: Risks, Encryption and Handling Vulnerabilities with PHP, Kindle Edition (published 11th April 2017, by Eric Quinton)
Explore many areas that can help computer science students and developers integrate security into their applications. The Internet is not secure, but it's very friendly as a tool for storing and manipulating data. Customer confidence in Internet software is based on it's ability to prevent damage and attacks, but secure software is complicated, depending on several factors, including good risk estimation, good code architecture, cyphering, web server configuration, coding to prevent the most common attacks, and identification and rights allocation.

October CMS Up and Running: The Complete Guide To Starting An October CMS Site Quickly Kindle Edition (published 17th April 2017, by Leader Internet and Patrick Sherry)
This October CMS book narrates the building of, which covers everything you need to know to become an October CMS expert. Over the course of five short and digestible chapters you’ll learn the basics of October CMS and develop that into a complete understanding of the October internals. At the end you will know what you are doing and why it’s being done that way.


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

Provides a simple-to-use object oriented interface for interacting with torrent clients.

Increase your traffic, view your stats, speed up your site, and protect yourself from hackers with Jetpack. 

A free and open-source wiki software package written in PHP.

An open source CMS built by people from around the world. 

A package to protect your work in progress from prying eyes.

Lightweight Open Source webmail written in PHP and JavaScript.

Bull-powered BitTorrent tracker engine, written in PHP.

Internet Multi Server Control Panel is a software (OSS) easing shared hosting environments management on Linux servers.

A tool for adding a prefix to all PHP namespaces in a given file or directory.

A Parser for CSS Files written in PHP. Allows extraction of CSS files into a data structure, manipulation of said structure and output as (optimised) CSS.

The Universal Device Detection library will parse any User Agent and detect the browser, operating system, device used (desktop, tablet, mobile, tv, cars, console, etc.), brand and model. 

A number of useful filters for Twig.

Please help us by clicking to our sponsor:

encrypt php scriptsProtect 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 ©