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!

December 22, 2016

Happy Thursday people! And for those of you celebrating this festive period, Seasons Greetings.

SourceHunt Xmas 2016 is out now, giving the gift of open source prestige!

Also this week, we have the first part of a tutorial series on Creating a Custom WordPress Messaging System, that will cover setting custom messages and how to display them on an admin page.

PHP Benelux takes place in just a few weeks time at the end of January, over two days. The final few tickets are on sale now.

Plus the Cloudways team interviewed one of their favourite members of the Magento community last week, Lorena Ramonda of BitBull.

And finally, the end of the year episode of the dev/hell podcast is out this week, titled Brand Dilution as a Source of Happiness. 

Enjoy your read PHP fans.

Happy Holidays to one and all!

Katie and Ade

We love our sponsors. Why not try them?

 From our sponsors:
devRant the Dev Community Join our community of 15k+ developers & programmers to share and bond over fun rants & stories about code, tech, and life as a programmer (on iOS, Android & web)

(ads by LaunchBit) 


SourceHunt Xmas 2016 – Give the Gift of Open Source Prestige
We’re at this year’s precipice, and it couldn’t have been a better one. How about we make it even better for some packages and libraries in dire need of contributors and stars? This Xmas, let’s give the gift of open source prestige!

Habits of Highly Productive Individuals
We’re all concerned about maximising what we can do in a day. Case in point: there are thousands, possibly millions, of articles on the internet devoted to productivity. There are just as many apps out there dedicated to helping you manage time and workflow. But personally, I’m all about picking up habits that will net me the most significant results day to day. So here are the three things that will make positive changes in your daily productivity.

Introducing Private Packagist
We are extremely excited to announce our newest product addition to PHP dependency management: Private Packagist. A service designed to help businesses of any size use Composer more effectively and with greater confidence.

Promoting Drupal Solutions by Industry Vertical
Earlier this year, I talked about The Drupal Association stepping further into its mission to better promote Drupal through its channels - especially via With 20 million unique visitors annually, is a powerful tool to help evaluators move through their Drupal adoption journey. However, our research showed that technical evaluators didn’t find the information they needed and they ultimately left the site to find Drupal information elsewhere. It was a real missed opportunity that we wanted to solve.

Package Development Standards: “pds/skeleton” Now Open For Review!
The new Package Development Standards initiative is proud to present its first publication, pds/skeleton (and the related research) for public review. If you are a package author, you are invited to post your comments and criticisms of the publication as issues on the relevant Github repository.

Tutorials and Talks

Frameworks: Because Stack Traces Should be 60 Lines Long
Other people can better explain why composing libraries is better than using a framework. If you don't want to read much then I can still persuade you that working with (and thus debugging inside) a framework is no joy.

What Are Polymorphic Relations and How Do We Use Them with Eloquent?
While I was working on an application for a client, I had to implement a new module that entails the following: users ask for a budget quotation for a certain task, every task has a location, professionals can subscribe to different zones, and a zone can be a region or a city. Now, let’s neglect the core application and try to implement this single module to see what we can achieve here.

Scaling Laravel Using AWS Elastic Beanstalk Part 1: Setting up Laravel
In this short series I’m going to go through the process of setting up a Laravel 5.3 app on AWS Elastic Beanstalk. I’m also going to cover setting up some supporting services that large scale Laravel apps would require.

Building Your Startup: Delivering Notifications
This tutorial is part of the Building Your Startup With PHP series on Envato Tuts+. In this series, I'm guiding you through launching a startup from concept to reality using my Meeting Planner app as a real-life example. In the prior episode, I described building the infrastructure for tracking changes to meetings so we would know how to share updates with participants. In this episode, I'll cover monitoring the log and delivering email notifications of changes.

PHP 7 Performance Improvements (3/5): Encapsed Strings Optimisation
Julien Pauli, PHP contributor and release manager, details what changed between PHP 5 and PHP 7, and how to migrate and make effective use of the language optimisations. All statements are documented with specific examples and Blackfire profiles. Third episode: Encapsed strings optimisation dropping CPU usage by a factor of 10.

