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 4, 2016

Hi PHP fans, and welcome to this weeks edition.

The Drupal Association is looking for an At-Large Director. If you think you've got what it takes to represent the Drupal community on the board, nominate yourself today. Nominations are open until February 20th.

Also this week, take a look at the new generation of web profilers,, for continually testing application performance.

The Lone Star PHP conference takes place in Dallas in the first week of April, including a Training Day. Tickets are on sale now. 

Plus Chris Hartjes has posted a video of the presentation he gave at the GPUG PHP user group last week, about the state of testing and associated tools.

And finally, the Sound of Symfony podcast is back, with the guys sharing what they would like to see in upcoming versions of PHP and Symfony.

We are always on the look out for articles for the newsletter, so if you have written one or read one that you would like to share with the PHP community, please let us know at [email protected].

Katie and Ade

We love our sponsors. Why not try them?


 From our sponsors:

Find Your Top Developers See why top startups depend on Toptal to connect them with elite developers, hand-picked to match their needs. Work with top developers on an on-demand basis.

(ads by LaunchBit) 


2016 Nominations Open for Drupal Association At-Large Director
It’s a great time to be part of the Drupal Association. We’ve done some amazing work in the last few years, and we’re in a great position to work with the community to continue to improve and grow fully into our mission. As a Drupal Association At-Large Director, you’d be in the center of the action. The At-large Director position is specifically designed to ensure community representation on the Drupal Association board and we strongly encourage anyone with an interest to nominate themselves today.

Where Can You Earn the Most Money as a Software Engineer?
Traditional job searches are opaque and one-sided, particularly when it comes to salary negotiations. Candidates often don’t know the market rate for their skill set and level of experience, or how offers they receive stack up to the other opportunities that are out there. is on a mission to change all that. Read this article to learn how to find how much software engineers are making in different countries based on research conducted by

The Sprint Demo
The new year also brought a new customer for me: At the start of January I started at the Digital Solutions Center of Schiphol Airport. They have an awesome project going on, and I operate in one of the two scrum teams there. When you're starting with a new customer that has adapted Scrum (or any form of agile), it is always interesting to see how they adopted it. Interpretation and implementation of scrum, and other agile methodologies, differs greatly among different customers. I've had customers where it worked really well, and I've seen customers where Scrum was only an excuse to be able to switch priorities or scope whenever they felt like it. No, I won't mention names ;)

Tutorials and Talks

Magento Theme Development: Product Page, Part 2
In this article from the Magento Theme Development series, we'll finalise the product page from where we left it in the previous article. We'll edit the phtml files responsible for rendering the media section, related products section, etc.

Troubleshooting (Web) Application Performance Issues with Strace
What do you do when your Linux web app starts acting out? You troubleshoot it, of course! Me too. And today I would like to talk to you about one tool that works really well with all sorts of applications and application servers – ranging from apache http server running modules (mod_php, mod_perl, etc.), to applications running in fast cgi setting, or even simple single-threaded programs. The tool I’m talking about is Strace, and if you’re not familiar with it, it will be my pleasure to introduce you two.

PHP WordPress Plugin Tutorial using Object Oriented Programming Part 2: Advanced Features
The Pak PHP Framework can be used to develop WordPress plugins using PHP Object Oriented Programming. Read this article to learn how to implement advanced WordPress plugin functionality such as plugin translation, creating dashboard widgets, custom posts and taxonomies, creating a plugin settings page and implementing unit testing.

Tutorial on Using Drupal 8 Plugin Derivatives Effectively
In an earlier tutorial, we looked at the Drupal 8 plugin system and how to create our very own custom plugin type. We’ve seen that much of the functionality declared via _info hooks in Drupal 7 has been replaced by these plugins. Our use case was very basic and it allowed each instance of such functionality to be declared manually via a new plugin class and associated form.

Z-Ray Tip #4: Getting Rid of It!
Now, why would any sane PHP developer want to do that?! Well, while Z-Ray is a great friend to have when developing your apps, there are just some parties you don’t want it to show up at.

PHP Download File Script
This is my favourite PHP download script. I’ve used a different more simple method until a client wanted to be able to allow their site visitors to download a large file from a password protected directory. The PHP script works on Apache web servers for all kind of files. I have used this script for file downloads bigger than 500MB. The cache control header is used to force the download for text files and other files even if they are opened by default inside your web browser.

Automating GitHub Pages Builds with MkDocs
One of the final tasks in prepping for the Expressive 1.0 release was setting up the documentation site. We'd decided to use GitHub Pages for this, and we wanted to automate builds so that as we push to the master branch, documentation is deployed. The process turned out both simple and bewilderingly difficult. This post is intended to help others in the same situation.

Creating Interactive Charts in AngularJS
In this post I will walk you through the process of creating interactive charts in one of the most popular JavaScript frameworks – AngularJS. We will be implementing charts via FusionCharts’ JavaScript charts package. And to make our job easier, we will make use of its AngularJS charts plugin.

