|Welcome to the latest @phpweekly news.
We start with several releases from the PHP development team this week. PHP 7.0.23 and PHP 7.1.9 are both available immediately, and the 1st release candidate for PHP 7.2.0 is ready now for testing.
Also this week, with WordPress being the most popular CMS used right now, take a look at some of the "myths" that have been conjured up about it over the years.
The September edition of php[architect] magazine is out now. Titled Embracing Change, this issue looks at tools you can use to account for changes in your projects.
Plus one of the topics discussed in this weeks PHP Ugly Podcast is version 6 of Laravel Homestead.
And finally, NomadPHP are transmitting a free online presentation next month, Profiling PHP Applications. Either attend live online, or receive a video of the presentation after the event.
Have a great weekend,
Katie and Ade
Please help us by clicking to our sponsor:
Developer's Survival Guide to Email
SparkPost shares 10 things developers might not know about implementing and sending email, and how to navigate them.
The Month in WordPress: August 2017
While there haven’t been any major events or big new developments in the WordPress world this past month, a lot of work has gone into developing a sustainable future for the project. Read on to find out more about this and other interesting news from around the WordPress world in August.
Packaging & Namespacing
The architecture of a system is the high-level view of that system, the big picture, the system design in broad strokes. The architectural decisions are the structural decisions in the system, the ones that affect the whole code base, the ones that define where everything else will be built on top of.
Top 10 Programming Languages of 2017 So Far
In this blog, I am unveiling 10 most preferred languages in 2017 so far. Please note that the top 10 languages I am going to list below are strictly based on GitHub’s recent data and TIOBE Index for June 2017 - the most credible sources to track the popularity of programming languages.
What Laravel 5.5 means for our packages
At Spatie we’ve released a plethora of Laravel packages. Now that Laravel 5.5 has been released most of our packages will get a new (major) version. In this blogpost I’d like to explain how we handle new releases of the framework and what it means for our packages.
A Tale of Two Industries: How Programming Languages Differ Between Wealthy and Developing Countries
Here at Stack Overflow, we’re interested in using our data to share insights about the worldwide software development community. How programming technologies may differ between rich and poor countries, and how that affects our picture of the global software development industry. In this post, we’ll explore these differences, and show that it’s useful to segment the software development industry into high-income countries and the rest of the world.
Debunking 3 Common WordPress Myths
As the largest and most widely used content management system (CMS) on the internet, it should come as no surprise that people are constantly trying to bring WordPress down. Naturally, a number of WordPress myths have been conjured up over the years. In order to be properly informed, you have to make sure you know how to separate fact from fiction.
Tutorials and Talks
Add Your Own Aliases to Laravel Homestead
Laravel Homestead ships with some aliases that get copied into your Homestead virtual machine when you provision it. These aliases are available inside the virtual machine, and you can also add your aliases as well so that you have the same aliases in Homestead that you might use on your local setup. I’ll quickly show you how you can add your aliases.
Automated Changelog in AWS SDK for PHP
Starting with version 3.22.10 of the AWS SDK for PHP, released February 23, 2017, the Changelog Builder automatically processes all changelog entries. Each pull request is required to have a changelog JSON blob as part of the request. The system also calculates the next version for the SDK based on the type of the changes that are defined in the given changelog JSON blob.
Migrations - The Superhero Your Database Deserves
Migrations ease the process of working together on projects, as well as deploying the database changes. A newly released package for the DotKernel stack integrates migrations and seeders into the application; This is all done via the newly introduced “php dot” command that’s available in the DotKernel stack.
Custom Attributes in System Configuration in Magento 2
In one of our current Magento 2 projects we had the need to create a custom shipping method that should not be selectable when there is a product in our cart with a specific value selected in a custom attribute. In order to make it flexible, which values should disable the shipping method, we created a configuration for the shipping method. This way you can change the values in the admin backend without the need to change and redeploy the code. The problem was that you can't simply use the model in the <source> tag of the configuration, but the solution we came up with was quite simple and generic.
Rapid Development of Zend Expressive Modules
I have learned a few tricks when writing Zend Expressive modules that I want to share with you. Please follow the previous post first to set up a proper working environment. I explained how to install and configure Zend Expressive with Doctrine, Gulp, and an abstract reflection factory – it’ll take a total of 10 minutes. In this tutorial, we’ll build a simple read-only blog module (a page listing blog posts from a database) in minutes, demonstrating the kind of rapid development one is capable of with Zend Expressive.
How to Receive SMS in WordPress with a PHP Plugin
In this tutorial, we'll walk through how to set up receiving SMS in WordPress with a PHP plugin. When the pluging is installed you will be able to respond to SMS and handle two-way messaging in your Wordpress sites.
Introducing Slack and HipChat Notifications
At SensioLabs, we understand how important is the integration of a quality assurance tool in your development process. In the last few months, we introduced features to improve this aspect of SensioLabsInsight: GitHub pull requests integration, analysis status favicons, documentation on how to compute statuses for your analyses, etc. To go even further, we have added support for notifications. Notifications are simple configurations you can add to your projects to be notified directly in your favourite messaging app if an analysis succeeded or failed.
Impersonating Users in Laravel
Running an application is a permanent job. So it’s important to have the tools that make our workflow easier and more precise. Impersonating users is a good way to filter the errors/problems out on our users end, by seeing what the user sees. Impersonation is a visual thing; we use the browser for that. So what we want in this case, to impersonate users and revert to our session quickly when we want. Then let’s prepare the routes and the controller for this!
Using the URLGenerator Work in FastRoute
DotKernel 3 uses FastRoute under the hood, which is an excellent and fast routing package, but it does have some quirks. A wrong setup can lead to many headaches, as it’s not prominent that the error you’re experiencing is from FastRoute, and you may not know where exactly to look for the cause. To save you some time, here’s a how-to for creating and using routes in DotKernel 3.
Cancelling ReactPHP Promises With Timers
At first, let’s refresh in memory what is Promise. A promise represents a result of an asynchronous operation. You can add fulfillment and error handlers to a promise object and they will be invoked once this operation has completed or failed. Promise is a very powerful tool which allows us to pass around the code the eventual results of some deferred operation. But there is one problem with promises: they don’t give us much control. Sometimes it may take too long for them to be resolved or rejected and we can’t wait for it. To cancel a promise at first we need to go and create one.
NFC Tag Reader With Raspberry Pi
In another post we spoke about NFC tag readers and Arduino. Today I’ll do the same but with a Raspberry Pi. Why? More or less everything we can do with an Arduino board we can do it also with a Raspberry Pi (and vice versa).
Data Structure and Algorithm - Bubble Sort
In this tutorial, we will learn a simple sorting algorithm - Bubble Sort.
Using DIC The Right Way
DIC stands for Dependency Injection Container, which is a tool that manages the construction and wiring up of application services. It closely relates to the letter "D" of a SOLID acronym - Dependency Inversion Principle and is employed to facilitate adhering to the principle. By their nature, DI Containers are also Service Locator implementations, design pattern that is the exact opposite to Dependency Injection. Because of that, DI Container is a double-edged sword which can mislead you if not used wisely, and ironically bring your code into a state in which there is no dependency injection at all.
Arachne/EntityLoader - Object Parameters for Nette/Application
Ever wanted to get rid of EntityManager::find($id) as the first thing in your every presenter action? With Arachne/EntityLoader you can. Of course it is not limited to Doctrine, you can easily use it with a different ORM library.
Symfony 3 and FOS User Bundle: Customising Users
User handling is a fundamental part of a ton of web projects. This post will walk through how to customise Friends of Symfony (FOS) User attributes and forms in a Symfony 3 project.
|News and Announcements
PHP 7.2.0 Release Candidate 1 Released
The PHP development team announces the immediate availability of PHP 7.2.0 Release Candidate 1. This release is the first Release Candidate 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.
THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!
PHP 7.1.9 Released
The PHP development team announces the immediate availability of PHP 7.1.9. This is a bugfix release, with several bug fixes included. All PHP 7.1 users are encouraged to upgrade to this version.
PHP 7.0.23 Released
The PHP development team announces the immediate availability of PHP 7.0.23. Several bugs have been fixed. All PHP 7.0 users are encouraged to upgrade to this version.
Laravel v5.5.0 Released
Laravel v5.5.0 was tagged today and comes along with Horizon 1.0, API transformations, queued job rate limiting, package discovery, job chaining, and much more.
Laravel Forge Database Selection
Today we are excited to launch a new feature for Laravel Forge: database selection. Previously, all Forge servers were provisioned with both MySQL (or MariaDB) and PostgreSQL. No customisation of this behaviour has been offered in the past.
Profiling PHP7 Applications - October 5th 2017 20:00 CEST
Special free event, presented by Paris Liakos. The release of PHP7 changed the profiling landscape drastically. Xhprof still does not support it and it looks like it will never will. In my talk I’ll provide an overview of PHP7’s forks so far, with a deeper look to the tideways one in combination with the original/default xhprof UI, and a further overview of other available UIs.
Drupal Con - 26-29th September 2017, Vienna
The Drupal community is one of the largest open source communities in the world. We're developers, designers, strategists, coordinators, editors, translators, and more. DrupalCon is an international event that brings together the people who use, develop, design and support the Drupal Platform. Tickets are on sale now.
ZendCon - October 23rd-26th 2017, Las Vegas
Now in its 13th year, ZendCon is the "must attend" event and the largest gathering of the PHP and open source communities. ZendCon brings together industry thought leaders, recognised PHP experts, enterprise decision makers, IT managers, dev and ops teams, and independent developers for four days of professional and business development. ZendCon connects the vast open source ecosystem and provides unique opportunities to engage with prominent speakers, community leaders, and vendors. You'll learn about the latest innovations and network with peers to get educated, advance your coding practices, and solve business challenges. Early Bird tickets are on sale until tomorrow.
MageTalk Magento Podcast #141 - “A Trial Balloon for a Magento IPO”
Kalen records the wrong audio input. Phillip predicts the future and learns to stop talking. Mark Lavelle is *interviewed* on Bloomberg.
Zend Framework Quick Bites Episode 37 - Zend Expressive Essentials Is On Sale!
At long last, I’m excited to say that the Zend Expressive Essentials book is now on sale. It’s been a while in coming, but it’s here. If you weren’t aware that I was writing it, it’s a book that teaches the fundamentals of Zend Expressive so that you can begin building applications right away.
PHP Ugly Podcast #71: The Weekly Postmortem
Topics include Laravel Homestead Version 6 and why using Yoda conditions you should probably not be.
North Meets South Web Podcast Episode 33 - Managing Timelines, Wireframing, and Nested Laravel Applications
Jake and Michael continue with their developing journey and share their approaches to managing timelines. They also talk about different wireframing techniques and setup some future episodes with discussion around containing multiple applications in a single Laravel install.
php[architect] Magazine September 2017 - Embracing Change
Application development is both an art and a science with change at its core. Without the luxury of fixed solutions, how do you cope, much less thrive? This issue looks at tools you can use to account for changes in your projects.
Cloudways Interview - John Eckman on WordPress Project Development
State Of The Gopher Nation - August 17
I am at GolangUK in London, having just finished giving the opening keynote. I was a bit more nervous than usual, in part, due to the length of time since my last talk, and in part I was representing the entire Go project for the first time in a keynote. This talk is an overview of the entire Go project. It covers “what we’ve done”, “why we did it” and “where we are going” as a project. It highlights our accomplishments, challenges and how the Go Project is working on our challenges.
Sound Synthesis with the Web Audio API
The Bloggers Guide to WordPress Security
Roughly 30,000 websites are hacked every day. Could your website become one of them? In a perfect world, using a popular content management system like WordPress would end many security woes - but unfortunately, that's not the case. We've compiled a complete, all-in-one guide to "hardening" and protecting your WordPress blog. And it's a little long - but most of the steps that you're going to have to take are only going to have to be taken once. By the end of this guide, you'll know absolutely everything there is to know about WordPress safety and security.
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 firstname.lastname@example.org
Interesting Projects, Tools and Libraries
Provides Laravel-specific and pure PHP helper functions.
Official PHP client for the Keen IO API. Build analytics features directly into your PHP apps.
A data mapper implementation for your persistence model in PHP.
A highly customisable, open source server software for Minecraft: Pocket Edition written in PHP.
A fast, extensible & stand-alone PHP input validation class that allows you to validate any data.
Database access functions in PHP are not standardised. This library hides the differences between them, and above all, it gives you a very handy interface.
Fully functional Open Source email marketing manager for creating, sending, integrating, and analysing email campaigns and newsletters.
A powerful Laravel help desk and lead management app.
Web-app for processing, logging and visualising energy, temperature and other environmental data.
Open-source software for volunteer computing and grid computing.
A standalone PHP script to help end-users collect and subsequently post diagnostic and configuration information in to a forum post when asking for assistance to resolve problems or issues with their Joomla! web-site.
Please help us by clicking to our sponsor:
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?