|Hi PHP fans, welcome to your latest edition of PHP weekly news.
In 2006, Rob Allen announced the first code release of the Zend framework. Ten years on, ZF1 will officially come to an end next month.
Also, following on from last weeks look at Grav plugins, we take a look at some additional, more advanced ones, rounded off with a Varnish installation.
With the chatbot topic really big at the moment, we look at experimenting with chatbots and how to build your own.
Plus, the Three Devs and a Maybe podcast team discuss the world of Amazon Web Services this week, starting with the AWS Summit last month in London.
And finally, sadly the SymfonyLive conference team has announced that they have had to cancel this years Chicago conference, booked for October.
Wishing you all a great weekend,
Ade and Katie
We love our sponsors. Why not try them?
From our sponsors:
What’s New On Drupal.org? - July 2016
The Drupal Association engineering team has been continuing to refine our focus for the next 12 months. In July, we worked through the details of setting new priorities for our work, after the organisational changes earlier this summer. As part of this prioritisation process, we've set up a technical advisory committee to help us refine the roadmap for Drupal.org for the short term - while the Association is focused on fiscal health and sustainability - and will provide strategic vision for the long term, as our fiscal stability improves. So without further ado, let's talk about what we did in July.
I consider myself a searcher. On a quest to find the Holy Grail of programming practices - that single practice which instantly levels up my skills. While I know this doesn’t exist, I do believe in a set of practices. Recently, I found one to be YAGNI. YAGNI is a principle of eXtreme Programming - something I practice daily at work. YAGNI is an acronym for You Aren’t Gonna Need It. It states a programmer should not add functionality until deemed necessary. In theory, this seems straightforward, but few programmers practice it.
Joind.In Needs Help - Passing On The Baton
Joind.in is a tool to allow attendees at conferences or other events to offer immediate public feedback to speakers and organisers at those events. Joind.in is an open source project run by volunteers. For the last 6 years Lorna Mitchell has been a maintainer of this project, along with Rob Allen. Due to other commitments, they have both agreed it's time to step aside and let others take up the baton.
10 Years Since My ZF Tutorial
Incredibly, it's been 10 years since I announced my Zend Framework 1 tutorial! The first code release of Zend Framework (0.1.1) was in March 2006 and I wrote my tutorial against 0.1.5. Just under a year later, in July 2006, version 1.0 was released and I updated my tutorial throughout all the releases up to 1.12. ZF1 had a good run, but all good things come to an end and the official end of life for ZF1 is 28th September 2016. I'm proud that the ZF1 community has been able to maintain v1 for so long after ZF2 was released.
Tutorials and Talks
Always Use Caret Instead of Tilde
I’ve been noticing people having trouble understanding the differences between the caret (“^”) and the tilde (“~”) operator in the composer.json file. Composer’s documentation is great but a bit short, which is why I write this blog post.
How to Configure MailCatcher with Laravel
Ensuring that emails are sent, and are rendered exactly how I want them to be has always been a challenge. Sending an email is cumbersome, and requires a mail server being set up, and has to actually send an email to a recipient. Using MailCatcher with PHP/Laravel allows a developer to view sent mails and verify application mail functionality while excluding external factors, such as mail servers. This setup assumes an IP of 192.168.10.10 is used to configure mail catcher, so replace this IP with the IP in your homestead.yaml. MailCatcher's Web site provides full documentation.
6 More Must-Do Grav Tweaks: Ready for Hacker News Traffic!
We previously looked at some essential Grav plugins with which to round off the installation of a personal blog. In this post, we’ll take a look at some additional, advanced plugins, rounding it all off with an installation of Varnish for supercaching, taking performance to a whole new level.
Exporting Globals in PHP
I am currently modernising a legacy PHP application for a client. (The codebase was written earlier this year, in fact; new code can be “legacy” from the outset.) The original developer pulled a dirty trick with global that I had not seen before, and I thought I had seen everything.
Delivering Files With PSR-7
When it comes to reading and returning the contents of a file in a PSR-7 middleware, most developers seem to use code that does the following: Read the file first, then write it to the response body. This works fine but can simplified quite a bit.
Adding Custom Hooks in WordPress: Custom Actions
One of the cornerstones of building custom solutions in WordPress is having an understanding of hooks. In and of themselves, they aren't terribly difficult to understand, and we'll be covering a short primer on them in this tutorial. In this two-part series, we're going to review the WordPress hook system and how it's implemented, and we're going to take a look at how to define both our own actions and filters.
Chronos – Let There Be Time
In PHP most know of the DateTime class to handle date and time. At least with more modern PHP versions it is now not advised anymore to use the plain old date() and time() functions. The use cases – especially with a more global world – these days more often include correct time zone handling as well as more robust delta handling. But using objects also means you have to be more careful about (accidentally) modifying the original date when you are creating a new one from it.
Testing Your Drupal Site with Behat
If automated testing is not already part of your development workflow, then it’s time to get started. Testing helps reduce uncertainty by ensuring that new features you add to your application do not break older features. Unfortunately, testing still does not get the time and attention it needs when you’re under pressure to make a deadline or release a feature your clients have been asking for. In this post, I’ll show you how to use Behat to test that your Drupal site is working properly.
Decouple Your Framework For Easy Replacement
Decouple your framework or library from your business logic for future upgrades or replacements through usage of interfaces. By separating your business logic completely from the tool used to glue all things together, you can replace your framework or upgrade to a newer version without many problems.
A Pokemon Crash Course on CouchDB
In this tutorial, we’ll walk through working with CouchDB, a NoSQL database from Apache. This tutorial will focus more on the practical side, so we won’t cover what CouchDB is good for, how to install it, why use it, etc. We’ll focus on how to perform database operations through CouchDB’s HTTP API and how to work with it in PHP, laying the foundation for future, more complex posts.
How To Download Files with Zend Expressive
In today’s tutorial, I’m going to walk through a 3-step process for downloading files when using Zend Expressive.
Build a PHP Chatbot in 10 minutes
The chatbot topic is huge right now. Finally there is something quite new again and nobody knows what's happening next. This is the perfect time to start experimenting with chatbots and to build your own one right now. Give me 10 minutes of your time and I will give you your first chatbot!
Shahzeb Khan Builds Frank Ocean Album Detection
Looking for a reason to start playing with Twilio’s PHP Helper Library, Shahzeb Khan built (650)82OCEAN while anxiously awaiting the release of his favourite artist’s latest album.
Things I Learned from Reading Laravel: Up and Running
Matt Stauffer is currently putting the final touches to his new book called Laravel: Up And Running. It aims to be a good guide for newcomers to the framework. But even if you’ve got some experience with Laravel, it should be worth your time to read it. During my holiday I read an advance copy of the book containing all chapters, except the ones that touch on Laravel 5.3 specific functionality. I can say that it is very well written and it complements the official documentation well. Here are some of the things I’ve learned from reading this book.
|News and Announcements
WordPress 4.6 “Pepper”
Version 4.6 of WordPress, named “Pepper” in honour of jazz baritone saxophonist Park Frederick “Pepper” Adams III, is available for download or update in your WordPress dashboard. New features in 4.6 help you to focus on the important things while feeling more at home.
We're Sorry to Announce The Cancellation of The SymfonyLive Chicago 2016
We are very sorry to inform you that we are cancelling the SymfonyLive Chicago conference this October 13th and 14th. After much pained reflection, we realise that we have no choice. Our venue requires a minimum number of attendees, a number from which we are too far, and we know that over the next two months, we cannot possibly meet the requirement.
PHP Conference Asia - 22nd-24th August 2016, Singapore
The second pan-Asian PHP conference will take place between 22nd and 24th August 2016 in Singapore - the Garden City of the East! Monday, 22nd August 2016 will be a Tutorial day, followed by two days of Conference. Come and meet with the fastest growing PHP communities in Asia. More than 300 attendees are expected in this single track conference. The last few tickets are on sale now.
PHP North West Conference - 30th September - 2nd October 2016, Manchester
For the ninth year running, the community run PHPNW Conference will be ready to welcome over 500 delegates to the Manchester Conference Centre in October. Our conference has the reputation within the PHP community as a ‘go to’ conference, with our friendly style, inspiring content and valuable community network. Join us for 2016 for our biggest event yet! Tickets are on sale now.
Forum PHP - October 27-28th 2016, Paris
The annual conference organised by the French PHP-users group, gathering all PHP and Open Source communities, pros and PHP lovers. Tickets are on sale now.
DrupalSouth - October 27-28th 2016, Queensland
DrupalSouth is the largest conference in Australia and New Zealand dedicated to the Drupal content management system. With three conference tracks focusing on Planning, Building and Inventing, tickets are on sale now.
Three Devs and a Maybe Podcast - The World of Amazon Web Services with Jason Marden
On this weeks episode we are lucky to be joined by Jason Marden, to discuss the world of Amazon Web Services. We start off the show talking about Jason’s recent visit to the AWS Summit in London, and what the talking points were from the conference. From here we delve into the Serverless Architecture, how AWS Lambda is paving the way of FAAS, containers and view-based aggregation services. The Immutable Server is next brought up, highlighting the change in deployment philosophy that can be achieved by using such a concept. Finally, we discuss the value of a good debugger, bringin’ back awesome screen-savers and the craze of Pokemon Go.
Voices of the ElePHPant - Interview with Matthew Turland
This week Cal Evans talks to Matthew Turland, a full stack developer at Where I Work.
Full Stack Radio Podcast Episode 47: Sara Soueidan - Ditching Icon Fonts for SVG
In this episode, Adam talks to Sara Soueidan about the benefits of using SVG over icon fonts, and the best workflow for using SVG in your projects.
Laravel News Podcast LN23: The Laracon US Recap Episode
In this episode, we talk about last weeks Laracon, some of our favourite talks, and the new Laravel News.
The Laracasts Snippets Episode 37: Throw It All Out
Sometimes, the appropriate and responsible thing is to throw it all out and start again. Now, of course, not everyone has this luxury. Business requirements and deadlines often make these sorts of things impossible. However, is this true for your own business, or your own open source projects? Sometimes, that muddy code or CSS you wrote three years ago is begging to be deleted. How much better could you write it, knowing what you know now?
Zend Framework Quick Bites Episode 9 - How To Simplify Zend Expressive Configuration with ConfigProviders
Given Zend Framework’s design and very flexible nature, it can be easy to end up with a bloated global configuration, if we’re not careful. This episode follows up the recent tutorial on ConfigProviders. In it, I provide further background of the ConfigProviders tutorial, on why ConfigProviders can help reduce configuration complexity, and maintainability.
The John Morris Show - Job-Getting Secrets From the Former CEO of Burberry
Angela Ahrendts is the former CEO of Burberry, and was previously asked what does she look for when hiring new employees and when looking for employees to promote within (at the time) Burberry. I break down the interview and let you listen in to exactly what she said in the latest episode of the podcast. Learn what she says you should focus on and the tricks I’ve learned to leverage all this to your advantage right here.
An Insider's Perspective on Magento by Abdul Aahad Ahmed
Abdul Aahad Ahmed is working as the MTS-1 Software Engineer at Magento Commerce. He has 11+ years of experience in Web and Desktop Application Development which includes Software Design, Development, and Deployment phase. He also focuses on learning more about Software Development Analysis, Implementation, Team Management & Project Management Services. Without further ado, let’s read this amazing interview.
WTF Is Rancher?
If you have been working with Docker for a while, there are many different technologies you can use to deploy your containers. Many of them are quite powerful, but very hard to get set up. We’ll take a quick look at Rancher, one of the quickest and easiest solutions you can use to get up and deploy your containers across any number of hosts.
Watch Adam Wathan - Test Driven Laravel From Laracon US
Adam Wathan had the opportunity to give an extended presentation on building Laravel Applications with TDD at last months Laracon US.
Testing in Docker
A quick video on running PHP unit tests against different versions of PHP using Docker.
How to Pick Partners for a Software Product Business?
When creating a software product business most developers prefer to just deal with the software development part. However, somebody should take care of the marketing, sales, finances, human resources, etc.. The best way to cover for this business need is to bring in people specialised in those areas, so you can continue to focus on the development efforts. But how should you keep them interested working with your company? Should you hire them or make them business partners? How do you pick business partners that will not cause you trouble later? Watch this consulting session video to learn how to answer these questions so your business grows in a healthy manner with great partners.
Docker for Developers: php[architect] print edition (by Chris Tankersley, published 28 Jul 2016)
Docker For Developers is designed for developers who are looking at Docker as a replacement for development environments like virtualisation, or devops people who want to see how to take an existing application and integrate Docker into that workflow. This book covers not only how to work with Docker, but how to make Docker work with your application.
Securing PHP Apps Paperback (by Ben Edmunds, published 27 Jul 2016)
Secure your PHP-based web applications with this compact handbook. You'll get clear, practical and actionable details on how to secure various parts of your PHP web application. You'll also find scenarios to handle and improve existing legacy issues.
CakePHP/PHP Web Developer - Basel, Switzerland (German speaking applicants only)
ORCA Services AG, a team of motivated open source enthusiasts, is looking for a skilled CakePHP/PHP web developer near Basel, Switzerland. Only German speaking applicants will be accepted.
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@example.com
Interesting Projects, Tools and Libraries
A high performance open-source forum software written in PHP.
This package allows you to use WordPress as backend (admin panel) and retrieve its data using Eloquent, with any PHP project or even framework.
scssphp is a compiler for SCSS written in PHP.
Standalone PHP 5.3 asset optimisation & manipulation.
HTML Purifier is an HTML filtering solution that uses a unique combination of robust whitelists and agressive parsing to ensure that, not only are XSS attacks thwarted, but the resulting HTML is standards compliant.
Finite is a Simple State Machine, written in PHP. It can manage any Stateful object by defining states and transitions between these states.
php7cc is a command line tool designed to make migration from PHP 5.3-5.6 to PHP 7 easier. It searches for potentially troublesome statements in existing code and generates reports containing file names, line numbers and short problem descriptions.
PHP 5.5+ Payment processing library. It offers everything you need to work with payments: credit card & offsite purchasing, subscriptions, payouts etc.
A lightweight implementation of CommonJS Promises/A for PHP.
A fast, extensible & stand-alone PHP input validation class that allows you to validate any data.
Goodby CSV is a high memory efficient flexible and extendable open-source CSV import/export library for PHP 5.3.1.
ImpressPages is a light PHP framework with a user friendly admin panel.
|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.