New in Symfony 3.3: Improved the Profiler Configuration Panel
In the Symfony Profiler, the Configuration panel shows the value of some of the most important PHP and Symfony configuration options. This panel is specially useful for Symfony newcomers, because it helps them spot problems like not having enabled a PHP accelerator or having enabled a wrong set of bundles. However, this panel lacked some important information.

Laravel Collections Now Include A Partition Method
A new feature that just arrived in Laravel 5.3 is a new Collection Partition method that allows you to separate results into two elements.

Designing Immutable Concepts with Transient Mutation in PHP
In a recent project we felt it beneficial to introduce the Money pattern. There are many good resources on this pattern, so I will delegate to those for further definition. We decided that encapsulating this into a immutable value object allowed for a cleaner API and removed the fear of any unexpected mutation bugs. However, we noticed a spike in memory and processor usage when wishing to perform many successive actions on such values i.e. summation.

A Little Trick for Grouping Fields in an HTML Form
Imagine this scenario: You have a group of fields that represent a person. Maybe the form you're building allows you to create a company, but you also want to be able to add employees of the company. You don't know how many employees your users will add, so you add a little JavaScript button that makes it possible to add more. How do you name your fields?

Where Is The Intl PHP Extension? Problem Solved!
PHP packages/frameworks/libraries/scripts we work with might require different PHP extensions. In this case the Intl extension is needed to work with using Internationalisation Functions. Parts of this tutorial can be also a guide for installing or enabling other extensions.

Creating a Custom WordPress Messaging System, Part 1
It's possible to implement a system that allows us to programmatically set our own custom messages, their type, and when and where to display them on the administration page. That's what this series is going to cover. Earlier this year, we worked through a series of tutorials covering the process of creating custom administration pages in WordPress. Though this series is not necessarily a prerequisite for the material we're about to cover, it wouldn't hurt to review it.

osClass 3.6.1: Remote Code Execution via Image File
In todays calendar gift, we present another beautiful chain of vulnerabilities which, in the end, allows an attacker to remotely execute arbitrary PHP code. This time, an attacker can smuggle his PHP payload through a valid image file. The issues were detected by RIPS in the open source marketplace software osClass 3.6.1 used for creating classifieds sites.

Creating Virtual Pages with Sculpin
Previously we looked at how to use the static site generator Sculpin to generate in-project documentation. When Sculpin builds the HTML files and assets it looks at what files are in the source/ directory and processes them based on certain rules (e.g. "parse Markdown files", "format HTML files with Twig", etc.). The purpose for my "living documentation" project is to also dynamically generate documentation based on PHP and configuration files from the main project. For example, consider extracting a Composer dependency diagram. I don't want to manually copy the diagram and an HTML template to the source/directory. I want Sculpin to generate a current diagram on-demand and wrap it inside a template.

Let’s Kill the Password! Magic Login Links to the Rescue!
Authentication is something that has evolved over the years. We have seen it change from email – password combination to social authentication, and finally password-less authentication. Actually, more like an “email only” authentication. In the case of a password-less login, the app assumes that you will get the login link from your inbox if the email provided is indeed yours.

Playing With Arduino, IoT, Crossbar and Websockets
Yes. Finally I’ve got an arduino board. It’s time to hack a little bit. Today I want to try different things. I want to display in a webpage one value from my arduino board. For example one analog data using a potentiometer. Let’s start.

How To Load Product By ID In Magento 2?
Many developers ask how to retrieve particular product information in Magento 2. Object manager and factory method are the two different ways to retrieve the product information. However, Magento recommends using the factory method to retrieve any product information. Whether you are developing an extension or a theme, avoid using the Object method as you may receive technical rejection while submitting your extension to the Magento marketplace. Here in this blog, we will be sharing the both methods as in times developers have to go by the Objectmanager to retrieve product information.

