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

Welcome to the latest
This week the team has announced several releases - PHP 7.1.19 and 7.2.7, both available immediately, plus 7.3.0 alpha 2 which is available for testing.
Also this week we take a look at building a project time tracker, with Symfony and VueJS.
PHP South Africa takes place late September, in Johannesburg. Save the date and check back for announcements.
Plus the PHP Ugly podcast team discuss the Browser Exploitation Framework Project in the latest edition.
We are always on the lookout for great articles, podcasts, tutorials and announcements. In fact, anything PHP related. So if you've written or read anything you think might interest our readers, drop me a line on [email protected].
Have a great weekend,
Ade and Katie

Please help us by clicking to our sponsor:

encrypt php scripts 
Protect 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.


How Much Does it Cost to Hire a PHP Developer?
PHP is one of the most ubiquitous programming languages on the web. It’s been around awhile, but it has the chops to stay mainstream. If your site is like a majority of those around the web running on Linux or WordPress, chances are you need a skilled PHP developer now and again to update and maintain your codebase. So how does hiring a PHP developer fit into your project budget? What’s the best way to estimate how much it will cost to hire a PHP developer? In this article, we’ll look at a few cost factors to consider when drafting a project description and reviewing proposals from potential PHP developers.

Drupal Business Survey 2018 Calls for Input
At the end of June 2018, the third edition of the Drupal Business Survey will be launched by One Shoe and Exove in collaboration with the Drupal Association. The purpose of the survey is to provide information on how Drupal agencies are doing worldwide and how Drupal fits in business-wise. Therefore the initiators of the Drupal Business Survey 2018 call for input from the Drupal Community. Any Drupal business related topics, ideas or suggestions you wish to see investigated, are more than welcome.

Open Source is Selfish
Most people I meet see open-source as "putting all your work free to the public". Do you think that I'd love it so much if that was the case? That's why I want to talk about selfish benefits of open-source, that comes first, almost always, but just a few people can see them. And that selfish open-source is a good thing.

PHP Frameworks Guide & Top 10 Best PHP Framework 2019 (Prediction)
In the next 9 minutes you will be reading about the PHP Scripting Language, the Backend Development Trends, Why does Businesses like ours trust PHP, and the Best PHP frameworks that we believe would rule the Backend App Development industry in 2019. Ready for the ride? Let’s begin.

Tutorials and Talks

