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

Hello, and welcome to this weeks edition of PHP Weekly :)

At the end of the year, the SitePoint team published a survey asking for opinions on the PHP channel. Here we have the latest responses.

Also this week we have the next installment in the Magento Theme Development series, looking at what to do with the Product page on your eCommerce website.

ConFoo is fast approaching, with 150 presentations by some of your favourite speakers, spanning three days at the end of February. The last few tickets are still on sale.

Plus we have a tutorial on how to quickly build framework-based PHP applications, using the PHP IDE Codelobster.

And finally, on the Drupal site this week, the challenge to PHP for 2016 is to contribute. Not just to your familiar territory, but to something new. Contribute, somehow, to three new projects in 2016. And celebrate it. The hashtag is #PHPGivesBack2016.

Have a great weekend people,

Katie and Ade

We love our sponsors. Why not try them?


 From our sponsors:

Meet JIRA Software JIRA is now redesigned with your software team in mind. Say hello to JIRA Software.

(ads by LaunchBit) 


Giving Back in 2016
Three years ago, I ended 2012 with a call to the Drupal community to Get Off the Island. At the end of 2014, I wrote a follow-up for Acquia's Future of PHP series. In that, I called on people to Build Bridges between communities through not just visiting them, but building with them. What was the next 2016 challenge to help build a more robust PHP community? The challenge I'll give you this year, PHP, is to contribute. Not just to your familiar territory, but to something new. Contribute, somehow, to three new projects in 2016. And celebrate it. The hashtag is #PHPGivesBack2016.

The PHP Channel’s Survey Results and 2016 Plans
On the last day of 2015, the SitePoint team published a survey asking you, the readers, for an opinion about the PHP channel. It was a pretty open survey with mostly freeform answers allowed, so you could tell them literally anything. All in all, they have collected 78 responses so far (the survey will remain open indefinitely, in case someone wants to give more feedback).

The Vital Guide to PHP Interviewing
While many can legitimately claim to "know" PHP, those who are true experts in the language are capable of producing software that is much more scalable, functional, robust, and maintainable. This guide offers a sampling of effective questions to help evaluate the breadth and depth of a candidates mastery of PHP.

You Do Not Have A Right To Contribute
Having listened to the latest dev/hell podcast this week, specifically their discussion on the Code of Conduct, Paul Jones comments on one particular point raised.

Tutorials and Talks

Crash Course of Wunderlist’s API with Guzzle
Wunderlist is one of the most popular task management, and list keeping, applications out there. It allows you to create lists to which you can then add tasks that are easily checkable and have all sorts of functionality built into them. It has native apps for all the major OS’s and all your data syncs effectively over the cloud. It’s very nice to work with if you are trying to keep yourself organised and you can get a lot done, even with the free version.

The Auth Scaffold in Laravel 5.2
If you're like me, many of the applications you build in Laravel have a similar Saas-type framework: user signup, user login, password reset, public sales page, logged-in dashboard, logout route, and a base Bootstrap style for when you're just getting started. Laravel used to have a scaffold for this out-of-the-box. It disappeared recently, to my great chagrin, but it's now back as an Artisan command: make:auth. What does it provide? Let's dig in.

Codelobster PHP Tutorial for Rapid Building of Framework Based Applications
Codelobster is a PHP IDE with special support for building applications based on well known frameworks and CMS systems, such as Symfony, Laravel, CakePHP, CodeIgniter, YII, Drupal, Joomla, Wordpress, etc... Read this tutorial to learn how to quickly build framework-based PHP applications with Codelobster IDE.

The Beginners Guide to WooCommerce: Order Reports - Part 4
So far in this series, out of four, I have discussed the first three sub-sections which an online store owner finds in the Orders reports. The fourth and last option deals with the reports which are categorised on the basis of Coupons by date. 

True Dependency Injection with Symfony Components
Symfony2, a high performance PHP framework, uses Dependency Injection Container pattern where components provide a dependency injection interface for the DI-container. This allows each component to not care about other dependencies. The ‘Kernel’ class initialises the DI-container and injects it into different components. But this means DI-container can be used as a Service Locator.

Handling Composer "lock file out of date" Warning
Composer is dependency management for PHP, and it consists of two main files - composer.json and composer.lock. Crucially, the composer.lock includes a hash of the current composer.json when it updates, so you can always tell if you've added a requirement to the composer.json file and forgotten to install it. In that case you'll see an error message, and you now have three options: upgrade everything, figure it out, or do nothing.

