PHP Annotated Monthly – November 2016
It’s November, a time of smoky fires and dangerous fireworks here in the UK. Let’s wrap up the latest happenings in the world of PHP with Gary Hockin, Developer Advocate for PhpStorm at JetBrains.
Don’t forget: you can now get PHP Annotated Monthly delivered to your inbox, so you’ll never miss the monthly roundup again. Sign up here and get next month’s PHP Annotated Monthly delivered right to you.
PHP and Development
Latest versions of PHP have been released and are:
At the risk of boring you, if you’re not running one of these major versions of PHP, then not only are you unsupported, but you’re missing out on some amazing features and performance improvements. Now is the time to move to PHP 7.
PHP 7.1 is on the horizon, so expect some more interesting information when it arrives. Currently it’s on release candidate 5, and we expect a release any time now.
If you’re still unsure what’s new and exciting in PHP 7, then PHP 7 In-Depth Look by Chike Mgbemena is worth a read. With PHP 7’s performance improvements and type hinting, it’s easy to forget that Facebook’s Hack language is still a viable option, and I very much enjoyed Greenfield Projects with Hack by Fred Emmott. Sitepoint released A Crash Course of Changes to Exception Handling in PHP 7 which is an excellent primer on the changes to exceptions in PHP 7. 5 New Features In PHP 7 That You Should Have A Look At is also worth a look.
One of my favorite PHP related posts this month was on the Slack developer blog — Taking PHP Seriously. It explains what role PHP has in Slack’s development stack, and why they chose to base their project on PHP in the first place. An interesting read.
Other notable posts in PHP and development this month:
- Build Your Own Dropbox Client with the Dropbox API
- Expanding Horizons by Joe Watkins
- Abstract Syntax Tree/Uniform Variable Syntax in PHP 7+
- How’d They Do It? PHPSnake: Detecting Keypresses
- Structuring PHP Exceptions
- Understanding PHP Generators
- Integrate a Stripe Payment Gateway with PHP
- Guide to Automatic Security Updates For PHP Developers
- Is It Possible to Write and Run PHP Code on an iPad?
- Importing and aliasing PHP functions
- Method overloading is possible in PHP (sort of)
- Modding Minecraft with PHP – Buildings from Code!
- 10 Modern Software Over-Engineering Mistakes
- PHP 7 deployment at Dailymotion
- What’s in store for PHP performance?
- A First Look at Atlas – the ORM That Delivers
- 6 good practices for “use” in PHP
- A better dd() for your TDD
- PHP Generators – Sending “Gotchas”
- 5 step method to make test-driven development and unit testing easy
- Eight knobs to adjust and improve your Travis CI builds
Frameworks and Libraries
Some helpful WordPress posts this month including Using Namespaces and Autoloading in WordPress Plugins, Part 1 and Using Namespaces and Autoloading in WordPress Plugins, Part 2 on TutsPlus. Other notable posts (for me) were Subscribing to Symfony’s Security Events on ThisData, and Matthew Weir O’Phinney’s post; Automating PHPUnit with Node (note to Matthew: If you were using PhpStorm, this wouldn’t be necessary *wink*).
Adam Wathan’s article Replacing Mocks with Spies was a particular favorite of mine this month, as I’m as guilty as anyone of not knowing when and how to use spies instead of mocks when testing. Like most people, I end up using mocks everywhere, but this post helped me understand the difference and when to use each different double.
Other interesting posts this month (somewhat Laravel-focused… sorry):
- Handling Laravel Validation Error Messages With Vue.js
- 2FA in Laravel with Google Authenticator – Get Secure!
- Learn how to change Laravel’s login validation
- How to Secure a REST API With Lumen
- Shared Components Across Multiple Laravel/Lumen Micro-Services
- The new Notification system in Laravel 5.3
- Improvements to the Laravel unique and exists validation rules
- Why PHP and Symfony, and Not Java
- Testing PHP Code with Atoum – an Alternative to PHPUnit
Community and Events
Conference season is hotting up, and while I missed Bulgaria PHP due to other commitments, I enjoyed A Review of Bulgaria PHP – Game On! over on SitePoint’s blog. I’ll be at php[world] in Washington D.C. this month, so if you’d like to talk about anything and everything, then please come and find me.
Podcasts released this month include:
- Voices of the ElePHPant – Interview with Junade Ali, Interview with Katie McLaughlin, Interview with Kirsten Hunter, Interview with Michael Heap, Interview with Larry Garfield, Interview with Steve Grunwell. Good job Kathy!
- Dev Hell did better this month, recording Episode 83: Sasquatch Uses PHP and Episode 84: Whiny Feedback Loops. Episode 84 is woefully short; I’m not sure it should be included.
- PHP Town Hall did not respond to last month’s warning. They’re off the list.
- PHP Round Table released 054: Security: Encryption, Hashing and PHP, 055: Acceptance Testing with Behat and 056: Hourly vs Value-Based Pricing. Yes, I know that I said they released 056 last month and said it was great, but that just proves that I don’t read/listen to everything I post on here. There’s just not enough hours in the day.
- Jerks Talk Games released two more podcasts – Podcast Typcoons and WOW – Live in Vegas. This entertaining and enjoyable show with two very engaging presenters is quickly becoming my favorite on this list.
Before we go this month, I’d like to promote two worthy endeavors that are currently open for contributions. Firstly, the PHP-FIG are taking nominations to be on the Core Committee. The Core Committee members are going to be the team responsible for commenting on, and ultimately voting upon new standards. While there are some amazing names already nominated, I’d love to see more people from the wider community get involved. If this is something you think you’d be interested in participating in, then check out the mailing list.
Finally, PHP Yorkshire is a new PHP conference for 2017, and their CFP is open right now at https://cfp.phpyorkshire.co.uk/.
I hope you have a good November!
— Gary and the PhpStorm Team