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!

November 12, 2015

Welcome One! Welcome All! 

With the imminent arrival of PHP 7, we have an article advising on how to prepare, and how to shed some of our bad habits.

The Beginners Guide to WooCommerce series continues, taking a look at one of the best ways you can reward your customers - Coupons.

Also this week, the second edition of the Symfony Business Awards has been announced. The winners of each category will be selected according to the project ratings on the Symfony Showcase, and will be announced at an awards ceremony during SymfonyCon Paris next month.

Plus, in this weeks Free The Geek podcast session, Matthew Setter explores a range of topics, predominately preconceptions and the consequences of false ones.

And finally, the php[world] conference in Washington DC is just days away. The speakers are booked, the schedule has been set and the last few tickets are on sale now. 

If you are interested in sponsoring your favourite PHP newsletter, we have some openings at the end of the month so drop me a line at [email protected] for more information.

Have a great weekend!

Katie and Ade

We love our sponsors. Why not try them?


 From our sponsors:

The Power of Three 97% of developers will fail you. We are the other 3%. Get access to power.

(ads by LaunchBit) 


10 Things Not To Do In PHP 7
With PHP 7 coming out this month, it’s time to prepare and shed some of our bad habits.

How Much Does a Web Designer Charge For His Services?
Coming across this question on Quora, and finding answers fairly vague, John Morris has some specific steps to figure out what you should charge.

SQL Schema Naming Conventions
A couple of months ago Paul Jones asked on Twitter for SQL schema naming conventions from DBA professionals. Although he only got back a hand full of responses, here he presents them anonymously.

Why I Speak
On the GarfieldTech blog this week, Larry talks about how presenting recently at the PNW PHP in Seattle led to a meeting with a woman looking for help and inspiration from him.

Wonderful CakePHP Guidelines for Newcomers and Experts
CakePHP is a rapidly growing and leading open source framework among web developers, owing to its robust capabilities. This framework exclusively focuses on the architectural base of websites, practicing the concept of Model-View-Controller (MVC) that ensures extensible architecture to develop simple coding and deploy applications. Here is a list of ten amazing tutorials for CakePHP.

ZendCon 2015 by Joshua Sampia
Joshua shares his experiences of last months conference, the good and the not so good.

The Wait is Finally Over: The Symfony ElePHPants Have Arrived!
We know you’re all familiar with the beloved and original PHP mascot! On the scene since 1998, the logo was originally created for the PHP community by Vincent Pontier. Ten years later, the super plush ElePHPant finally came to life and grew to be adored by the PHP global community. Conference after conference, we get endless requests from people longing to have their very own ElePHPant. And so, to mark the momentous occasion of Symfony’s 10th birthday we decided to take some serious action. You’ve seen personalised ElePHPants before, but you’ve never seen special edition Symfony ElePHPants!

Tutorials and Talks

Flyweight Design Pattern and Immutability: A Perfect Match
The flyweight pattern is a relatively unknown design pattern in PHP. The fundamental principle behind the flyweight pattern is that memory can be saved by remembering objects after they have been created. Then, if the same objects need to be used again, resources do not have to be wasted recreating them. A good use case for the flyweight pattern would be an application that has to load large files. These files would be our flyweight objects.

Writing PSR-7 Middleware
Within Slim 3's Request object, there's a method called getIp() which determines the client's IP address. However, it's rather simplistic and potentially risky as it checks the X-Forwarded-For header, with no ability to ignore this header or whitelist whether we trust the final proxy in the chain. Determining the client's IP address is an ideal use-case for middleware as we can inspect the headers in the request and then set an attribute so that middleware further down the chain can use it. Following my rather unimaginative naming, I've called it rka-ip-address-middleware. However, in this article, I want to look at how easy it is to write useful PSR-7 middleware.

Improving Your PHP Project Structure with Dependency Injection Part 1: How it Works?
Dependency injection is a design pattern that is implemented in many of the modern PHP frameworks, because it helps organising better the code of multiple components that depend on the same service of information or behaviour. Read this article to learn what is dependency injection and inversion of control and how it can be implemented in PHP to benefit your project's structure.

Getting Phing Custom Tasks Up To PR Standard - What I Did
Phing is a build system that I’ve written about before which is open source, and developed in PHP. Two custom tasks I wrote have been merged into the main phing repository on github and I thought I might write up my notes on what I did to get them up to “PR Standard”.

The Beginners Guide to WooCommerce: Managing Coupons
Improving and increasing the financial status of a business is the aim of every online store owner, and the volume of sales plays a vital role in achieving it. In this article we will explore one of the best ways which WooCommerce offers to reward your customers, i.e. Coupons. Providing customers with discount coupons ensures an increased number of sales, which is a win-win situation. So let's get started.