Using the WideImage Library in PHP
WideImage is an object-oriented library for image manipulation that provides a simple way of loading, manipulating and saving images in the most common image formats. It requires PHP 5.2+ with GD2 extension. WideImage supports all formats that are natively supported by the GD extension on the server (this currently includes GIF, PNG, JPG, GD, GD2, WBMP, XBM, XPM). It also supports BMP (read/write) and TGA (read only).

A Functional Guide to Cat Herding with PHP Generators
When working with arrays in PHP, three of the most useful functions available to us are array_map(), array_filter() and array_reduce(), which allow us to walk an array and manipulate the value of array elements, select a subset of values from an array, or reduce an array to a single value; all using a callback function to determine exactly what logic should be applied. The use of the callback makes them extremely flexible, and these functions can be particularly powerful, especially when combined (or chained) together.

PHP Tutorial on Web Page Screenshot Capture
When you need to be able to show pictures of Web site pages, the solution is to browse the page and capture a screenshot. However, when you want to do that in an automated way from PHP, you need to somehow emulate the behaviour of a browser and screen capture utility. That is not something easy to achieve in an environment on which you can only run PHP. An alternative solution is to resort to Web services that can capture page screenshots for you.

Programming Guidelines - Part 1: Reducing Complexity
PHP is pretty much a freestyle programming language. It's dynamic and quite forgiving towards the programmer. As a PHP developer you therefore need a lot of discipline to get your code right. Over the years I've read many programming books and discussed code style with many fellow developers. I can't remember which rules come from which book or person, but this article (and the following ones) reflects what I see as some of the most helpful rules for delivering better code: code that is future-proof, because it can be read and understood quite well. 

Magento Theme Development: Product Page, Part 1
Now that we have completed the home page and the category page, in this tutorial we'll start editing the third most important page of the eCommerce website: the product page. Let's first open up the product page, and see how it looks now and how we want it to look.

Calling Silex Backend From Command Line. Creating SAAS Command Line Tools
Sometimes we need to create command line tools. We can build those tools using different technologies. In Symfony world there’s Symfony Console. I feel very comfortable using it, but if we want to distribute our tool we will need to face with one “problem”. The user will need to have PHP installed. It sounds trivial but it isn’t installed in every computer. We can use nodeJs to build our tool. Nowadays nodeJs is a de-facto standard but we still have the problem. Another “problem” is how to distribute the new version of our tool. Problems everywhere.
News and Announcements

Support Everything WordPress - Contributor Weekend: 20 Questions Challenge, Jan 30th-31st 2016
Welcome to the 20 Questions Challenge, our support teams first global contributor weekend! The goal of this weekend challenge is to make it easy for anyone to become a volunteer contributor to the support team, which includes the support forums at and the #wordpress IRC channel on For the sake of simplicity, the 20 Questions Challenge this weekend will be specifically in the support forums, not in IRC (though we welcome help there, too!). If you are able to provide the correct solution/suggestion for 20 questions over the course of the weekend, that would be amazing, but there is no minimum commitment - even answering a question or two to get your feet wet is a helpful contribution! We will tally the results of this weekend contributor drive both individually and per local meetup group, so getting together with some other folks to work on support questions together is a great way to participate and have fun.

ConFoo.CA - February 24-26th 2016, Montreal
ConFoo is a multi-technology conference for web developers. With 150 presentations by popular international speakers, focused on pragmatic solutions for web developers, you'll enjoy great content and amazing experiences. Tickets are on sale now.

MidWest PHP  - March 4-5th 2016, Minneapolis
Midwest PHP returns in March next year, to Minneapolis, at a brand new venue. In its 4th year, the conference brings all the things you have come to expect from Midwest PHP, including great speakers and fantastic talks for all skill levels. Early Bird tickets are on sale now.

SymfonyLive - April 27-29th 2016, Cologne
We are happy to announce SymfonyLive Cologne 2016. This time, the conference will kick off with two workshop days, with the main, single track conference on Friday 29th of April. Of course, there is going to be a hack day as well on Saturday at the Cologne SensioLabs office. Early Bird tickets are on sale now.


Voices of the ElePHPant - Interview with Margaret Staples
This week Cal Evans chats with Margaret Staples, member of the Seattle PHP community.