Natural Language Sorting with MongoDB 3.4
Arranging English words in order is simple - most of the time. You simply arrange them in alphabetical order. Sorting a set of German words, or French words with all of their accents, or Chinese with their different characters is a lot harder than it looks. Sorting rules are specified through locales, which determine how accents are sorted, in which order the characters are in, and how to do case-insensitive sorting. There is a good set of those sorting rules available through CLDR, and there is a neat example to play with all kinds of sorting at ICU's demo site. If you want to know how the algorithms work, have a look at the Unicode Consortium's report on the Unicode Collation Algorithm.

Uncaught Module Definition Dependency Not Found: tinymce/util/Delay in Wordpress
Sometimes we face this issue showing in our console. We are talking about the case when we find this error while working with WordPress. I have also faced this issue and have found a solution for it. Sharing the solution here, it may save someones time.

Sessions in PHP 7.1 and Redis
In case you have missed it, PHP 7.1.0 has been released recently. Now you can’t wait to upgrade your servers to the latest and greatest PHP version ever. But hold that thought a second… With PHP 7 lots of things have changed underneath the hood. But these changed features can also put unexpected challenges on your path. One of these challenges that we faced was getting PHP 7.1 to play nice storing sessions in our Redis storage.


Announcing: PHP API Clients
For a while now I'm been working on a new huge project. Been tweeting about it for a while as welland since it is my birthday I like to give the PHP community a "little" present. It is time to officially announce: PHP API Clients.

PHP Benelux Conference - January 27-28th 2017, Antwerp
The conference and tutorials will take place at Hotel Ter Elst in Antwerp (Belgium). Friday morning January 27th we have a set of tutorials. The conference is spread over 2 days: Friday afternoon (after the tutorials) and Saturday. Tutorials as well as the conference itself are spread over several parallel tracks. On Friday and Saturday evening, we’re having the conference social. This will include drinks and all the cool side activities. Final tickets are on sale now.

PHP UK Conference - 16-17th February 2017, London
PHP UK is pleased to announce the 12th Annual PHP UK conference; a 2-day event with 3 great tracks held at The Brewery, in the heart of the City of London. With over 700 delegates, speakers, and sponsors, PHP UK conference aims to deliver fantastic up-to-date content about PHP and related web technologies in a comfortable and professional setting. There are countless networking opportunities to engage with international speakers and delegates, which makes the event one you won't want to miss. Final tickets are on sale now.

ConFoo - 8-10th March 2017, Montreal
ConFoo Montreal is a multi-technology conference for web developers, offering a great diversity in content to expand your knowledge and increase your productivity. Learn from 100 international experts. Discounted tickets are on sale now.

International PHP Conference - May 29th-June 2nd 2017, Berlin
The International PHP Conference is the world’s first PHP conference and has been going for 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. Early Bird tickets are on sale now.


dev/hell Podcast Episode 85: Brand Dilution as a Source of Happiness
Welcome to our end-of-year episode! It has been probably the most gratifying year in a long time for both Chris and Ed. Chris' work at Mozilla has really changed his perspective on the value of the open web and his future. Ed finally got the chance to sink his teeth into a true leadership role at GraphStory and with a lot of help OSMI became a non-profit poised to continue doing excellent work in the field of bringing awareness to mental health issues.

Three Devs and a Maybe Podcast - Macro vs. Micro Vision
In this weeks episode we start off by congratulating Mick on handing in his masters dissertation. We then move on to discuss decision trees, ordinal regression and genetic algorithms. Edd then mentions managing large tables in Postgres, MVCC, Fill factors and Vacuuming a table. From here we highlight an interesting JavaScript Unicode/New-Line length issue that occurred recently. Finally, we touch upon testing time-dependent processes in isolation, dreaded CRM integration and sign-up processes.

That Podcast Episode 35: Stuff
Beau and Dave talk about stuff, including a voicemail from @jwage, generating ideas and discussion on twitter, new services we've seen or are using, the difference in number of attendees between European and US conferences, bucket list type things, what we're watching and planning on watching on TV.

