PHP Annotated Monthly – May 2015
Our May issue of PHP Annotated Monthly brings updates on PHP, frameworks, tools, tips for coding, books, community, and more. Read this month’s digest curated by Mikhail Vink, PhpStorm Product Marketing Manager.
PHP
PHP got its monthly update with versions 5.6.8, 5.5.24, and 5.4.40 released. Updates are focused on bug-fixes and security-related fixes; the changelog is available as usual.
We can hardly forget about PHP 7 development status these days, so SitePoint shares PHP 7 resource recap with a lot of useful links on the matter. Rob Allen sheds light on building and testing the upcoming PHP 7, showcasing different ways of testing PHP 7 from all sides. Dan Miller (Etsy) posts a comparison of PHP 7 and Hack type systems which is very interesting if you follow both projects.
Nikita Popov blogs on internal value representation in PHP 7, describing how the zval (Zend value) implementation differs between PHP 5 and PHP 7, and discussing the implementation of references. The second part of the series will investigate the realization of individual types like strings or objects in more detail.
A great collection on learning OOP in PHP has been published by Marcel dos Santos, with tutorials on OOP Fundamentals, OOP Advanced, Object Oriented Design, Design Patterns, Refactoring, Architecture, and more. On the topic of design patterns, Tuts+ published a good tutorial on Singleton pattern.
This month’s been relatively calm in the PHP RFC world (though you still can follow everything on PHP RFC Watch). RFC: Reserve Even More Types in PHP 7 has been accepted, and new keywords have been reserved such as resource, object, mixed, and numeric so that they can be used in the future.
Julien Pauli in his exceptional PHP provides a valuable insight on PHP exceptions. Julien shows how this big feature works in the PHP source code, and how it’s been implemented in Zend Engine.
Phil Sturgeon updates us with a quick note on PSR numbering. Ever wondered where’s PSR-5 and PSR-6 while everyone is talking about PSR-7? Phil answers what’s going on there, how numbers are assigned, and what’s the process of some PSR being accepted.
Davey Shafik published slides from his talk at PHP Australia conference PHP: Under the Hood where he gets right into php internals.
Thiago Marini shares an insight on dependency injections in PHP. The objective of his post is to create a DI container and show the internals and concepts of dependency injection.
And if you’re into creating PHP extensions, this latest post by Jared McFarland would be a good read, as it’s about creating a php extension in Rust.
Frameworks and Tools
Many major frameworks and CMSs have been updated this month, featuring Zend Framework 2.4.1, Zend Framework 2.3.8, CakePHP 2.6.4, CakePHP 3.0.1/2/3/4, WordPress 4.2 (and later 4.2.1 and 4.2.2 security updates), Drupal 7.37, Yii 2.0.3, Yii 2.0.4, Nette 2.3.2.
Apart from that, a Symfony 2.7.0 beta has been released with a lot of articles describing new features and changes in Symfony blog, e.g. PHPUnit Bridge, VarDumper improvements, Form and Validator Updates, Dependency Injection Improvements, Choice form type refactorization, Productivity improvements and more. Plans on Symfony 2.7.0, 2.8.0 and transition to 3.0.0 are described in the relevant post as well. An official Symfony demo application has also been introduced.
As an additional input on what’s going on around Symfony components, Jakub Zalas shares stats on Symfony adoption (and you can compare it to a similar report some time ago). Jakub looks at how popular Symfony2 is among developers who create libraries or other frameworks.
This month was very loud on security issues with frameworks & CMS. WordPress got an XSS vulnerability in the recently released 4.2 version (read more on the issue), and two security updates have been released instantly. Some Magento-powered websites have been under attack lately as well due to a discovered RCE (remote code execution) vulnerability in the platform. A patch for this security issue is also available.
Composer, a dependency manager for PHP, is featured this month in a few news. Composer lead Jordi Boggiano is talking about composer hosting improvements (upgrade of the infrastructure behind packagist.org and getcomposer.org). Thomas Gossmann talks about composer development with local dependencies providing some interesting workarounds while relevant issues in composer itself are not yet fixed. Engine Yard’s Nils Adermann writes about composer & continuous integration.
Staying with continuous integration (which is indeed a hot topic in the PHP community lately), Alex Bilbie talks about setting up Jenkins for PHP CI (describing server and security config, as well as useful plugins for PHP projects). Looking in our archives, it would also be worth mentioning a good alternative, TeamCity for PHP CI blog post. And if you’re doing some Drupal, SitePoint’s Daniel Sipos wrote a tutorial on automated testing of Drupal 8 modules.
Marc Morera, Elcodi co-founder and CTO, talks about Behat and Data-test. It’s hard to disagree with Marc’s statement that tests should be as robust as possible, and he’s talking about the way to design the application (and tests) in such a way that your tests have nothing to do with translation, product people and other tactical or strategical changes.
Erika Heidi, a developer advocate at Digital Ocean, makes a practical overview of horizontal scaling of PHP applications. In her post, she talks about horizontal scaling, decoupling, user session consistency, user file consistency, load balancing, and more.
HHVM 3.7.0 has been released, focused on performance improvements, compatibility tweaks, and bug-fixes. The full list of changes is available in the changelog. HHVM Open Source team is continuing a tradition of lockdowns announcing the first ever open source performance lockdown. They plan to focus their efforts on performance wins for WordPress, Drupal, and MediaWiki.
Have you already heard about Blackfire? It’s a new PHP profiler by SensioLabs, creators of Symfony framework. In his new post, Fabien Potencier‘s talking about the idea behind Blackfire, current progress and adoption. The tool is currently getting a lot of interest in the PHP community. And they actually use docker a lot, so more information on how exactly they use it might be worth looking at as well.
Lumen, stunningly fast micro-framework by Laravel (as stated in the description), has been introduced by Taylor Otwell. Matt Stauffer shares his first experience, Luciano Mammino talks about developing a web application with Lumen and MySql, and Adam Engebretson posts about building an API for your Laravel Application with Lumen. Lumen seems to be an interesting addition to other PHP micro-frameworks such as Slim and Silex.
Similar to shiny PHP The Right Way (described as an easy-to-read, quick reference for PHP popular coding standards, links to authoritative tutorials around the web and what the contributors consider to be best practices at the present time), a Laravel The Right Way has been released with the same purpose – to bring the best practices in the Laravel community to a wider audience.
And a few more links for a good read. Derick Rethans, author of Xdebug, overviews Xdebug 2.3 profile file compression in his blog. Michelangelo van Dam shares knowledge on using commands that pipe output to other commands within PHP applications in his recent post. WordPress.org official web site’s got a lot of improvements, such as a new theme, plugin directories, and better statistics. PuPHPet, a simple GUI to set up virtual machines for web development, just got PHP7 support, so you can take advantage of the latest PHP versions on your web development environment.
Community and more
Zend has published the results of this year’s Developer Pulse survey, which polled 4,794 PHP Developers. The survey tell us, among other things, that 42% of developers opt for extra caffeine when facing a brick wall while coding; over 95% of developers encounter problems when deploying new code into production; and over 90% are developing or intend to develop APIs. Check out more stats in the infographic.
Henrik Warne shares 22 lessons learned in software development. He talks about development, troubleshooting, cooperation, and much more.
Hack & HHVM book by Owen Yamauchi has reached early release stage, so if you’re interested in using Hack/HHVM in your projects, that might be a good read.
Steve Francia, who’s been involved in open source development for nearly 20 years, shares a piece of advice on how to be a good open source community member. According to him, it’s all about 3 rules: assume good will, attitude of appreciation, and not being afraid to jump in.
Drupal Association launches new Try Drupal program. The Program will showcase a selection of Hosting Companies where a new user can quickly sign up and have a Drupal demo site up and running for them to use for free. This is part of the Drupal Association’s initiative to develop a new revenue stream through advertising programs on Drupal.org.
More news from the PHP ecosystem can be found in PHPDeveloper.org and other community resources. You might also want to check out and add to your RSS feed phptoday.org, which is sharing news and updates about PHP and related technologies.
Did you find an interesting read? Have news to share? Or just want to comment on this post? We’d love to hear from you in the comments below. Feel free to reach out to our PhpStorm product marketing manager @mikhail_vink on Twitter.
See you in June!
Develop with pleasure!
– JetBrains PhpStorm Team