dev/hell Podcast Episode 70 - Anti-Canuckite Leanings
During the discussions for topics for this episode, Chris went to the bathroom for some quiet time. When he came back Ed had asked dedicated grumpy-Canadian hater Amanda Folson to join this episode to talk a bit about the life of a developer evangelist, Greg LeMonde, the Battle for PHP CoC, how Composer saved PHP, and CodeMash. Along the way Amanda and Ed ganged up on Chris showing their hatred for their peace-loving neighbours north of the 49th parallel and during the aftershow drove him away with talk about audio recording equipment. There is also some discussion on the proposed Code of Conduct.

Three Devs and a Maybe Podcast - In The Zone
On this weeks show we start off with Micks recent dive into React, discussing alternatives in the process. We then move on to chat about large database design, seeding databases, clean installing a Mac and external SSDs. Following this, Edd brings up his exploration into Macros in Clojure, Immutable data-structures and interesting behaviour with ‘this’ in JavaScript. Finally, we wrap up the show by bringing up the topic of being in ‘The Zone’ when programming, what we feel about the concept, and the pros n cons of such a mind-set.

Acquia Podcast - Acquia U: "Jump in and own it. Kickstart your career." - meet Amy Parker
Amy Parker, the Director of Acquia University - aka Acquia U - and I sat down in Acquia's downtown Boston headquarters to talk about Acquia's technology boot camp. The course covers much more than Drupal; the curriculum is designed to produce people able to work in tech companies. Besides a whole lot of Drupal and related technologies, it includes agile methodologies, project management tools, troubleshooting tickets, presentation skills and more. Listen to our whole conversation to learn more.

MageTalk Magento Podcast #76 - A Level We Can All Understand
The guys catch up on a lot of Magento news at the start of 2016.

Reading and Viewing

PHP Web Services 2nd Edition (by Lorna Jane Mitchell, published 20th January 2016)
Whether you’re sharing data between two internal systems or building an API so that users can access their data, this practical guide has everything you need to build APIs with PHP. Author Lorna Jane Mitchell provides lots of hands-on code samples, real-world examples and advice, based on her extensive experience to guide you through the process - from the underlying theory to methods for making your service robust.

Cloudways Interview - Rafael Dohms Shares His Plethora Of Knowledge About PHP And Its User Groups
Rafael Dohms is a very active person in the PHP Community. He has more than 15 years of experience in PHP web development. This Brazilian guy moved to the Netherlands to explore new horizons in development and user groups, as he believes in the power of user groups. He has created 3 PHP user groups; AmsterdamPHP, PHPDF and PHPSP.

The Sad State of Web Development and More
In this episode of the John Morris Show, how to deal with haters, the sad state of web development, how to meet new people and more.

Varnish 4.1 & HAProxy: Get the Real IP by Leveraging PROXY Protocol Support
Varnish has become an industry standard when it comes to caching. Varnish is a reverse caching proxy that you put in front of your webserver and that speeds up your website by caching your pages. The PROXY protocol was introduced in Varnish version 4.1 to simplify the use of multiple layers of proxying.


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

Spress is a static site generator built with Symfony components.

A simple & powerful router for PHP 5.4+.

Gravel is a PHP library for working with Gravatar avatars.

Presentation Repo. Displaying how Iterators and Generators work in PHP.

A virtual machine designed for executing programs written in Hack and PHP.

CSS & JavaScript minifier, in PHP.

Scrapbook is a caching environment for PHP, with adapters for e.g. Memcached, Redis, Couchbase, APC, SQL and additional capabilities (e.g. transactions, stampede protection) built on top.

Selenia is a web framework for the rapid development of web applications and websites using the PHP language.

A pure PHP library for reading and writing spreadsheet files.

A simple OO wrapper around PHP's cURL implementation.

ElkArte is a modern, free, powerful community building forum software. It is completely free and licensed with an open source BSD 3-clause license.

PHPCI is a free and open source continuous integration tool specifically designed for PHP.

PHPWord is a library written in pure PHP that provides a set of classes to write to and read from different document file formats. 

Unirest is a set of lightweight HTTP libraries available in multiple languages.

A PHP swagger annotation and parsing library.

PHPloy is an incremental Git FTP and SFTP deployment tool.

The C based grpc (C++, Node.js, Python, Ruby, Objective-C, PHP, C#).
Please help us by clicking to our sponsor:

 From our sponsors:
Meet JIRA Software JIRA is now redesigned with your software team in mind. Say hello to JIRA Software.

(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 ©