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!

July 27, 2017

Here we are again PHP fans, with your latest edition of

The first beta for PHP 7.2.0 has been released by the PHP development team this week, purely as a development preview to be carefully tested .

Also this week, Matt Stauffer wanted to know what packages people use when creating Laravel apps. So he asked the question on Twitter, and has listed the responses he got in order of the number of recommendations they all received.

Have you ever wondered why, in programming, a set of letters sticking together is referred to as a "string"? Thought about how the term "font" was derived? The difference between "uppercase" and "lowercase"? Welcome to your history lesson!

Plus the latest PHP Roundtable Podcast is all about TestFest 2017 and how to get involved.

And finally, on the newly rebooted 7PHP blog this week is an interview with Mihail Irintchev, organiser of the Bulgarian PHP User Group.

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.


What’s new on - June 2017
Read our Roadmap to understand how this work falls into priorities set by the Drupal Association with direction and collaboration from the Board and community.

Why Is a String Called a String?
Why is a string called a string? Have you ever given this some thought? We never use such a word in contexts other than programming for a set of letters sticking together, and yet – in programming it’s as pervasive as the word “variable”. Why is that, and where does it come from? To find out, we have to tackle some related terms first. History lesson time!

Your PHP Stories
Do you have an interesting story that involves PHP?  Something awkward, unexpected or inspiring that happened to you or that you witnessed that was related to PHP and/or its community?  Did PHP help you meet your spouse, otherwise change your life or enable you to change other people's lives?

6 of the Best Free Contact Form Plugins for WordPress
Web forms are essential for common data collection tasks, such as collecting email addresses, visitor information, feedback, surveys and member registrations. Even the humble contact form is usually found on most websites. Searching for the term “contact form” on the WordPress Plugin Directory yields thousands of results! To help navigate the volume of options and cut through the noise, I’ll cover some of the most popular, regularly updated and free WordPress contact form plugins available.

What Packages Do You Install on Every Laravel Application You Create?
In preparation for my upcoming talk at Laracon 2017, which I'm titling "Custom Laravel," I asked a quick question on Twitter to my followers: "Laravel devs: what are the packages you install on *every* app?" I wanted to know for my talk, but I was also just curious for my own purposes. Are there any packages I should check out that everyone else already knows about? Here's what I found, in order of the number of recommendations I received.

Tutorials and Talks

Your First GraphQL API - Search
Search is another complementary technical when working with a large dataset. It takes an existing list, and removes items based on criteria that match/don't match. In this tutorial, we are going to implement a search for our data table.

Sockets with PHP and Node
I was looking to implement real time notification systems via sockets without having to use any third party services such as Pusher, etc. I just wanted to be able to send notifications from PHP side to the client and instantly show them on the web application similar to Facebook notifications. Here are the steps that I followed to get my notification system working.

How to Add Real-Time Notifications to Laravel with Pusher
The modern web user expects to be informed of everything that happens within the application. You don’t want to be that one website that doesn’t even have the notifications dropdown found not just in all social media websites, but everywhere else these days, too. Luckily, with Laravel and Pusher, implementing this functionality is a breeze. The code we’ll write in this tutorial can be found here.

Why Using Code as DI Config Is a Win!
In my recent talk on introducing Disco - the DI container with the damn coolest name(tm) - I talk about why I believe that using XML or any other non-code configuration (YAML, JSON, ...) is not a good idea. This stirred some twitter discussion recently which led to this blog post.

The Bulletproof Event Naming For Symfony Event Dispatcher
I wrote intro to Symfony\EventDispatcher and how to use it with simple event. But when it comes to dispatching events, you can choose from 4 different ways. Which one to choose and why? Today I will show you pros and cons of them to make it easier for you.

Image Optimisation With Spatie Laravel Image Optimiser
Image optimisation can greatly improve site performance, and is one of the most common issues I see in Google page speed insights reports. Sometimes images can be reduced by 50% or more, yet, it can be difficult to string various tools together to optimise images in web applications.

Detecting Problems With -fsanitize
In the past few months I have been working on adding time zone support to MongoDB's Aggregation Framework. This support brings in the timelib library that is also used in PHP and HHVM to do time zone calculations. One of the stages in our workflow before we commit code to master, is to put our patches up onto our continuous integration platform Evergreen, where tests are run against multiple platforms.