Receiving Amazon SNS Messages in PHP
A little over a year ago, we announced a new feature in the AWS SDK for PHP that allowed customers to validate inbound SNS messages. In the latest version of the SDK, this functionality is now available in its own package, one that does not depend on the SDK, so it's simpler to listen to SNS topics with lightweight web services. In this blog post, I’ll show you how to use the Amazon SNS message validator for PHP to parse messages in a single-file web application.
It might sometimes be necessary to prevent a user, or all users with a specific role, from accessing the WordPress admin panel. It’s not tough. Let’s think that we want all users with an author role to not be able to access the admin panel. All you have to do is just add the following code in your functions.php and you’re done.

Memory Performance Boosts with Generators and Nikic/Iter
Arrays, and by extension iteration, are fundamental parts to any application. And like the complexity of our applications, how we use them should evolve as we gain access to new tools. New tools, like generators, for instance. First came arrays. Then we gained the ability to define our own array-like things (called iterators). But since PHP 5.5, we can rapidly create iterator-like structures called generators.

ReactPHP: HTTP Client
Aside from a HTTP component, ReactPHP also has a HTTP Client component that lets you send out HTTP requests. It is incredibly handy when you need to communicate with, for example, elasticsearch's REST API, AWS platform through their SDK or the RIPE Atlas API. 

Installing Zend Server with Ansible
This piece is a short tutorial on how to install Zend Server 8.5 using Ansible.

Environment Specific Variables in Laravel's Testing Environment
In Laravel, it's easy to set environment variables that are specific to your testing environment. Just edit your phpunit.xml file and set them as entries in the <php> block. But what if you find yourself needing to exclude these values from version control?

Preventing Timing Attacks on String Comparison with a Double HMAC Strategy
Modern cryptography protocols are more likely to be broken by side-channel information leaks than the persistent efforts of clever mathematicians. One of the common cryptographic side-channels that developers should be aware of is how long a specific operation, such as a string comparison, takes to complete. Thus, they are called timing attacks.

OCR in PHP: Read Text from Images with Tesseract
Optical Character Recognition (OCR) is the process of converting printed text into a digital representation. It has all sorts of practical applications - from digitising printed books, creating electronic records of receipts, to number-plate recognition and even circumventing image-based CAPTCHAs. Tesseract is an open source program for performing OCR. You can run it on *Nix systems, Mac OSX and Windows, but using a library we can utilise it in PHP applications. This tutorial is designed to show you how.

Add an Automatic 'Featured Image' to Blog Posts Based on Category
Using featured images in post archives is a common feature of themes, but sometimes you might want to use featured images a bit differently.
News and Announcements

PhpStorm 10 is Released
PhpStorm 10, the new major release of our professional PHP IDE, is now available for download! PHP 7 Support, Interactive debug console (REPL), Dataflow analysis, PHPUnit 5 Support and more.

Announcing The CFP Report - Cal Evans
Dear Reader, I want to talk about a new project I have set up, called “The CFP Report” and invite you to join.

Announcing the Second Edition of The Symfony Business Awards
In 2013, we celebrated the first edition of the Symfony Business Awards, which recognise the best business websites, applications and projects developed with Symfony. Due to the success and appreciation of these awards, we've decided to organise the second edition of the Symfony Business Awards.

Drupal 6 End-of-Life Announcement
On February 24th 2016, Drupal 6 will reach end of life and no longer be supported. As announced in the Drupal 6 extended support policy, 3 months after Drupal 8 comes out, Drupal 6 will be end-of-life (EOL).

php[world] - November 16-20th 2015, Washington DC
Once again, we will be inviting all the varied sub-communities of PHP to join us under one roof; WordPress, Drupal, Joomla!, Magento, Zend Framework, Symfony, CakePHP, Laravel and more! We will be planning specific tracks for each framework, as well as finding great crossover talks that will appeal to everyone. The last few tickets are on sale now.

PHP Conference Brazil - Dec 2nd-6th 2015, Sao Paulo
In its tenth year, the Brazilian PHP Conference takes place over five days, ending up on the last day on a beach! With hands-on courses, practical mini-courses, talks and keynotes, plus a camping area to make it easy to stay over. Also the GirlPower promotion means 50% off tickets for women. Phase 3 of ticket sales is open for one more day.


Laravel News Podcast - Laravel Quickstart Tutorials
In this episode of the Laravel News Podcast, we discuss the new Laravel quick start guides, features coming to Laravel 5.2, Elixir and Bootstrap, Developer interruptions and more!

Voices of the ElePHPant - It's The Booze Talking: The Future of PHP
Cal Evans caught up with several members of the PHP community to discuss the future of PHP.