Lately in PHP Podcast Episode 78 - PHP 7.1 Performance Benchmark Shows it is 27 Times Faster than PHP 5
Now that PHP 7.1 has been released, pure CPU benchmarks reveal it is 27 times faster than PHP 5.0. This was one of the main topics discussed by Manuel Lemos and Arturs Sosins in episode 78 of the Lately in PHP podcast, now also being streamed using In this episode they also talk about the upcoming PHP 5.6 end of life, features being deprecated and more being proposed for PHP 7.2 like interval comparison, type locked variables, function overloading by extensions, the latest PHP modern practices evolution steps, etc..

Acquia Podcast: PHP FIG, Unsplintering PHP For Us All - Meet Beth Tucker Long
This conversation with Beth Tucker Long (@e3bethtl) is the one of a series of interviews Campbell Vertesi (@CampbellVertesi) and I carried out in preparation for DrupalCon Asia in Mumbai. Now, we're sharing all the good stuff we captured but didn’t have time to cover in 40 minutes in Mumbai.

MageTalk Magento Podcast #111 - “Manchester’s Crap” (w/ Jon Woodall and Tony Brown of Space48)
2016 in Review from the perspective of the MageTitans founders Tony and Jon.

PHP Ugly Podcast #39: One More Second
Topics include what’s new in Git 2.11, the release of Laravel v5.3.25, and the release of PHP 7.1.0 plus 9 new features you need to know.

Reading and Viewing

Cloudways Interviews Amazing Lorena Ramonda of BitBull
Christmas is just around the corner, and Cloudways is happy to kick off the holiday season with an interview with one of the best in the Magento Community. Consider this a gift, as we have been saving the best for last. We interviewed  Alessandro Ronchi and Irene Iaccio from Bitbull, and today we are going to introduce another illustrious member of the Bitbull family, Lorena Ramonda.

Voices of the ElePHPant - Interview with Paul M.Jones
This week Cal Evans interviewed PHP expert Paul Jones, and you can watch the video here.

Laravel - Up and Running: A Framework for Building Modern PHP Apps Paperback (by Matt Stauffer, published 25th Nov 2016)
What sets Laravel apart from other PHP web frameworks? Speed and simplicity, for starters. This rapid application development framework and its vast ecosystem of tools let you quickly build new sites and applications with clean, readable code. With this practical guide, Matt Stauffer-a leading teacher and developer in the Laravel community-provides the definitive introduction to one of today's most popular web frameworks.

Selenium Webdriver in PHP Kindle Edition (by Paul Watson, published 27th November)
This book is for automation engineers who want to learn Selenium in PHP to automate the web applications. It is assumed that reader has basic programming skills in PHP language. Whether you are a beginner or an experienced developer, this book will help you master the skills on Selenium in PHP.

WordPress: Creating Visual Web & Membership sites using Beaver Builder and Insta-Member Kindle Edition (by Eric Rovelto, published 9th December 2016)
WordPress is possibly the number one tool on the Internet today for creating and maintaining web sites. It is estimated at six out of ten sites on the web are using WordPress as their back end and this number is only expected to rise in the years to come. In this book we are going to go into the setup and installation of WordPress on a new hosting account. I will then go into my list of personal plugins and tools that I recommend you download and install on your WordPress site.


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

Yang is a PHP framework which helps you to communicate with JSON:API servers more easily.

Zen is a very fast and simple, Container-Interop (PSR-11) compliant DI Container.

The Keen IO API lets developers build analytics features directly into their apps.

The fast, secure and professional PHP framework.

This project backports features found in the latest PHP versions and provides compatibility layers for some extensions and functions.

Get transparent object-oriented interaction with WebMoney API.

Generate PHP code with a simple programmatical API.

Pure PHP implementation of a control flow graph (CFG) with instructions in static single assignment (SSA) form.

This tool check syntax of PHP files faster than serial check with fancier output.

A PHP code quality tool with git hooks and custom commands.

Web based groupware server written in PHP.

Social network created with PHP and Laravel.
Please help us by clicking to our sponsor:

 From our sponsors:
devRant the Dev Community Join our community of 15k+ developers & programmers to share and bond over fun rants & stories about code, tech, and life as a programmer (on iOS, Android & web)

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