Welcome to 2017, and to the first edition of PHP Weekly of the year.
Did you know that almost half of the work force will look for a new job in 2017? Stats show that 1 in 5 people are already job hunting, with the tech industry being the most at-risk sector.
If you are looking to recruit new staff, where better to advertise your job openings then on phpweekly.com? With our subscriber list nudging 20,000, you could just find exactly who you are looking for.
Or if you want to entice new talent, or new business, to your business, how about sponsoring an edition of phpweekly.com? A stand out advert at the top of our page to catch the eyes of our 20,000 subscribers.
For more information drop me a line at firstname.lastname@example.org.
Have a great weekend,
Katie and Ade
We love our sponsors. Why not try them?
From our sponsors:
Heroes of PHP™ #3
Last year at Christmas I posted my original 24 Heroes of PHP™, with a second post listing a further 24 of my heroes at New Year. I’ve decided to repeat the exercise this year, although my list this time is just 11 names. All of these are people that have inspired me in some way or other in 2016.
Top 10 PHP Articles of 2016
The audience has spoken. From Zend Framework 3 release to Zend Server with PHP 7, from IBM i to AWS, the top ten articles on the blog from 2016 cover a wide range of topics to help you deliver PHP applications rapidly, reliably and securely, both on-premise and in the cloud.
PHP 5: Active Support Ends. Now what?
The active support by the PHP project for PHP 5.6, the final release series of PHP 5, ended this week. What is "active support"? And what does it mean for you? To answer this, you need to understand PHPs release process.
Don't Hate WordPress: 5 Common Biases Debunked
In the early days, people used WordPress only as a blogging tool. However, today WordPress covers more than 50 percent of the market share for CMSs, supporting nearly 60 million websites worldwide. As a commonly used platform for building websites and other online applications, misconceptions have spread like a forest fire, keeping people away from WordPress. In this article, I outline and explain the five most common WordPress taboos and myths, clarify them and offer solutions on how to overcome them.
Things I Learned in The Past Four Years
Since yesterday was my last day on a project after four years and two months, I decided to take a look back on those four years and write down some of the things I learned. Things I learned about being a better listener, a better communicator, a better team mate, a better programmer.
80 Laravel Tutorials, Packages, and Resources from 2016
As 2016 is coming to a close it’s a great time to look back on the year and see just how much progress has been made. Laravel had a busy year, with 5.3 being released, Laracon, updates to all the components, and now gearing up for the Laravel 5.4 release. To look back on the year I’ve put together a list of some of the hits of 2016 and arranged them by month so you can get a quick overview of all the highlights.
Tutorials and Talks
Decouple Controller from Symfony using Traits
If you start using controllers as services, you still often need helpers methods of Controller from FrameworkBundle. So your code still depends on service locator and decoupling is not really happening. Today I will show you how to remove the dependency on Controller and keep those fancy methods at the same time.
The Art of Defensive Programming
Why don’t developers write secure code ? We’re not talking yet another time about “clean code” here. We’re talking about something more, on a pure practical perspective, software's safety and security. Yes, because an insecure software is pretty much useless. Let’s see what insecure software means.
Programming With Yii2: Using Amazon S3
In this Programming With Yii2 series, I'm guiding readers in the use of the Yii2 Framework for PHP. In today's tutorial, I'll walk you through the basics of browsing, uploading and downloading files to and from Amazon's cloud-based S3 storage service. Essentially, I've created a simple storage model and controller as examples which you can extend for your needs.
Using the Silverstripe TemplateParser For Something Else...
We are currently experimenting with Bookdown to generate the documentation for our open-source components in one central location. Obviously the generated site should have a similar look`n`feel as this blog, or our website. Since both instances are powered by Silverstripe and share a theme I was curious if it is possible to use this theme within Bookdown. As it turns out, it is not that difficult ;)
Creating a Custom WordPress Messaging System, Part 3
At this point in this series, we've laid the foundation for our plugin, defined a custom hook, and wired up a perpetual message to show how we can take advantage of said hook. What we haven't done, though, is implement various message types, allow user input, and display messages based on the result of input the user has provided. But before we do that, we need to add support for the various message types, a class interface that will support each type of message, and the data structures necessary for storing such messages.
Want An Inspirational Quote? There’s Artisan Command For That!
Web-development is not all serious – there are some fun activities too. So let’s have a break from mega-urgent code writing and get some inspiration from our beloved Artisan – with a command “inspire”.
WordPress Plugin Rename Media Files Renames Media Files
It’s surprising but true. You can’t edit the file names of uploaded media from within WordPress. The only way to do so is to delete file by file and re-upload them again after names were changed locally. Today, we’ll change that.
ADR with HTTP Caching
Great conversation with “MatTheCat” on Github today, regarding HTTP caching headers and the ADR pattern.
How PHP Executes – From Source Code to Render
Inspired by a recent article on how Ruby code executes, this article covers the execution process for PHP code.
A Good Pager
I made a list of features that a good data pager should have, implemented them in my search engine and made many screenshots of pagers in other web applications.
Playing with Docker, Silex, Python, Node and WebSockets
I’m learning Docker. In this post I want to share a little experiment that I have done. I know the code looks like over-engineering but it’s just an excuse to build something with docker and containers. Let me explain it a little bit.
Building Your Startup: Preparing for Reminders
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. Every step along the way, I'll release the Meeting Planner code as open-source examples you can learn from. I'll also address startup-related business issues as they arise. In this two-part series, I'll describe how we built the infrastructure for reminders and their delivery. This episode will focus on the infrastructure and user experience behind configuring reminders.
PHP 7 Performance Improvements (5/5): Immutable Arrays
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. Fifth and last episode: Immutable arrays using 1,000 times less memory.
How to Use Old Versions of Laravel Homestead
There are two parts to Homestead: the Vagrant box and the Homestead source code (Homestead app). The Homestead Vagrant box is a snapshot of a pre-configured virtual machine ready to use. This saves you from having to spend time installing things such as PHP, NGINX, etc. We use the Laravel Settler repo to build the Homestead boxes. You have to ensure the version of the Homestead Vagrant box is compatible with the version of the Homestead app you are using. Why would you want to use a previous version? If you are working on a Laravel 5.1 (the latest LTS version) application, you may still be running PHP 5.5. While Homestead development moves forward pretty quickly, you may not be ready to move your clients from PHP 5.5.
We were recently sent a tweet in regard to a text-area client/server-side length validation not correlating. After some detective work we were able to find two issues that could have caused this to occur. In this post I wish to discuss our findings, and how we resolved each issue.
Collection Pipelines in PHP
If you read the book “Refactoring to Collections” or saw screencasts and talks by Adam Wathan about collection pipelines, but do not work with Laravel, you might have asked yourself how to apply these techniques to other PHP applications, for example Magento. If you did not, let me explain collection pipelines first.
Using Guzzle and PHPUnit for REST API Testing
In this post I'll be demonstrating how you can test RESTful APIs in an automated fashion using PHP, by building a testing framework through creative use of two packages - Guzzle and PHPUnit. The resulting tests will be something you can run outside of your API as part of your deployment or CI (Continuous Integration) process.
Symfony Console From the Scratch
Symfony Console is the one package you will probably use to build a PHP CLI app. It's one of the easiest Symfony components. Why? You only create Application class, add your Command class and you are ready to go.
Sunshine PHP Conference - 2nd-4th February 2017, Miami
The Sunshine PHP Developer Conference is hosted by the South Florida PHP community (SoFloPHP) in Miami, Florida next month, and you're invited! We'll host some of the best speakers, awesome talk topics, latest technologies, and up to date news in PHP. And don't forget our Hack-a-thon and Uncon'ference, as well as a great hallway track! The conference has something for every level of PHP developer. We start with a full day of 8 PHP related tutorials and workshops that are each 3 hours of in-depth information. Next we follow that with 2 days containing 5 keynotes and 40 PHP talks over 4 tracks. General admission tickets are on sale now.
SymfonyLive San Francisco: October 19th-20th 2017
We’re back! SymfonyLive is coming back, that’s right, back to our beloved San Francisco for a whole new chapter in our conference series for 2017 and we just had to share the news with you right away! As some of you may remember, last year’s SymfonyLive Chicago was cancelled and we were pretty disappointed. But we didn’t let it get us down and in 2017 we’re coming back even stronger and setting up shop again! Please SAVE THE DATE. More information will follow so please keep checking our site!
PDS “skeleton” Standard Now In Beta
I am proud to announce the immediate availability of pds/skeleton 1.0.0-beta1 for inclusion in your PHP package.
Laravel Dusk Is Coming to Laravel 5.4
Nomad PHP US - February 16th 2017 20:00 CST
Effective Redis for PHP Developers, presented by Matthew Turland. Redis is a key-value store that has carved out a role for itself as a data structure server. If you’re using it only for caching simple values, you’re tapping a mere fraction of its power. This presentation provides an introduction to Redis and the Predis client library for it, as well as related data structures that Redis supports and when it’s best to use them. No computer science background is necessary; data structures are presented in understandable terms with practical examples.
Nomad PHP EU - February 16th 2017 20:00 CET
PHP Authentication: Lessons Learned, presented by Brian Retterer. Just about every website out there has some sort of authentication. We sign into accounts everywhere, from your social media profile all the way to your bank account. Brian will share what he has learned through the years about authentication in PHP. Giving real life examples of the ugly authentication that he started with, which you may have as well, through what is now the best practices of authenticating your web applications.
That Podcast Episode 35.5: Rogue One
Beau and Dave talk about Rogue One: A Star Wars Story. Here be spoilers. RIP Carrie Fisher.
Lately in PHP Podcast: PHP Articles Report December 2016 Edition
This is the December edition of the podcast hangout recorded by Manuel Lemos and Arturs Sosins to comment on the latest outstanding PHP articles published recently. In this edition they discuss articles about implementing secure user validation using event sequences, the latest PHP modern practices, a comparison of the best PHP IDEs, how to implement a YouTube video downloader, and how to detect and block site attacks using a PHP Web application firewall.
The Five-Minute Geek Show Podcast: Episode 94 - One Easy Tip To Being in The Top 2% of Freelancers
The Tip: Be a grownup.
PHP Ugly Podcast #41: The Boys
Topics include Laravel 5.5 requiring PHP 7, and new ransomware.
North Meets South Web Podcast Episode 19 - Happy New Year
Spare 68 seconds of your day to let Michael and Jake thank you for being such terrific supporters of our podcast in 2016.
Easy Vagrant with Laravel Homestead
Join us for a quick introduction on how and why to use Laravel’s Vagrant environment Homestead! No experience and no framework knowledge required!
Voices of the ElePHPant - Interview with Taylor Otwell and Joe Ferguson
This week Cal Evans interviewed co-organiser of MemphisPHP Joe Ferguson, and creator of Laravel Taylor Otwell. Watch the video here.
PHP Beyond the Web (by Rob Aley, published 16th December 2016)
Use your existing web-based PHP skills to write all types of software: CLI scripts, desktop software, network servers, and more. This book gives you the tools, techniques, and background necessary to write just about any type of software you can think of, using the PHP you know.
Laravel Basics: Creating Web Apps. It's Simple (by Gregory Blake, published 30th December 2016)
This book is an exploration of Laravel, which is a framework for web application development. The first part of the book explains to you what Laravel is and how it can be used for the development of apps. Laravel supports the implementation and use of notifications. This book guides you on how to implement notifications in your application.
PHP Objects, Patterns, and Practice (by Matt Zandstra, published 5th January 2017)
The 5th edition of this popular book has been fully updated for PHP 7, including replacing the PEAR package manager with Composer, and new material on Vagrant and PHP standards. It provides a solid grounding in PHP's support for objects, it builds on this foundation to instill core principles of software design and then covers the tools and practices needed to develop, test and deploy robust code.
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
Image manipulation library for PHP 5.3 inspired by Python's PIL and other image libraries.
Anchor is a super-simple, lightweight blog system, made to let you just write.
PPM is a process manager, supercharger and load balancer for PHP applications.
A pure PHP library for reading and writing word processing documents.
Ramsey/uuid is a PHP 5.4+ library for generating and working with RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).
PsySH is a runtime developer console, interactive debugger and REPL for PHP.
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!
BotMan is a framework agnostic PHP library that is designed to simplify the task of developing innovative bots for multiple messaging platforms.
Pushok is a simple PHP library for sending push headers to APNs.
PHP7dev is a Debian 8 Vagrant image which is preconfigured for testing PHP apps and developing extensions across many versions of PHP.
Corcel is a class collection created to retrieve WordPress database data using a better syntax.
Gives metrics about PHP project and classes.
|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.