Three Devs and a Maybe Podcast - The History of React and Flux with Dan Abramov
On this weeks episode we are lucky to be joined by Dan Abramov, creator of Redux and React Hot Loader (React Transform). We start off the show with his upcoming move to work at Facebook in London, and touch upon how he became interested in programming from a young-age. We wrap up the show highlighting his work with React Hot Loader and its successor React Transform, along with recommended resources for beginners looking to explore these subjects in more detail.

Full Stack Radio Podcast Episode 29: Mark Otto - Bootstrap 4 and CSS Architecture At Scale
In this episode, Adam talks to Mark Otto, creator of Bootstrap and director of design at GitHub. They talk about the brand new alpha release of Bootstrap 4 and some of the most significant changes. They also talk about choosing units, when to use utility classes, and the importance of a component based CSS strategy.

Acquia Podcast: Drupal, the Fastest Way From Idea to MVP - Meet Keith Donaldson
Keith Donaldson and I spoke in Keith's 9th week as a Drupalist--he's done Django and run several startups in the past--and he'd already been using Drupal "in the wild" to win a hackathon and more. I was impressed! In this podcast, we talk about Keith's background, impressions of Drupal, how the Acquia U training program supports and creates new Drupal talent, our mutual conviction that it is one of the best tools to get a minimum viable product up and running for someone with a startup idea, and more!

Free The Geek Podcast: Episode 9 - Removing False Perceptions About People, The Roland R-05, and Zend Expressive
There’s no guests in this episode. Instead I explore a range of topics, including one quite dear to me - how we can build up preconceptions of what other people think of us. I explore this and consider how false preconceptions can hinder us both personally and in our careers. With the exploration done, I throw down a challenge to get over them and see life, and see other people as they really are - not how we think they might be. As well as that, I give a massive plug for the Roland R-05 Wave/MP3 recorder which will be by my side at PHP World Conference, where I’ll be chatting with so many amazing people. I also give a shout out for an amazing aspect of Zend Framework 3, which is Zend Expressive. It’s a quirky solo episode this one, but one I’m sure you’ll get a lot out of.

Reading and Viewing

Interviewing Gary Hockin from JetBrains - Thijs Feryn
Talking about Developer Evangelism, travel, PHPStorm & PHP community conferences.

How to Search a Forum With MySQL and PHP
Is it a good idea to self teach myself and still pursue a career in web development? Which front-end framework should I start with? How do I create a good search for my forum with PHP and MySQL? John Morris answers these questions and more in this week’s WebDev Q&A.

Promises & Generators: My Slides from True North PHP 2015
After presenting at the True North PHP Conference last week, Evert Pot has put his slides onto github for you to enjoy.

How Do I Use Laravel To Make Money? (by Taner Perman, pubished 26 Oct 2015)
I know that every person wants to have a professional web portal to make money. Some people think that it is very expensive, but it is free. You can have it very easily, but first of all you must have a strong web platform like Laravel. What is the logic of Laravel? What is the power of Laravel? How can I use this power to make money? Let's learn very easily.

PHP Dependencies Made Easy with Composer
Ever see that commercial where the couple is sitting down to enjoy an on-demand movie and they’re suddenly inundated in a sea of movie boxes? If you’re a PHP developer, chances are you’ve had that same feeling (minus the videos bopping your noggin) as you try to work with the wide variety of code libraries available. Save yourself by incorporating Composer, a robust dependency manager for PHP. In this short screencast, Joe Lowery will show you how to get up and running with Composer—along with its companion service, Packagist—and become a more efficient coder, rising with the tide of all those cool PHP frameworks and libraries rather than drowning in them. Composer, ahoy!


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 lightweight implementation of CommonJS Promises/A for PHP.

A collections library for PHP.

This is a class for doing symmetric encryption in PHP. 

Payum offers everything you need to work with payments. From simplest use cases to very advanced ones.

Solarium is a PHP Solr client library that accurately models Solr concepts.

JoliNotif is a PHP library to send notifications to your desktop directly from your script.

Chain provides you with a consistent and chainable way to work with arrays in PHP.

A simple PHP API extension for DateTime.

A tiny, yet powerful, PHP micro-framework.

Free, open-source, self-hosted help desk platform based on the Laravel PHP Framework.

PHPUnit is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks.

Notejam is a unified sample web application (more than just "Hello World") implemented using different server-side frameworks.

Cloak is a library that takes a code coverage.

Grunt task management for Zend Framework 2

Rapid workflow for project maintainers and contributors.

PHP OTP Library compatible with Google Authenticator.

A simple class to manipulate Dictionary data structures within PHP.
Please help us by clicking to our sponsor:

 From our sponsors:
The Power of Three 97% of developers will fail you. We are the other 3%. Get access to power.

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