|Here we are again PHP fans, with your latest edition of phpweekly.com.
We start with several releases from the PHP development team this week - PHP 5.6.20, 5.5.34 and 7.0.5 are all available now.
Also this week we bring you 14 different podcasts, covering a mixture of topics including Zend, Magento, Symfony, Laravel and WordPress.
The NomadPHP team brings us the latest lightning talk on their blog, looking at moving from MySQL to Elasticsearch for their social media analytics platform.
Plus we have the second part of the PHP migration guide, looking in more detail at the new features and improvements in PHP 7.
And finally, PHP South Coast has been announced for June, in a unique Maritime venue in Portsmouth's historic dockyard. Tickets are on sale now.
Enjoy your read,
Katie and Ade
We love our sponsors. Why not try them?
Launch of the Aaron Winborn Award 2016
Last year, in honour of long-time Drupal contributor Aaron Winborn, whose battle with Amyotrophic lateral sclerosis (ALS) (also referred to as Lou Gehrig's Disease) came to an end, the Community Working Group, with the support of the Drupal Association, launched the Aaron Winborn Award. This year the nominations are open until 10th April 2016 (Midnight GMT).
7 Proven Strategies for Enhancing Online Shopping Experience
In this article, we will discuss 7 proven strategies for enhancing the shopping experience of the people visiting your online shop, so that they enjoy the ultimate ease and comfort of finding their desirable products.
The Story Behind wyrihaximus/react-filesystem-flysystem
Ever since Frank de Jonge created Flysystem there have been questions about it supporting async. While I've initially said no, here is the story of how it happened anyway.
Toran Proxy Updates
Over the last month I spent quite some time bringing Toran Proxy up to speed with the times, and added a few features along the way. I haven't blogged about it in a while so I thought an update was overdue.
Paying Technical Debt - How To Rescue Legacy Code through Refactoring
How can you get a legacy codebase under control and bring it to a new level of maturity? This post summarises my advice and lessons learned from years of working on a large legacy web application.
PHP 7 Is Gaining Momentum
We’re now a few months since PHP 7 came out, and if you’ve been following what’s going on in the PHP world, things are looking pretty exciting!
Tutorials and Talks
Handling Intensive Tasks with Laravel
In today’s tutorial, I demonstrate how an application’s user experience may be improved (with minimal developer effort) by separating long-running tasks from the main request flow using Laravel. By making use of PHP’s ability to spawn separate processes that run in the background, the main script will respond faster to user action. Thereby, it better manages user expectations instead of making them wait for ages (without feedback) for a request to finish.
PHP 7 Migration Guide Part 2: 19 New Exciting Features In PHP 7
PHP 7 was a great step forward in the evolution of PHP. Many things were added, changed and removed. The first part of this article covered the things that were changed or removed and may break your PHP code that ran with the past versions. Read this article to learn more in detail about the new features and improvements of PHP 7 that you can take advantage of.
Application Configuration Management. What's your Approach?
You might have noticed this configuration management pattern in some popular frameworks, such as Laravel or Lumen, where they have a bunch of configuration files placed in a directory, and each of the files is doing nothing but returning an array consisting of configuration variables. And then they expose some magical functions to retrieve any of the configuration. I recently created an SDK for an API where I used the similar approach for the configuration management.
Control User Access to Classes and Methods with Rauth
Rauth is SitePoint’s access control package for either granting or restricting access to certain classes or methods, mainly by means of annotations. In this tutorial, we’ll learn how to use it.
Counting and Grouping Database Records Using Laravel
It’s often useful to count the number of times a column value appears in a database table. However doing so using Laravel’s fantastic ORM might not be so obvious. In this post, you’ll learn how to use Laravel’s Query builder to easily group records according to a specific column and order the results.
Building an API for 3rd Party Applications
APIs are cool, & Laravel can handle all the coolness you may desire. Here we talk about building an API for third party applications and allowing them to communicate with your application on behalf of users.
Dockerise Your PHP Application with Nginx and PHP7-FPM
Before we start, we have to agree on one thing – Docker is super cool! If you are not familiar with Docker, I suggest to have a look at the tons of “Getting starting with Docker” or “What is Docker?” articles and then come back here. :) Since you kept reading, I will assume that you already have some Docker experience and you want to run your PHP applications in containers. Because who wants the trouble of installing all the dependencies on their local environment or manage a number of virtual machines for their different projects, right? Right!
Validation Rule “sometimes”: Apply Rules Only if Field Exists
Recently I’ve found out an interesting validation rule for form fields in Laravel, and I want to briefly tell you about it.
Using Mink in PHPUnit
Another day for a short PHPUnit trick. If you want to use PHPunit to control a browser for functional or acceptance tests, then you can easily do this using the Mink library. Mink is well known from the Behat community to facilitate Behaviour-Driven Development (BDD), but it is a standalone library that can be used with PHPUnit just as easily.
Streaming PHP - Disabling Output Buffering in PHP, Apache, Nginx, and Varnish
For the past few days, I've been diving deep into testing Drupal 8's experimental new BigPipe feature, which allows Drupal page requests for authenticated users to be streamed and loaded in stages - cached elements (usually the majority of a page) are loaded almost immediately, meaning the end user can interact with the main elements on the page very quickly, then other uncacheable elements are loaded in as Drupal is able to render them.
Theming Views in Drupal 8 – Custom Style Plugins
In this article, we are going to look at how we can create a custom Style plugin for Views in Drupal 8. We will use the Bootstrap tab markup as a goal and implement a tabbed output for our View results.
Fast Debugging of PHP Code Using PHPEd Part1: Finding Bugs in Code Running on a Web Server
Debugging PHP code is a crucial activity that most developers have to do frequently. Sometimes simple echo or error_log calls will do, but for more complicated bugs, a single step debugger integrated with your IDE is the way to go to understand what is wrong. PhpED is one of the oldest PHP IDEs that integrates this possibility to debug PHP scripts, running them step by step either from a command line, or even in a Web server which is the most common and hard to debug environment. Read this article to learn how PHP code debugging works and how you can do it from the comfort of a PHP IDE like PhpED.
|News and Announcements
PHP 5.6.20 is available
The PHP development team announces the immediate availability of PHP 5.6.20. This is a security release. Several security bugs were fixed in this release. All PHP 5.6 users are encouraged to upgrade to this version.
PHP 5.5.34 is available
The PHP development team announces the immediate availability of PHP 5.5.34. This is a security release. Several security bugs were fixed in this release. All PHP 5.5 users are encouraged to upgrade to this version.
PHP 7.0.5 Released
The PHP development team announces the immediate availability of PHP 7.0.5. This is a security release. Several security bugs were fixed in this release. All PHP 7.0 users are encouraged to upgrade to this version.
SymfonyLive - April 27-29th 2016, Cologne
We are happy to announce SymfonyLive Cologne 2016. This time, the conference will kick off with two workshop days, with the main, single track conference on Friday 29th April. Of course, there is going to be a hack day as well on Saturday at the Cologne SensioLabs office. There are some Late Tickets still available.
China PHP Conference - May 14-15th 2016, Beijing
This two day event in Beijing will host over 700 PHP developers and technical managers. Several PHP experts have already been confirmed to speak, including Rasmus Lerdorf. Tickets are on sale now.
PHP Serbia Conference - May 28-29th 2016, Belgrade
PHPSerbia Conference delivers high-value technical content about PHP and related web technologies, architecture, best practices and testing. It offers two days of amazing talks by some of the most prominent experts and professionals in the PHP world in a comfortable and professional setting. Tickets are on sale now.
PHP South Coast - June 11th 2016, Portsmouth
This one day event will be packed with excellent talks from speakers around the world, followed by dinner and an evening social. Tickets are on sale now.
PHP Articles Report March 2016 Edition
This is the March edition of the podcast hangout, recorded by Manuel Lemos and Arturs Sosins, to comment on the latest outstanding PHP Articles published recently. They commented on articles about using caching with AWS S3 to reduce costs and increase speed, developing applications that use Google search API to find how high your sites rank, interacting with users via SMS messages with the dotGo engine, and the salary you could be earning as a software developer in different cities.
Zend Framework Quick Bites - Episode 1
This is the prelude, where you'll find out what the show's about, what you can expect, and what's coming up in future episodes.
Three Devs and a Maybe Podcast - Where is The Value? With Joe Watkins
In this week’s episode we start off the discussion with a recent PHP RFC Joe has been working on in regard to typed properties, bringing up the value (if any) surrounding getters and setters. We then move on to Joe’s views on designing a programming language, and his mind-set that there should be no defined scope surrounding the features that the language should adopt. Finally, we wrap up the show with an update on how stabilisation of uopz is going for PHP 7, along with a reflection on the ‘Hacking on PHP 7’ screencasts we released earlier this month.
That Podcast Episode 28 - Work, Work, Work
Beau and Dave talk about some of their recent work efforts, Dave's first look at DynamoDB, other AWS services, migrating event streams, email integration with Context.io and the challenges of maintaining privacy with such systems.
Sound of Symfony Podcast: Episode 13 - E-commerce with Paweł
In this episode we talk about e-commerce on Symfony in general, and using Sylius in particular with our special guest, Paweł Jędrzejewski.
The Changelog Podcast #197: The Future of WordPress and Calypso with Matt Mullenweg
Full Stack Radio Podcast Episode 39: Michael Feathers - First Class Error Handling, Tell Don't Ask, and Collection Pipelines
In this episode, Adam talks to Michael Feathers, author of Working Effectively with Legacy Code, about strategies for writing cleaner error handling code, the "tell don't ask" principle, and transforming data with collection pipelines.
Acquia Podcast - Election Commentary: Drupal Association Director at Large 2016
Thanks to everyone who put yourselves out there and ran in this election, and congratulations to our newest board member, Shyamala Rajaram! I’m certain you will use this power for good :-) I sat down with Michael “Schnitzel” Schmid in my office in Cologne to talk about the 2016 election for a Director at Large Drupal Association Board position. Schnitzel was a candidate and the election had just concluded when we spoke.
MageTalk Magento Podcast #86 - “The Purple Hydra in the Room” (feat. Yoav Kutner & Dima Soroka)
"Road to Imagine" week begins today with a special interview with Yoav Kutner and Dima Soroka of Oro.
Run Geek Radio Podcast: Episode 11 - Refactor Saves Time and Debugging
This episode shares thoughts about how developers can often find themselves wasting time while tracking down an issue, even though a quick refactor might fix or highlight the issue, saving themselves and their company time and money.
Free The Geek Podcast: Episode 15 - Talking Sunshine PHP, Project Estimates, and Conferences with Adam Culp
In this episode I chat with Adam Culp, founder of the Sunshine PHP, in sunny south Florida, about starting and running conferences, project estimates, and being professional developers.
Laravel News Podcast LN13 - Still Good Stuff to Talk About Before Spark!
In this episode we talk about Laravel Exception Reporter, Chrome Bandwidth limiter, Chrome extension to generate Laravel tests, Jigsaw, Helpspot Vault, Fixing MySql Memory, Sparkwatch, Taxes, and Jack runs into a Laravel problem that Eric helps with.
LaraChat Live - Episode #4
Tools, Tools, Tools!
The Laracasts Snippets Episode 20 - You Have To Be Meticulous
In the early days of my coding career, I had a tendency to spike things out. Go fast, toy around, get it to work, and then hit deploy...all while quietly saying to myself, "I'll go back and clean this up later." But I rarely actually did...
Using Flexbox to Build Mobile Responsive Web Designs
In Episode 67 of the John Morris Show you’ll learn how to use flexbox to build mobile responsive web designs, how to write job proposals on Upwork that win, losing the “WordPress is for suckers” mindset and more.
php[architect] Magazine April 2016
I’m excited to see the Drupal and PHP communities building bridges to collaborate (“Getting off the island” as Larry Garfield likes to say) and also learn from each other. This month, we’ll look at how the Drupal project has embraced tools and techniques like object-oriented programming and Composer.
Voices of the ElePHPant - Interview with Chris Cornutt
Cal Evans and the team have posted their first video podcast, recorded live at php[world]2015. Cal talks to Chris Cornutt, organiser of the Dallas PHP user group and the Lone Star PHP Conference.
Making the Move to Elasticsearch
This talk will examine a real business case, where increased data analytics demands required a change of database. The team adopted Elasticsearch to replace MySQL for our social media analytics platform, Blurrt. It will examine the problems encountered with MySQL, how we tried to resolve them, and what alternative DBs we looked at. We’ll walk through the implementation strategy, highlight teething issues, and finally look at Elasticsearch’s setup, “gotchyas” and quirks.
Peter Gasston – Commoditization of Artificial Intelligence
In this episode I talk to Peter Gasston. Peter is a front-end developer and web technologist who works for a company named +rehabstudio. He’s based in London and is known for his presentations and his book about CSS3. Peter’s domain is not solely confined to CSS, he uses web technology to solve obstacles and problems.
Meet the PHP Developer Behind Monitoring Tool JaM
Jess Portnoy is a prolific PHP developer and open source geek with lots of helpful data and web data on SourceForge and GitHub.
“PHP 7 Has Unlocked A Few Interesting Features We All Wanted,” Said Danny Kopping, Zando’s PHP Lead Developer
Danny Kopping is a very young and energetic lead developer at Zando, a South African Ecommerce Store. He is from scenic Cape Town, South Africa. He believes in quality code. He is also a firm believer of mentoring within the workplace environment. He runs his own blog, informaniac. He has been a part of PHP South Africa in 2013. He has been contributing in open source technologies. In this interview, he shares his opinion about using PHP for ecommerce stores. He also talks about his early days at development and the good things about being a part of PHP communities.
Learning PHP 7 Video, by Nicola Pietroluongo
Leverage the simplicity and power of PHP 7 to develop feature-rich web applications.
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
PHP desktop GUI framework with HTML5 Chrome/IE engine.
A wrapper around the Google Geocoding API.
Solid libraries for rapid PHP development.
Artificer is an admin package built on top of your Eloquent models.
A lightweight PHP namespace aware autoload generator.
Config is a lightweight configuration file loader that supports PHP, INI, XML and JSON files.
Light & tiny micro PHP framework scales from small to big applications.
An api-driven CMS without forcing you to make compromises in how you implement your site.
A set of iterators based on pythons itertools.
Mocks, stubs and spies for PHP.
REST-like PHP micro-framework.
A full-fledged, zero-configuration mocking framework for PHP.
CSV data manipulation made easy in PHP.
Skeleton for Bluz, a lightweight PHP framework.
The official PHP client for Stream, a web service for building scalable newsfeeds and activity streams.
All in one PHP user authentication class.
A detached logging facility for PHP to aid your daily development routine.
PHP Client and Router Library for Autobahn and WAMP.
|Please help us by clicking to our sponsor:
From our sponsors:
So, how did you like this issue?
Protect your PHP code with SourceGuardian 10. Free trial.