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!

March 23, 2017

Welcome back PHP fans.

The PHP development team has announced the immediate availability of two new releases; PHP 7.1.3 and 7.0.17. Users are encouraged to upgrade to these versions.

Also this week we have an interview from the Laravel News site with one of the speakers attending Laracon US later in the year, Justin Jackson, who is relatively new to the circuit.

The latest Sourcehunt is out now on the SitePoint website, promoting interesting and helpful open source projects.

Plus we bring you a tutorial on markdown processing, looking at how to parse markdown in PHP.

And finally, the Madison PHP Conference has been announced, taking place over two days in September this year. The Call for Papers is now open.

Have a great weekend,

Katie and Ade

Please help us by clicking to our sponsor:

Heroku users' favorite MySQL database — will soon be available to everyone. Sign-up for early access and get a limited edition t-shirt and a 2.5 GB | 30 connections Blacktip database free for 3 months!


Why You Should Use Expressive
Expressive is a middleware microframework that allows you to write applications for the web. It provides a small footprint that incorporates an intentionally small number of dependencies to allow you, the developer, the senior engineer, or the architect to dictate what packages are needed in order to enable your application, and what workflows will best describe it.

Why You Should Be Using Supported PHP Versions
A dilemma we are facing today is that many businesses, developers, and hosts have fallen behind when it comes to supporting the latest PHP versions. Some of the statistics below might even shock you. Today we want to discuss some of the reasons why it is so important that everyone use the latest PHP versions, not only for security reasons, but also for better performance and support.

Goodbye Project Applications, Hello Security Advisory Opt-in
Any user on who has accepted our Git usage policy may now create full projects with releases. This is a big change in policy for the Drupal project, representing an evolution of the contribution ecosystem in the past half a decade.

Sourcehunt – Build a Medium Exporter + Cool New Libs!
If you’re new to Sourcehunt, it’s our monthly post for promoting open source projects that seem interesting or promising and could use help in terms of Github stars or pull requests. It’s our way of giving back – promoting projects that we use (or could use) so that they gain enough exposure to attract a wider audience, a powerful community and, possibly, new contributors or sponsors.

Tutorials and Talks

Markdown Processing in PHP
Markdown is a text-to-HTML conversion tool for web writers. It has gained its deserved popularity after its introduction in 2004. Markdown allows you to write text while providing a format in an easy and clean way. Though it is developed by Perl, it has been ported to different languages such as PHP. In this tutorial, we will show you how to parse markdown in PHP.

Practical Color Theory for People Who Code
This is a demo of my functions for a complementary color scheme - pick any color on the color wheel and the functions will make sure that the scheme will still work!

Sculpin and Docker
I've been running this blog on Sculpin for quite a while now, and I'm quite happy with how that works. We've been in a process of migrating some of our websites off a standard VPS towards a setup with Docker, Gitlab CI and Rancher. I've now migrated some websites, which is relatively easy, but most of those sites were dynamic PHP websites. Migrating a site that generates static HTML and running that is a slightly different thing. Here's how I ended up doing it.

My Laravel Package Building Workflow
Packages are a really important part of the Laravel experience (just like with any other framework). Whatever we need to do, there’s probably already a package for it out there; ready for a composer require to bring some magic in. 

Keep PhpStorm Metadata Away From Project Sources
I fell in love with PhpStorm only few months ago ago when I switched from NetBeans, my favorite IDE by then. One thing that I was missing from the very start is the ability to separate project metadata from sources, because I like to keep away everything that is unnecessary from my project directory, as well as from the .gitignore file. It turned out that something like that is possible, but in contrast to NetBeans it's not so evident and requires a little more effort.