An in-Depth Walkthrough of Supercharging Apps with Blackfire is the new generation of web profilers, which takes the automatic instrumentation approach, but without imposing a performance impact on our application. What makes Blackfire special is that it helps us continuously test our application’s performance without adding a single line of code.

Fixing Spaghetti: How to Work With Legacy Code
Legacy code is software that generates value for a business but is difficult for developers to change. The terms "code rot" and "spaghetti code" refer to legacy code that is tangled up in poor quality. Over time, as "get it done now" is continually favoured over "get it done right", the code base decays by avoiding industry best practices, making it tightly coupled, difficult to test and increasingly prone to defects.

Feature Flags in Laravel
We are working on using FeatureFlags, or Toggles, in our applications. For one we are aiming to do all our work on mainline branch at all times, so this would be a key coding discipline to use FeatureFlags, so we can hide a feature in progress knowing it will not interfere with the application. For example, if a hotfix or another feature is ready to go to production, we can push that with no worries of the in-progress feature.

Data Encoding: A Guide to UTF-8 for PHP and MySQL
As a MySQL or PHP developer, once you step beyond the comfortable confines of English-only character sets, you quickly find yourself entangled in the wonderfully wacky world of UTF-8.

Developing CakePHP 3+ Plugins, it’s Fun!
The days of CakePHP 2 plugins, and how difficult it was to actually develop plugins, are over. Back in the day there was even an app required to test a plugin. Since you didn’t want to have a boilerplate app for each plugin, you usually worked in your actual app. So you had cross contamination from that messing up your tests and stuff. Really annoying. While most of the concrete examples are about plugin development for CakePHP 3, the main ideas apply to all library code you write. And if you are a developer for other frameworks, the same principles apply, only the concrete implementation might differ. So you could skip the "real story" part. Well, but now to the fun part I promised in the title.

The Beginners Guide to WooCommerce: Customer Reports
Customers are the backbone for any business, especially when you run an online store. As in this case the contact with your customers is a virtual one so, it's critical to be able to monitor, track and reward your customers. To do that it is important for online store owners to keep a strict tab on their customers' activities who visit their store and purchase items. WooCommerce provides online store owners with pretty amazing reports options in ref to their customers, which is the topic of today's article, where I plan to explain the section of Customers reports. So, let's get started.
News and Announcements

WordPress 4.4.2 Security and Maintenance Release
WordPress 4.4.2 is now available. This is a security release for all previous versions and we strongly encourage you to update your sites immediately.

Lone Star PHP - April 7-9th 2016, Dallas
Welcome back to Lone Star PHP for another great year! We're in our sixth year and we're making things better all the time. This year's event will provide all of the great PHP speakers and content you've come to expect from Lone Star PHP. After great success, we are bringing back the Training Day which will provide a more hands-on experience for all that attend. Tickets are on sale now.

php[tek] - May 23-27th 2016, St Louis
Once again the team behind php[architect] magazine will be hosting their annual php[tek] conference! For this 11th edition of php[tek] we are excited to announce that we are moving to St. Louis!  The new larger venue will allow us to continue to grow this conference, allowing more people from the PHP community to come together for a week of learning and camaraderie! Early Bird tickets are on sale now.

PHP UnConference Europe - May 28-29th 2016, Majorca
In its 5th year, tickets are already available for the 2016 PHP UnConference. Anyone who has attended a conference knows that the most interesting pieces of information and experiences do not come from the presentations themselves, but from the time spent speaking with other attendees between the presentations. The idea of an UnConference is for the attendees to decide on the topics they are most interested in, and the speakers they would like to present them, decided on the day.

International PHP Conference - May 29th-June 2nd 2016, Berlin
The International PHP Conference is the world’s first PHP conference and has been going for 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. Today is the last day to register for Early Bird tickets and the Workshop Day for free.


Sound of Symfony Podcast: Episode 11 - Looking Forward to Symfony 4
Having recovered from SymfonyCon and had happy holidays, Sound of Symfony is back on the ether(net). This week we talk about what we'd like to see in upcoming versions of PHP and Symfony. You might be wondering what happened to Episode 10. Do not worry. That one turned out to be slightly tricky to edit. Instead of making you wait though, we went ahead and released this now for your audible enjoyment. Episode 10 will come at some later date.

Voices of the ElePHPant - Interview with Frederic Dewinne and Oswald de Riemaecker
This week, Cal Evans interviews the founders of continuousphp, a DevOps platform for developers.