Reusing Factories in Zend ServiceManager
I think it is doubtless that modern PHP embraces SOLID principles, and therefore, dependency injection. That's why every modern PHP application needs a dependency injection container to deal with it. There are several options out there, depending on the way you like to work. Every container has a slightly different approach. My choice is zend-servicemanager, it is the one that better suits me.

Static Analysis Tools for PHP in a Single Docker Image
As part of my job I often perform application reviews and code quality analysis for clients who wish to have their code base looked at by an independent company. Running static analysis tools is usually a starting point to the review as it gives a general overview of a state of the project. I also like to run those tools as part of an introduction to an inherited code base. For an easy access to the most popular static analysis tools for PHP I recently created a docker image - phpqa.

How To Create A Zend Expressive Module
I've been reflecting recently on the things that I commonly have to do when I begin building Zend Expressive applications. Of the list that I created, I found that one of the most common — and uninteresting — of them is setting up the rendering of static page content. Unfortunately, despite being uninteresting from a code perspective, static content is necessary. Even the largest of sites usually need such content as terms and conditions, disclaimers, privacy policies and, here in Germany at least an Impressum — if you've never heard of one, be happy.

Achieving Geo-search with Laravel Scout and Algolia
Laravel Scout makes it very easy to setup an external search engine to create consumer-grade searches quickly. The package comes with Algolia as a default search engine. I'd like to demonstrate how to make use of the geo-location search feature with Scout. In this tutorial, you'll learn how to prepare your data for Algolia and Laravel Scout to retrieve items based on location.

How to Write JavaScript-Style Test Watchers in PHP
I didn’t start out writing tests for my code. Like many before and since, my “testing” was to write code and refresh the page. “Does it look right?”, I’d ask myself. If I thought so, I’d move on. In fact, most of the jobs I’ve had have been with companies who don’t much care for other forms of testing. It’s taken many years, and wise words from people like Chris Hartjes, for me to see the value in testing. And I’m still learning what good tests look like.

Understand the Basics of Laravel Middleware
In this article, we'll dive deep into the Laravel framework to understand the concept of middleware. The first half of the article begins with an introduction to middleware and what it's actually used for. As we move on, we'll cover how to create custom middleware in a Laravel application. After creation of your custom middleware, we'll explore the options available to register it with Laravel so that it could be actually invoked during the request processing flow.
News and Announcements

PHP 7.2.0 Beta 1 Released
The PHP development team announces the immediate availability of PHP 7.2.0 Beta 1. This release is the first beta for 7.2.0. All users of PHP are encouraged to test this version carefully, and report any bugs and incompatibilities in the bug tracking system.

Laravel v5.4.29 is Released with Two New Blade Directives
Laravel V5.4.29 is now released and available. This is a maintenance release but it includes two new Blade Directives, a --force option on some of the “make” commands, and more.

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.

SymfonyLive - 17th-20th October 2017, San Francisco
We’re back! SymfonyLive is coming back, that’s right, back to our beloved San Francisco for a whole new chapter in our conference series for 2017. We are ecstatic to return to the city by the bay and host the American Symfony community. Symfony fans of The City, don’t miss the upcoming presentations, discussions, symposiums, meetups and our wonderful conference happy hour. Tickets are on sale now.

International PHP Conference - 23rd-27th October 2017, Munich
The International PHP Conference is the worlds 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. Two days of power workshops and two conference days with over 70 international speakers and experts. Very Early Bird tickets are on sale now.

PHP[World] Conference - November 15-16th 2017, Washington DC
Four years ago the team behind php[architect] magazine wanted to create a conference designed to bring all the PHP communities together. Hence, the idea of php[world] was born. It's an event that is intended to bring the entire world of PHP together in one place, to encourage cross-pollination of ideas and sharing of ideals. Early Bird tickets are on sale now.


Voices of the ElePHPant - Interview with Jeff Kolesnikowicz
This week Cal Evans talks to senior developer at Allied Health Media, Jeff Kolesnikowicz.

Changelog Podcast #257: The Power of Wikis, the Problem with Social Networks, and the Promise of A.I.
Evan Prodromou has been involved in open source since the mid '90s. His open source travel guide – Wikitravel – grew up alongside Wikipedia and the web itself. In this episode, we hear Evan's history, try to solve open social networking once and for all, and learn how sprinkling a little artificial intelligence on to our products can yield big wins without having to shoot the moon.

Full Stack Radio Podcast Episode 68: Building Interfaces with Utility-First CSS
In this episode, Adam welcomes back Jonathan Reinink to talk about implementing designs with a utility-first approach to CSS. They talk about the problems this approach has solved for them, the surprising workflow benefits, and some tips and tricks for using this approach well.  