Building Your Startup: Meetings With Multiple Participants
Scheduling meetings with multiple participants was always part of my plan—but not part of the earliest Minimum Viable Product (MVP). The alpha release of Meeting Planner launched with only 1:1 scheduling. The goal of supporting group scheduling sat on the task list like Mount Everest to a climber aiming for the seven summits (and I'm not even an outdoor climber). Multiple participant meetings are the most challenging to schedule and therefore valuable for the Meeting Planner product to offer. I was excited when the beta task list reached the point that I could begin work on this.

A Modern REST API in Laravel 5 Part 2: Resource Controls
Enable consumers of your API to control and manipulate the data they request.

Removing All Vue Dependencies from Laravel
The recent versions of Laravel have come with some very minor Vue dependencies out of the box. They're easy to remove, but you may have not actually tried that yet, or you might be worried you're going to leave something sitting there. So, here's a quick tip on how to remove all Vue dependencies in a new Laravel install in a few easy steps.

PHPUnicorn - Visualising PHPUnit Tests
Watch PHPUnit tests run in real-time on a Unicorn pHAT (through a Rasperry Pi Zero W).

PHP 7 and Apache on macOS Sierra
I posted several talks about compiling PHP from source, but everyone was trying to convince me that a package manager like Homebrew was a more convenient way to install. The purpose of Homebrew is simple: a package manager for macOS that will allow you to set up and install common packages easily and allows you to update frequently using simple commands. I used a clean installation of macOS Sierra to ensure all steps could be recorded and tested. In most cases you already have done work on your Mac, so chances are you can skip a few steps in this tutorial.

PHP and Immutability
Being a weakly typed dynamic language, PHP has not really had the concept of immutability built into it. We’ve seen the venerable define() and CONSTANTS of course, but they’re limited. Whilst PHP does ship with an immutable class as part of it’s standard library, DateTimeImmutable, there is no immediately obvious method to create custom immutable objects.

How to Perform Extract Service Refactoring When You Don't Have Tests
When you are refactoring in a legacy codebase, the goal is often to reduce complexity or separate concerns from classes, methods and functions that do too much work themselves. Primary candidates for refactoring are often controller classes or use-case oriented service classes. This post presents a list of steps and checklists to perform extract service when you don't have tests or only minimal test coverage. It is not 100% safe but it provides small baby-steps that can be applied and immediately verified.

Parallel Programming with Pthreads in PHP – the Fundamentals
PHP developers seem to rarely utilise parallelism. The appeal of the simplicity of synchronous, single-threaded programming certainly is high, but sometimes the usage of a little concurrency can bring some worthwhile performance improvements. In this article, we will be taking a look at how threading can be achieved in PHP with the pthreads extension. 

Accessing Google Page Insights in PHP
Google Page Insights is a required tool to have when analysing the speed and usability of your site. As you may know these metrics influence how google ranks your page in search results. If you frequently make changes to your web site designs than it becomes mandatory to check the metrics after each change to make sure that the design change has not affected the score in any negative way. If you have many pages to test then manual testing can quickly become cumbersome. Thankfully there are libraries that you can use to automate this process. Once such is given in this post which allows you to get Google Page Insight metrics using PHP.
News and Announcements

PHP 7.1.3 Released
The PHP development team announces the immediate availability of PHP 7.1.3. Several bugs have been fixed. All PHP 7.1 users are encouraged to upgrade to this version.

PHP 7.0.17 Released
The PHP development team announces the immediate availability of PHP 7.0.17. Several bugs have been fixed. All PHP 7.0 users are encouraged to upgrade to this version.

GitLab Acquired The Chat App Gitter And Plans To Open Source It
Today GitLab announced that it has acquired the chat app Gitter that many communities use for communication. Also, many Laravel sub-communities use it as well, and you can find these through the Gitter Laravel Tag.

GuvScale - Autoscaling for Heroku Worker Dynos
I’m happy to announce that GuvScale — our service for autoscaling Heroku background worker dynos — is now available in a public beta. If you’re using RabbitMQ for distributing work to background dynos hosted by Heroku, GuvScale can monitor the queues for you and scale the number of workers up and down automatically.

Symfony Live Paris: 30th-31st Match 2017
After an excellent SymfonyCon Berlin 2016, we meet in Paris for SymfonyLive, a local conference entirely in French on the innovations of Symfony. This is the 9th edition of the Paris SymfonyLive and it takes place next week! The SymfonyLive Paris 2017 conference is a unique opportunity to exchange with not only Symfony team and community members, local and international experts, but also to discover the latest Symfony features, the most advanced uses as well as its evolution for the months and years to come. Tickets are on sale now.

DrupalCon - April 24-28th 2017, Baltimore
The Drupal community is one of the largest open source communities in the world. We're developers, designers, strategists, coordinators, editors, translators, and more. Once a year, our community comes together at the biggest Drupal event in the world: DrupalCon North America. This year, from April 24-28, we'll be in Baltimore, Maryland. There are 12 session tracks, featuring topics like UX, DevOps, project management, and PHP. Tickets are on sale now.

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! Blind Bird tickets are on sale now and the Call for Papers is now open.


Lately in PHP Podcast Episode 81 - Macros-like in PHP 7.2 Using Arrow Functions
One of the features proposed for PHP 7.2 or the next PHP version is the arrow functions. This is somewhat similar to the macros that exist in other languages, although it is not exactly the same thing. This was one of the main topics discussed by Manuel Lemos and Arturs Sosins in episode 81 of the Lately in PHP podcast. In this episode they also talked about other proposals for future PHP versions like Deprecating bare words that are used as constant strings often by mistake, type checking when calling shared libraries with the FFI extension, a generic HMAC hashing function, namespaces for core extensions, and support for strings with national characters for PDO prepared statements.

Voices of the ElePHPant - Interview with Sherrie Rohde
This week Cal Evans talks to Magento Community Manager Sherrie Rohde.

Three Devs and a Maybe Podcast - Carry On Coding
In this weeks episode we start off the discussion with experiences handling online payments, CRM export integration and highlight how PHPStorm can be a great SQL editor. We then move on to mention a service that allows you to easily manage browser polyfills, and Edd chats about his experience currently making a Nokia ringtone composer web application. Finally, we touch upon handling transactional email, depending on third-party services and using Continuation-passing style within JavaScript.

Full Stack Radio Podcast Episode 60: Michelle Bu - Engineering Payments at Stripe
In this episode, Adam talks to Michelle Bu of Stripe about the new Stripe Elements library, Stripe.js v3, and the Sinatra app that powers their API.

PHP Ugly Podcast #52: Year One
This weeks topics include PHP-ML and Laracon Online.

MageTalk Magento Podcast #121 - International Women’s Day (w/ Sherrie Rohde, Tanya Soroka)
Sherrie and Tanya from Magento join us to talk about the role women play in the #realmagento community.

Free The Geek Podcast: Episode 23 - Talking About Getting Developers to Communicate (and more) With Opélie Lechat
In this episode, I have a fireside chat with Ophelie Lechat, SitePoint's manager of operations We talk about a whole range of topics, but mostly about how to get developers to communicate. I felt that Ophelie was in a unique position, given her wealth of experience across a variety of roles at SitePoint to be able to give the best insights. She shared with me a number of ways that she, and the other staff are able to being, perhaps even the most introverted of developers, out of their shells. So grab your favourite beverage, put your feet up, and come find out how Ophelie motivates developers to come out of their shell, and share what they know with the rest of us.

Laravel News Podcast LN33: Recapping Laracon Online 2017
Jake and Michael recap the inaugural Laracon Online and go over all the latest from the Laravel Community.

North Meets South Web Podcast Episode 24 - Mentoring, Upgrading Config, and Cloud Infrastructure
Jake and Michael discuss self-improvement through mentoring developers new to Laravel, upgrading configuration between Laravel versions, and IAM credentials on cloud infrastructure.

Reading and Viewing

In Laravel 5.5 “vendor:publish” Gets A Provider Prompt
In previous versions of Laravel the vendor:publish command will publish everything it finds, this includes configs, views, migrations, and more. Thanks to Trevor Fitzgerald starting with Laravel 5.5, that is due out in July, running this command without any flags will prompt you to pick a provider or tag to make it easier to only publish what you’d like. Here is a great animated gif showing this action.

Cloudways Interview - Nicolas Grekas Discusses Symfony Versions and
We are extremely delighted to have Nicolas Grekas for this interview. Nicolas is a core contributor to Symfony, and the CTO of, a popular performance management tool. Nicolas is an influential PHP developer and speaker. In addition to development, he loves to speak at PHP conferences and help budding developers kick start their software projects. In this interview he talks about his role at Sensiolabs and how frameworks are better than plain vanilla PHP code.   

Acquia Podcast: Mumbai Memories - Ujval Shah
My trusty microphone, camera, and I recorded a few great conversations in Mumbai that have never been released until now. So let's get started with a little thing I’m calling “Mumbai Memories”. Meet Ujval Shah from the state of Gujarat in India. He’s been doing and evangelizing Drupal for a long time — he’s worked with every version of Drupal from 4.6 to 8! Ujval was part of the first-ever Indian Drupal Camp in Ahmedabad in 2008, and he’s been generously speaking, training, and contributing to open source software for a decade.

Five Minutes with Justin Jackson
Laracon US is still a few months away and this year it has an awesome line up of speakers. One of the new faces is Justin Jackson, who is what you could call a habitual maker. He launches more products than I have ideas. Justin is a former Product Manager and has now transitioned into a full-time product person. He builds products such as Marketing for Developers, runs the MegaMaker podcast, and sells a book named Jolt! What follows is a quick interview with Justin to share some insights into making products and what to expect during his Laracon talk.

PHP Tutorials: Learn in 7 Days
PHP is the most popular scripting language on the web. Without PHP Facebook, Yahoo and Google wouldn't exist. This course is designed for beginners with little or no PHP experience, and is geared to make you a PHP pro. Once you digest all basics, the course will help you create your very own Opinion Poll application.

What Next? Professional Development Advice: A php[architect] Anthology (by Oscar Merida, published 26th February 2017)
This anthology collects articles first published in php[architect] magazine. Touching on topics in professional development, each one will give you advice on the soft, non-technical skills you should cultivate. A successful, long-term career in software development depends on much more than knowing the PHP manual by heart. Make sure you're prepared for the next step.

PHP 7: Design Patterns: An Object Oriented Study (by Sanjib Sinha, published 28th February 2017)
Are you a beginner or an intermediate learner who has been struggling through the maze of OOP and Design Patterns concepts of PHP and you also want to learn the cool new features of PHP 7? Then this book is for you. PHP 7 - is kind of a revolution in the way that delivers enormous power to everything from websites and mobile to enterprises and the cloud. This is the most important change for PHP since the release of PHP 5 in 2004.


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

Performance tests on Mustache and Handlebars PHP libs.

Requests for PHP is a humble HTTP request library. It simplifies how you interact with other sites and takes away all your worries.

A porting of Quickcheck and property-based testing tools to the PHP and PHPUnit ecosystem.

The VObject library for PHP allows you to easily parse and manipulate iCalendar and vCard objects.

ORM framework for Nette\Database.

Whoops is an error handler framework for PHP.

A simple but sturdy support framework.

A PHP profiler & developer toolbar built for Phalcon.

The Ticket Evolution PHP Client is an open source framework created to simplify working with the Ticket Evolution API web service. 

A Simple, EVE Online Corporation Management Tool, written in PHP using the Laravel Framework driven by a MySQL database.

Bart is a PHP project. It originally began its life as a collection of Build and Release Tools used internally at Box. Over time, it's grown into a collection of critical pieces of our PHP frameworks.

PHP Backup utility. Creates and encrypts database and file backups, syncs your backups to other servers or cloud services and assists you in monitoring your backup process.

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 ©