Understanding Design Patterns - Decorator
Attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.
PHP Simple HTML DOM Parser Script
In this post I have explained some elements to scrap data from external websites. Simple HTML DOM parser is a PHP 5+ class which is useful to manipulate HTML elements. This class can work with both valid HTML and HTML pages that do not pass W3C validation. You can find elements by ids, classes, tags and many more. You can also add, delete or alter DOM elements. The only one thing you should care about is memory leaks – but you can avoid memory leaks as explained later.
Computer Vision and Machine Learning in PHP Using The opencv Library
In almost 7 years I have written 10 articles, 8 of them technical. The total number of views of all articles is about half a million. I have made the main contribution into two topics: PHP and Server Administration. I like to work at the junction of these two areas, but the scope of my interests is much broader.
Building an Image Gallery Blog with Symfony Flex: Data Testing
In the previous article, we demonstrated how to set up a Symfony project from scratch with Flex, and how to create a simple set of fixtures and get the project up and running. The next step on our journey is to populate the database with a somewhat realistic amount of data to test application performance.
Building a PHP Framework: Part 6 – Dependency Inversion, Inversion of Control, oh my!
Part 5 of this series discussed test driven development (TDD). Today, I’ll be talking about Dependency Inversion, Inversion of Control, Dependency Injection, and other related topics.
Breaking Laravel's FirstOrCreate Using Race Conditions
Recently I was working on a client project where a data import was performed via queues. Each record was imported in its own queued job using multiple queue workers. After the data import was done we had more rows than expected in the database. In this blog post I'd like to explain why that happened.
Short Identifier
Sometimes resources can be identified by one of their attributes (a name, title, slug) and sometimes they can't (no name, or confidential name). In the later case, an ID needs to be artificially crafted. Two of the popular strategies is to use either an auto incremental one or a universally unique one, however when it comes to share them publicly, both strategies present some drawbacks
Quick and Easy PHP Code Generation Testing
Recently I was working on some PHP code (for the PHP-FIG) that involved code generation. Of course, like any good developer I was writing tests for it as I went. That meant needing to test that the generated code was valid PHP syntax and did what I wanted it to do.
Let’s Build a Project Time Tracker with Symfony and VueJS
As developers, we often love to keep track on the amount of time spent implementing a new feature, fixing bugs or generally carrying out a particular task during development. This has proven to be one of the ways to improve productivity.
Building a Single NGinx Docker Image For All My PHP-FPM Containers
Lately I’ve been working to deploy a suite of PHP microservices using Docker containers. One of the problems is that our PHP applications are set up to work with PHP-FPM and Nginx (instead of the admittedly simpler Apache/PHP setup covered here), so each PHP microservice needs two containers (and by extension, two Docker images): a PHP-FPM container and an NGinx container.
Scopes in PHPStorm
Scopes in PHPStorm can significantly improve your development experience. They enable better search and allow for custom file colours.
Puphpeteer: A Puppeteer Bridge for PHP
PuPHPeteer by Johann Pardanaud is PHP bridge for Google Chrome’s Puppeteer headless chrome Node.js API. PuPHPeteer has similar PHP examples based on the Puppeteer examples, to get a feel for how you might use the API in PHP.
Fast Web Scraping With ReactPHP. Part 3: Using Proxy
In this article, I will show you how to send concurrent HTTP requests with ReactPHP using a proxy server. We will play around with some concurrent HTTP requests and then we will come back to the scraper, which we have written before. We will update the scraper to use a proxy server for performing requests.
Using PHP Anonymous Classes as Package Private Classes
I’ve written before about the benefits of using PHP’s Anonymous Classes for test doubles; but Anonymous Classes also have potential usecases within production code as well. In this article I’m going to describe one such usecase that can be particularly useful within libraries, and that is replicating the access of Package Private (in Java), or Protected Internal Classes (as per C#).

News and Announcements

PHP 7.1.19 Released
The PHP development team announces the immediate availability of PHP 7.1.19. All PHP 7.1 users are encouraged to upgrade to this version.

PHP 7.2.7 Released
The PHP development team announces the immediate availability of PHP 7.2.7. This is a primarily a bugfix release which includes a segfault fix for opcache. PHP 7.2 users are encouraged to upgrade to this version.

PHP 7.3.0 alpha 2 Released
The PHP team is glad to announce the release of the second PHP 7.3.0 version, PHP 7.3.0 Alpha 2. The rough outline of the PHP 7.3 release cycle is specified in the PHP Wiki. Please carefully test this version and report any issues found in the bug reporting system.

Mid-Atlantic Developer Conference - July 13-14th 2018, Baltimore
Mid-Atlantic Dev Con is a polyglot event, designed to bring together programmers from the region, regardless of their choice of platform, for two full days of learning from each other and building a stronger regional community. Tickets are on sale now.

Laracon EU - 29-31st August 2018, Amsterdam
Laracon EU is a unique international Laravel event with over 750 attendees. The conference has multiple tracks and is focusing on in-depth technical talks. Come learn about the state of the industry while networking with like-minded and diversely experienced developers. Tickets are on sale now.

PHP South Africa - 26-28th September 2018, Johannesburg
An annual PHP conference in South Africa. We try to get the best of the best to share knowledge. So far we have succeeded. This year is our 5th birthday! To celebrate the occasion, we are going all out! Check back often to see any new announcements about the biggest conference we have planned yet!

ZendCon - 15-17th October 2018, Las Vegas
ZendCon & OpenEnterprise is the premier technology conference designed to teach and share practical experiences from the front lines of enterprise PHP and open source environments. Focused on solving real-world, enterprise-class problems, technical business leaders, strategists, and developers will assemble to discuss case studies and best practices around the application of PHP and open source to transform business. Early Bird tickets are on sale now.


This month the team discusses BeEF - The Browser Exploitation Framework Project.
PHP Web Development Podcast Ep #4 - The Importance of Getting a Mentor for PHP Developers
This week I have the pleasure of speaking to Dan Blows. Currently a tech lead, he has done some really cool stuff; he's in the top 3% on stack overflow, in the top 10% of PHP developers in Europe, speaking at meet ups , spoke in the European conference in front of 100's of people, training and mentoring junior developers and much more.
PHP Round Table Podcast 74: Secrets, Secrets, Are No Fun
Secrets, secrets, are no fun, all they do is cause pain when trying to deploy to production. By secrets, we're talking about database passwords, API keys, and other credentials that we want to keep from prying eyes. There are a number of solutions out there to keep our secrets out of the codebase and in a more secure area. We'll discuss the options we have for managing secrets and the tradeoffs for using them.

Reading and Viewing

A secure .env handler with encrypted key/value storage, fast string manipulation library with multibyte support, query builders for Atlas.Pdo connections, framework for creating and deploying serverless-applications in PHP, traits for Laravel eloquent models, and more. Keep on reading!
Zeev Suraski on PHP 8
The goal of this email isn't to discuss in detail each and every topic that's mentioned, but rather to establish whether we want to move to focus on PHP 8 as we go beyond PHP 7.3, based on some of the research projects and PoCs we've been working on.
Testing Unreleased Features of PHP
We'll be discovering and testing a completely unreleased feature of php-src from an RFC that's still under discussion. If you've ever wanted to be ahead of the curve of PHP features or you've just wanted to contribute back to PHP internals, testing an unreleased feature from an RFC is a fun and educational way to do so.
PHP Development Third Edition (by Gerardus Blokdyk, published 12th May 2018)
How do you determine the key elements that affect PHP Development workforce satisfaction? how are these elements determined for different workforce groups and segments? Who will be responsible for deciding whether PHP Development goes ahead or not after the initial investigations? How do we maintain PHP Development's Integrity?


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 simple PHP class wrapper for PDO.
AlternC is a software helping system administrators to handle Web and Email services management. It should be easy to install, based only on free software.
PHP library to generate linear and bidimensional barcodes.
MODX lets you power anything from multi-language, multi-domain corporate sites to personal blogs to mobile APIs.
The Phar Installation and Verification Environment (PHIVE). Installation and verification of phar distributed PHP applications has never been this easy!
A Slim middleware to restrict ip addresses that will access to your routes.
Web-app for processing, logging and visualising energy, temperature and other environmental data.
Snidel makes parallel processing easy for all PHP developers.
Ganesha is PHP implementation of Circuit Breaker pattern which has multi strategies to avoid cascading failures and supports various storages to record statistics.
This PHP library will help you to work with your Pinterest account without using any API account credentials.
GitHub application for managing PocketMine-family plugins, and website for sharing plugins.
Mocking utility for PHP functions and WordPress plugin API.

Please help us by clicking to our sponsor:

encrypt php scripts 
Protect 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 ©