PHP Digest No. 81 - interesting news, materials and tools (March 1 - 13, 2016)

We bring to your attention the next selection with links to news and materials.
Enjoy reading!
News and Releases
- Composer 1.0.0-beta1 - 4 years after the first alpha release, a beta version of the package manager was released. Added commands
show --treefor displaying installed packages in a tree,why-not- shows why it is impossible to install a package,update --interactive- allows you to choose which packages to update, as well as many other improvements and fixes. - Xdebug 2.4.0 - Update for the popular debugger, added support for PHP 7 and several new features.
- PHP 5.5.33 , 5.6.19 , 7.0.4
- PhpStorm 2016.1 RC1 and the new JetBrains release versioning system
- Peachpie Compiler is a PHP compiler for .NET.
Badoo switched to PHP7 and saved $ 1M
Php
- RFC: Null Coalesce Equal Operator - It is proposed to implement a combined operator
??=in addition to the usual??one added in PHP 7.// Следующие две строки эквивалентны $this->request->data['comments']['user_id'] = $this->request->data['comments']['user_id'] ?? 'value'; $this->request->data['comments']['user_id'] ??= 'value'; - RFC: Short ternary Equal Operator - It is also proposed to implement a combined ternary operator:
$x = $x ?: $y; $x ?:= $y; - RFC: “var” Deprecation - It is suggested that the keyword be deprecated
var. Interestingly, this keyword was already deprecated in versions 5.0.0 - 5.1.2, and at the moment it is only a synonympublic. - RFC: Catching Multiple Exception Types - The opportunity to catch several types of exceptions in one catch block is proposed for consideration:
try { // Some code... } catch (ExceptionType1 | ExceptionType2 $e) { // Code to handle the exception } catch (\Exception $e) { // ... } - RFC: Traits with interfaces - It is proposed to make it possible to use interfaces in traits:
interface I { function foo(); } trait T implements I { function foo() { } }
Instruments
- thephpleague / route 2.0 - A popular router based on FastRoute. Now with PSR-7 support.
- thephpleague / glide - Library for working with images. Tutorial for use.
- PHPixie / Image - An independent component from the PHPixie framework for working with images.
- kamranahmedse / smasher - The library allows you to get a json representation of a directory structure, or recreate a structure from a json representation.
- gabordemooij / redbean - An interesting ORM that can create or change a database schema on the fly.
- IcecaveStudios / archer - A library for standardizing approaches to testing, continuous integration and documentation of PHP projects.
- domnikl / statsd-php - PHP client for passing statistics to statsd .
- paragonie / constant_time_encoding - Constant time encoding to protect against time attacks.
- daylerees / scientist - A library for conducting experiments in code. A post on painless refactoring in support.
- erusev / base - A simple query builder for working with a database.
- Tolerance / Tolerance - Library for implementing fault tolerance + helpers for microservices.
- jakubkulhan / bunny - Simple and fast implementation of AMQP client (RabbitMQ) with synchronous and asynchronous (ReactPHP) modes.
- wsdl2phpgenerator / wsdl2phpgenerator - Generates PHP classes from a WSDL document.
- Php Inspections (EA Extended) 1.4.0 - An extension for PhpStorm that complements the capabilities of static code analysis.
Learning Materials
Symfony
- Symfony Featured
- KonstantinKuklin / AsseticStaticGzipBundle - Smart statics compression. Submitted by KonstantinKuklin .
- Symfony Guide - Bundle
- Symfony Guide - Console
How to make friends JMS Serializer and LiipImagineBundle
Symfony how to use FOSRestBundle
SonataAdminBundle: Creating an Object from a List View (Part 1)
Yii
- Yii 2.0 Cookbook: RBAC - An example of role-based access control in Yii 2.0.
Launched beta.yiiframework.ru
Laravel / lumen
- Attendize / Attendize is an open source platform on Laravel for managing events and selling tickets to them.
- JSON Web Token Authentication for Lumen
- Create a Hacker News Reader with Lumen
- A selection of materials by Lumen
- Repository pattern in Laravel 5
- Creating a passwordless authentication system on Laravel
What's new awaits us in Laravel 5.2.23
- Implementing the new range operator in PHP , 2 - A great post on PHP internals detailing the steps to add a new operator to the interpreter.
- Command Bus and Action-Domain-Responder
- LAMP stack performance optimization
Programming Principles - Part 2: Getting Rid of NULL - Submitted by haruatari .
How Cloud@mail.ru saved all * my files and what came of it
We continue to accelerate the blog on WordPress - PHP7, ESI in Varnish, XtraDB, effective compression and disabling of excess
A long story about localizing dates without a year in PHP
The digest of interesting materials from the world of Drupal # 18
How split testing works in Badoo
Audio and video
PHP Roundtable: 041: The PHP-FIG: Past, Present & Future
Five Minute PHP Issue # 18 - What is RFC in the PHP world?
SDCast # 40: visiting Anatole Belsky, core-developer, PHP 7 release manager
Entertaining
Thanks for attention!
If you notice a mistake or inaccuracy - please inform me in PM .
Questions and suggestions write to mail or twitter .
Send links to interesting articles or useful tools that were not in the PHP Digests , and your name will be next to the link in the release.
Send link
Quick search for all digests
← Previous release: PHP Digest No. 80