Three Devs and a Maybe Podcast - Designing APIs with Camille Baldock
On this weeks show we are lucky to be joined by Camille Baldock to discuss all things API related. We start off the podcast with a discussion on how she got into programming, and her first experiences with API Development. We then move on to chat about SOAP, REST, HATEOAS and the Richardson Maturity Model. This leads us on to HyperMedia APIs, highlighting the different format types (JSON-LD, HAL, Collection+JSON, SIREN…) currently available, common misconceptions and API design tooling (Swagger, API Blueprint, RAML…). Finally, we wrap up the show with a brief chat about Micro-services.

Full Stack Radio Podcast Episode 34: Matt Machuga - Dealing with Dependencies in Active Record Models
In this episode, Matt Machuga of Think Through Math returns to talk with Adam about design options, when you find yourself wanting access to a collaborator in an Active Record or Eloquent model. They discuss the pros and cons of four specific designs, and finish off with their personal recommendations.

Acquia Podcast - Acquia U: "Making the world a better place, one Drupalist at a time." - with Amy Parker
Part 2 of 2 - Amy Parker, the Director of Acquia University, and I sat down in Acquia's downtown Boston headquarters to talk about Acquia's technology boot camp, affectionately known as "Acquia U". In this podcast we talk about the diversity of candidate backgrounds, the candidate selection process, and go into what makes a successful Acquia "Ubie." We also talk about measuring the success of a program like this in human terms.

MageTalk Magento Podcast #77 - Nexus vs. Nexcess
The guys bro down about hosting providers, and Kalen's new sudden interest in doing direct sales.

Laravel News Podcast - LN08: Database Backups
This episode features special guest Freek Van der Herten talking about backups, Test Driven Laravel, WordPress & Laravel, and PDF generation.

Reading and Viewing

Yesterday I gave a short talk at GPUG about a topic I've dubbed "metatesting". Borrowing the phrase from a children's card game, I wanted to talk about the state of testing and associated tools. While giving the talk I noticed I was a little rusty in my delivery. I've only spoken twice in the past 12 months but I think I have the makings of another solid talk based on what I did here. Enjoy the video!

Cloudways Interview - Interview With The WordPress Community Champion, A.J. Zane
In this interview, AJ shares his experiences about his life, choosing WordPress, interest in gaming and the personalities of WordPress that inspired him the most. Enjoy the read!

Michael Heap - Left His Laptop In The Plane, PHPBenelux, Datasift & Frequent Flyer miles
Michael Heap is a developer who works at Datasift. On Thursday January 28th 2016 Michael flew from London Heathrow to Brussels to attend the PHPBenelux Conference 2016. Unfortunately he forgot his laptop on the plane. While driving Michael to the airport, I decided to ask him a couple of questions and that resulted in a nice conversation.

How to Pick the Right Fonts, Don’t Be THAT Guy on Social, Bye Java and More
In this episode of the John Morris Show, how to pick the right fonts for your web design, bye-bye Java, 7 future web design trends, don’t be THAT guy on social when chasing clients, answering your questions and more.

Expression Engine: Questions and Answers (by George A Duckett, published 21st December 2015)
If you have a question about Expression Engine this is the book with the answers. Expression Engine: Questions and Answers takes some of the best questions and answers asked on the website. You can use this book to look up commonly asked questions, browse questions on a particular topic, compare answers to common topics, check out the original source and much more. 

Zend Framework Question Bank (by Mohit Kukreja, published 23rd December 2015)
Zend Framework (ZF) is an open source, object-oriented web application framework implemented in PHP 5 and licensed under the New BSD License.


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

Laravel friendly wrapper for the FileMaker API for PHP.

The C based gRPC (C++, Node.js, Python, Ruby, Objective-C, PHP, C#)

A number of PHP CLI based classes and helpers.

Linguist is a PHP library for parsing strings. It can extract and manipulate prefixed words in content ideal for working with @mentions, #topics and even custom action tags!

Lightweight Asterisk configuration utility written in PHP.

Non-standard PHP Library (NSPL) is a collection of modules that are meant to solve common day to day routine problems.

A minimal PHP MVC framework.

Fancy database library for PHP.

A Toolkit to quickly build powerful mobile-friendly CRUD (create/read/update/delete) interfaces for PHP, Laravel, and Codeigniter apps.

Use this library to report background jobs or long running scripts to New Relic APM.

PHP web app for planning poker. It includes a master view for the ScrumMaster and a simple responsive card view for the team. 

The hassle-free way to integrate analytics into any PHP application.

WordPress Plugin to keep a snippet library of text, HTML or PHP code to be used in posts.

A simple all-in-one PHP user Authentication library. 

Minecraft Beta 1.7.3 Server implemented in PHP/HHVM.

Library to create PHP classes following the State pattern in PHP. 
Please help us by clicking to our sponsor:

 From our sponsors:
Find Your Top Developers See why top startups depend on Toptal to connect them with elite developers, hand-picked to match their needs. Work with top developers on an on-demand basis.

(ads by LaunchBit) 

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 

Protect your PHP code with SourceGuardian 10. Free trial.


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 ©