Hello and Welcome to our latest edition.
The PHP development team has announced the release of the second beta for 7.1.0, encouraging all users to test this version and report any bugs.
Also this week, we look at the blogging platform Grav, and 8 plugins for it that could possibly be essential for a developer's blog.
On the NomadPHP site there is a lightning talk from David McKay on Docker, running through the core component of a Docker image and showing just how simple it is.
Plus, the Laracast Snippets podcast this week gives an insight into developer arrogance.
And finally, the three day Pacific Northwest PHP conference takes place next month in Seattle, with a full day of workshops followed by two conference days. Tickets are on sale now.
Have a great weekend folks,
Cheers
Ade and Katie |
We love our sponsors. Why not try them?
From our sponsors:
|
Articles
The Case for JS++
JS++ is a web programming language built for software engineering. It is built with engineering principles: strong, solid foundations via a type system that can leverage the full JavaScript ecosystem while guaranteeing your types will be correct at both compile and runtime. It’s a programming language designed over multiple years, not 10 days, as JavaScript was.
Welcome To The Next Version of Laravel News
Four years ago Laravel News got its start as a simple Twitter and Facebook account, where I would share things created by the Laravel community and try to help the creators, as well as users, find new awesome stuff. From there it transitioned into a Tumblr site, and finally into a full website that’s been running for the past three years. Now take a look at the new site.
The Traits of a Proficient Programmer
Do you know what the difference between competence and proficiency is? That sounds like a trick question, because the words seem to mean the same thing. But the subtle distinction between them is critically important. |
Tutorials and Talks
How To Simplify Zend Expressive Configuration with ConfigProviders
ConfigProvider classes are PHP classes, with no inheritance hierarchy — plain and simple. As a result there is minimal, if any, complexity to them.
Create a Custom Plugin in OpenCart 2.1.x.x: Part Two
If you haven’t gone through the first part of this series, I would recommend you do so as that’s something essential to go through before you develop the files in this article. As a quick reminder, we’re developing a Recent Products plugin that lists X number of products in the front-end. You can configure the number of products to be displayed from the back-end configuration form that was built in part one of this series. We also went through the plugin architecture of OpenCart, and it’ll be applied to the front-end plugin development as well.
504 Gateway Timeout Error on Nginx + FastCGI (php-fpm)
“504 Gateway Timeout” error is a very common issue when using Nginx with PHP-FPM. Usually, that means that it took PHP-FPM longer to generate the response, than Nginx was willing to wait for.
8 Must-Have Grav Plugins to Round Off Your Blog’s Installation
I recently switched my blog over from Blogger to Grav, and while quite a nifty platform on its own, Grav really shines once you prop it up with some custom themes and plugins. This post will list the plugins I believe to be essential for a developer’s personal blog, and the reasons behind each suggestion.
How to Log Events in Your PHP Application and Show them in a Cool Way
Often Web developers need to log some events of their applications and eventually show them to the visitors in a cool way that they can understand. Read this tutorial article to learn how you can use the PHP Stats Graphs package to extract statistics of application events and show them in nice vectorial graphics.
Scaling Constraints of Languages
Micro-Services or any set of small services are common again right now. While it can make a lot of sense to use a dedicated service for a well defined problem, those services are sometimes used just to play with a different server software. While it is pretty obvious for most that selecting the right database is important, the same is true for selecting the right language (virtual machine) for the job.
Introducing SwiftDotEnv
Regardless of which language you use, there are always configuration settings that need to be handled. One of the tenets of twelve factor app is that config should be stored in the environment. This is easy enough on the command line or in the config of our preferred hosting solution. When developing locally without a VM, however, it gets a little more complicated as we may need the same environment variable set to different values for the apps we're running. One solution to this is dotenv. This was originally a Ruby library. It reads a file on disk, .env by default and loads the data within it into the environment.
PHP Development with Windows Subsystem for Linux (WSL)
Windows has always been somewhat of an oddball when it comes to PHP development. In the past years it has lost out on developer mindshare to UNIX-like Operating Systems like Linux and macOS. With the release of Windows 10 Anniversary Update in August 2016, Microsoft now offers an interesting option for PHP development in the Windows environment: The Windows Subsystem for Linux (WSL)
Creating Your First Symfony App and Adding Authentication
Symfony is a PHP framework, made up of a lot of decoupled and reusable components. It's a framework that promotes standardisation and professionalism, supports best practices and inter-operability of applications. In this tutorial, I'll show you how easy it is to build a web application with Symfony and add authentication to it without banging your head on a wall! Check out the repo to get the code.
Sending and Receiving SMS with Laravel and Nexmo
In this quick tutorial by Phil Leggetter, we’ll cover how you can both send and receive SMS from your Laravel application. We’ll do this using Nexmo, a cloud communications platform that offers APIs for provisioning phone numbers, sending and receiving SMS (which is handy since we’ll use that), making and receiving phone calls and more.
Stubbing Eloquent Relations for Faster Tests
When you’re trying to test methods on an Eloquent model, you often need to hit the database to really test your code. But sometimes the functionality you’re testing doesn’t really depend on database features. Is there any way to test that stuff without hitting the database?
Setting up GrumPHP with Laravel
First of all let's go through what is GrumPHP, and how it can help in our workflow to make pull requests less “Code Check Styles” and more proper architecture review. There are specifically built tools for code style checks such as nitpick or styleCI, but even tools like these will only help you after you push your code to GitHub.
How to Start a Telegram Bot With PHP
If you are reading this, you know that chat bots are one of the biggest tech trends of 2016. The bot revolution is not only about artificial intelligence. A bot can be a tool in your messenger with a simple chat interface that can be used to extend the functionality of sites or services, or can even be a standalone application. In this article we will create a simple stopwatch Telegram bot. I will show you how to create your bot, connect with analytics, write some code, and finally add your bot to a bot store.
Order Fulfilment with Swiss Post and YellowCube
We live in a time where more and more goods are purchased online. This means that selling physical products requires sufficient storage space on-site, people that handle picking, packing and shipping and someone that handles returned goods. All these factors can sum up to a costly venture, especially when you don’t have any infrastructure from other sales channels already. This is where YellowCube comes in handy. YellowCube is a fulfilment service offered and run by Swiss Post. But what is a fulfilment service anyway? |
News and Announcements
PHP 7.1.0 Beta 2 Released
The PHP development team announces the immediate availability of PHP 7.1.0 Beta 2. This release is the second beta for 7.1.0. All users of PHP are encouraged to test this version carefully, and report any bugs and incompatibilities in the bug tracking system.
Web Summer Camp - 31st August - 3rd September 2016, Rovinj, Croatia
PHP topic @ Web Summer Camp is a natural continuation of PHP Summer Camp that’s been delivering cutting-edge experience, through hands-on workshops, since 2014. Following that successful model, this years workshops, spread over 3 days, will also be dedicated to PHP and its frameworks, especially Symfony, with topics on the newest developments in the field, providing useful examples and first-hand experience. Tickets are on sale now.
Pacific Northwest PHP - 15-17th September 2016, Seattle
The Pacific Northwest PHP Conference is a 3-day event (September 15th-17th, 2016) for PHP developers living in the Pacific Northwest region. Last year, we were joined by nearly 200 PHP developers, and this year's event is going to be even bigger. This year, our event will consist of a full-day of workshops, followed by two full days of an enthralling, single-track conference, with some of the most talented speakers from the PHP community and software industry. Tickets are on sale now.
PHP South Africa - 28-30th September 2016, Johannesburg
The goal of PHP South Africa has always been the same… The transfer of knowledge. We have always aimed to get the best of the best together in our beautiful country to share some of their knowledge and experience. In an ever growing industry it is events such as this that helps you stay sharp and craft better software. Tickets are on sale now.
ConFoo - December 5-7th 2016, Vancouver
ConFoo Vancouver is a multi-technology conference for web developers. 100 presentations by popular international speakers, focused on pragmatic solutions for web developers, with great content and amazing experience. Tickets are on sale now.
Nomad PHP US - September 22nd 2016 20:00 CDT
CommonMark: Markdown Done Right, presented by Colin O’Dell. Markdown is one of the most popular markup languages on the Web. Unfortunately, with no standard specification, every implementation works differently, producing varying results across different platforms. The CommonMark specification fixes this by providing an unambiguous syntax specification and a comprehensive suite of tests. Attendees will learn about this standard and how to integrate the league/commonmark parser into their applications. We will also cover how to add new syntax and other features to the parser to fit your custom needs.
Nomad PHP EU - September 22nd 2016 20:00 CEST
A Deepdive Into The .git Directory, presented by Joshua Thijssen. Git is the favourite VCS for many developers and, with sites like GitHub and BitBucket, is has truly revolutionised the way we write our software. We all push commit, branch, clone and even rebase stuff once in a while, but do we truly know what happens when we issue these commands? Instead of telling you what a “git commit” does, or what happens when you branch something, I will be talking about the internals of git: what EXACTLY happens under the hood when you issue these git commands. Ultimately, you will understand more about the in-depths of git and grasp the concepts of a lot of the available git commands that you probably never heard of. |
Podcasts
Voices of the ElePHPant - Interview with Woody Gilk
This week Cal Evans talks to Woody Gilk, Full Stack Developer at When I Work, recorded live at Midwest PHP where Woody was a speaker.
The Changelog Podcast #209: GitHub and Google on Public Datasets and BigQuery
We talked with Arfon Smith (GitHub), Felipe Hoffa (Google), and Will Curran (Google) about BigQuery, the big picture behind Google Cloud’s push to host public datasets, the collaboration between the two companies to expand GitHub’s public dataset, adding query capabilities that have never been possible before, example queries, and more!
PHP Round Table Podcast Episode 50: PHP For Beginners
If you're just starting with programming & PHP, this episode is for you. We discuss some helpful tips to get you started with PHP programming, such as some helpful learning resources and some common pitfalls to watch out for when learning to program.
The Laracasts Snippets Episode 36 - Developer Arrogance
Recently, I've been updating a book I wrote a number of years ago. Over and over again, I found myself hitting the delete key. References to bad practices and SRP were laced throughout every chapter. How could I have been so arrogant?
The John Morris Show Podcast - How to Answer IT Job Interview Questions
How much can a good interview can change your life? In today’s episode of the John Morris Show, I’ll tell you what I said in an interview to get the interviewer so excited she hired me on the spot. And, how you can craft your own narrative to get the same reaction. |
Diving Deep Into Docker
Docker is a tool that allows you to package your application up into a single-runable distributable binary – akin to the phar, but in Hulk mode. Docker allows you, a developer, to specify the exact environment your application needs to run, across development; test; staging; and production. Every wondered what a Docker image and container actually are? Want to know how they really work? Let me run through the core component of a Docker image and show you just how simple it is.
Petya Raykovska discusses WordPress REST API Developments
Petya Raykovska is the senior Project Manager at Human Made Limited. She has been using WordPress since 2010 and started contributing translations in 2011. She is well versed in leveraging digital media and builds digital platforms for traditional media. In this interview, Raykovska talks about her involvement with WordCamps, open source projects and her work with WordPress community.
Thijs Feryn - I’m Doing a Minivlog on Instagram
I love social media and I love publishing video. I already have a Youtube channel that I’m building and I’m very active on Twitter. But, as of today, it’s time for something new. I decided to start a minivlog on Instagram. Instagram is a hugely popular platform and I’m looking for ways to do more with it.
How Can I Make My Software Product Highly Desired by the Customers?
Many developers have already started working on software products before making sure that there is a good demand for those products. Later they realise that the product is nice but it is really not essential for their users, so they may not be able to make much sales. Fortunately there is a method that can be used to convert a non-essential product into a highly desired software product that their users feel they cannot live without. Watch this video of a consulting session with a developer to learn more about this method and how you can apply it in practice in a new product, or in a product that has already started being developed.
PHP Development Tool Essentials Paperback (by Chad Russell, published 16 Jul 2016)
Learn PHP development best practices, such as version control, development environment virtualisation, and coding standards. You'll also discover the most useful PHP web frameworks, including the new Laravel, symfony2, and micro-frameworks. As you do so, you'll learn how to use them to write the most productive PHP code possible.
Learning WordPress REST API (by Sufyan bin Uzayr, published 28 Jul 2016)
This book is for WordPress developers and designers who want to get a complete practical understanding of the WordPress REST API, and leverage it to create fully-featured web apps. |
Jobs
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
awesome-php
A curated list of amazingly awesome PHP libraries, resources and shiny things.
php-resque
Resque is a Redis-backed library for creating background jobs, placing those jobs on one or more queues, and processing them later.
pthreads
This project provides multi-threading that is compatible with PHP based on Posix Threads.
phpword
A pure PHP library for reading and writing word processing documents.
fuel
FuelPHP v1.x is a simple, flexible, community driven PHP 5.3+ framework, based on the best ideas of other frameworks, with a fresh start!
jphp
An alternative to Zend PHP, like JRuby and Jython only for PHP.
restler
Restler is a simple and effective multi-format Web API Server written in PHP.
php-backdoors
A collection of PHP backdoors. For educational or testing purposes only.
simplepie
SimplePie is a very fast and easy-to-use class, written in PHP, that puts the 'simple' back into 'really simple syndication'.
easyengine
Command-line control panel for Nginx Server to manage WordPress sites running on Nginx, PHP, MySQL, and HHVM.
snipe-it
A free open source IT asset/license management system built in PHP on Laravel 5.2 and Bootstrap 3. |
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.
|
|