MageTalk Magento Podcast #137 - “Hard Brexit – Thanks Obama”
Nothing against Madrid but Barcelona's way cooler. MLUK, PWA's and more on this ep of MageTalk!

PHP Roundtable Podcast Episode 65: TestFest 2017
Adding tests to php-src is a great way to get involved with PHP internals. Don't know how to get started? You're in luck. TestFest 2017 is going to be a thing in September. User groups and individuals around the world are going to organise to learn how to add tests to PHP and become official internals contributors. It has been 7 years since the last TestFest in 2010. We chat about how to get involved with TestFest 2017.

Zend Framework Quick Bites Episode 33 - Where Are The Missing Episodes?
In this episode, I’m not saying anything at all about Zend Framework, Zend Expressive — even PHP. Strange, hey? Why? Well, this is a quick episode to explain why the episode numbers are missing a few in the sequence of late. Grab a cup of your favourite beverage, have a listen to the episode, and I’ll tell you everything.

PHP Ugly Podcast #65: Cape and Cowl
Topics Discuss the SDPHP Framework Meetup The influx of local San Diego Tech groups shutting down. Developers Who Use Spaces Make More Money Than Those Who Use Tabs - Stack Overflow Blog Laravel Package Auto-Discovery The value on the PHPUgly Pin goes up. MySQL Replication...

Lately in PHP Podcast Episode 85 - Improving PHP Extensions Mixing PHP and C Code Using PCS
PCS is a mechanism that allows creating PHP extensions mixing C and PHP code, thus allowing to develop PHP extensions faster. The possibility of using PCS in PHP 7.2 was one of the main topics discussed by Manuel Lemos and Arturs Sosins in Episode 85 of the Lately in PHP podcast. In this episode they also talked about the proposals to support retrying code that throws exceptions, matching regular expressions starting in a position of the text, having final variables, binary serialisation of variables, etc..

Reading and Viewing

Running The Test Suite
This is the 2nd post in the "Writing tests for PHP source" series by Sammy Kaye Powers, running the test suite. Now that we've compiled PHP from source, we need to learn how to run the tests using PHP's black-box testing tool called run-tests.php.

Cloudways Interview - Brad Touesnard Discusses The Benefits of WordPress Open Source Community and WordCamps
Today we are talking with Brad Touesnard, the founder of Delicious Brains. Brad started his career as a freelance web developer in 1999 and earned a degree in Computer Science in 2005. He worked for a few web development agencies over the next 5 years, but went back to freelancing in 2009, and started a software product company WP App Store Inc. in 2011. He believes in open source software and likes to contribute to the WordPress project.

eBook - PHP 7 Explained
PHP 7 Explained is an ebook written by the creators of "". It is kept up to date with each PHP 7 release, including the upcoming PHP 7.2. For more insights into PHP 7, get your copy now, which includes life-long free updates.

7PHP Interview With Mihail Irintchev
This week on the rebooted 7PHP is an interview with organiser of the Bulgarian PHP User Group, Mihail Irintchev.

Load Balancing with Nginx
On the Servers For Hackers site, Chris Fidao has published a free six part series on how to use Nginx as a load balancer. Watch the video series here.


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

This was a collaboration between PEAR, PECL and PHP core to create a unified bug tracker.

An Alfred-inspired navigation system for Drupal 8.

The Universal Device Detection library will parse any User Agent and detect the browser, operating system, device used, brand and model.

Just another routing library. Makes human-friendly URLs and programmer-friendly code. Uses trees for the best performance.

A free and open-source wiki software package written in PHP. It serves as the platform for Wikipedia and the other Wikimedia projects, used by hundreds of millions of people each month.

An open-sourced PHP framework that can help you build successful projects better.

A flawless framework for building scalable and testable API-Centric Applications with PHP.

MailChimp for Magento 1. Integration to sync all the Magento data (Newsletter subscriber, Customers, Orders, Products) with MailChimp.

The "Symfony Demo Application" is a reference application created to show how to develop Symfony applications following the recommended best practices.

An SDK which allows PHP developers to easily connect to OpenStack APIs in a simple and idiomatic way.

The Microsoft Drivers for PHP for SQL Server are PHP extensions that allow for the reading and writing of SQL Server data from within PHP scripts.

PHPJasper is the best solution to compile and process JasperReports (.jrxml & .jasper files) just using PHP, in short: to generate reports using PHP.

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 ©