PHP Digest No. 84 - interesting news, materials and tools (April 10 - 24, 2016)
We bring to your attention the next selection with links to news and materials.
Enjoy reading!
News and Releases
- High-performance PHP - PHP-PM - Two years ago, the author of the post published a note on launching a Symfony application using ReactPHP. Then it allowed to get a tenfold increase in productivity. In a post, the author conducts a retrospective and review of the current status of the project. For example, now using php-pm you can also run applications on Laravel, Zend, Drupal.
- WordPress 4.5 “Coleman” - The released version contains a number of subtle improvements, but among the changes planned for 4.6, you can notice the proposal for the implementation of PSR-4 autoloader.
- league / oauth2-server 5.0 - Fresh update of OAuth 2.0 server implementation in PHP. Under the hood, support for PSR-7, JWT, and many improvements. Post in support.
- nikic / PHP-Parser 2.1.0
Php
- RFC: Attributes - It is proposed to implement the mechanism of native annotations in PHP. The syntax is borrowed from Hack . Attributes are not executed, but stored in the abstract PHP syntax tree and can then be used in PHP extensions, preprocessors, and directly in scripts.
<<...>> <<...>> function foo() {}
- RFC: Anonymous Class Lexical Scope - The author suggests solving the problem of passing dependencies to an anonymous class. For this, it is proposed to use
use
both in closures:$foo = 5; $foo = new Bar() use($foo) { public $foo; };
- RFC: Union Types - Starting with PHP 5.1, you can explicitly specify the type of parameters to pass, and with PHP 7.0 you can also specify the type of return values. It is proposed to make it possible to specify multiple types:
function (Array | Traversable $in) { foreach ($in as $value) { echo $value, PHP_EOL; } }
- RFC: Nullable Types - It is also proposed to make it possible to indicate a type, which may be empty null:
function foo_nullable(?Bar $bar) {} foo_nullable(new Bar); // valid foo_nullable(null); // valid foo_nullable(); // invalid
- RFC: Generic Types and Functions - The proposal to implement generics (templates) in PHP has generated a wave of discussions.
What do you think, how justified is this possibility in PHP? Leave your vote in the survey at the end of the post and share your opinion in the comments.
Instruments
- teamtnt / tntsearch - Full-featured full-text search engine in PHP.
- PHPMessageBus / messagebus - Implementation of the message bus (CommandBus, QueryBus, EventBus) in PHP 7.
- paragonie / csp-builder - The library simplifies the implementation of the Content Securiy Policy security standard , which protects against XSS and similar attacks.
- lavary / crunz - A library for working with cron tasks. Allows you to set the execution intervals in a human-readable form.
- SerafimArts / Properties - Implementation of properties in PHP based on phpdoc declarations. Sent serafimarts .
- simplepie / simplepie - Simple Atom / RSS feed parser.
- tightenco / jigsaw - Static site generator based on the Blade template engine. Post in support.
- Corollarium / cachearium - A library for caching.
- DusanKasan / Knapsack - A convenient library for working with collections.
- leroy-merlin-br / mongolid - ODM for MongoDB.
- sebastianbergmann / phploc - A classic tool for estimating project size.
- jmespath / jmespath.php - The library implements a query language for JSON documents.
- ramsey / uuid - Implementation of the UUID generator according to the RFC 4122 standard . Post in support.
Learning Materials
Symfony
- Super Speed Symfony - ReactPHP
- Super Speed Symfony - nginx
- Symfony: request processing in the API
- Data Filtering in Symfony
Yii
- Flexible modular architecture on Yii2 - Submitted by HaruAtari .
- yeesoft / yii2-yee-cms - CMS on Yii 2.
Laravel
- zeeshanu / dingo-project-managment - Trello clone on Laravel.
- hyn / multi-tenant - The package allows you to implement a multisite on Laravel.
- InfyOmLabs / laravel-generator - Code generator API and admin area.
- Mahmoudz / Hello-API - Skeleton and development platform for RESTful API on Laravel.
- Submit Laravel logs to ElasticSearch using Logstash
- Laravel timestamp validator
- PHP 7 Arrays: HashTables - An excellent article by Julien Pauli on the internal structure of hash tables in PHP.
- Multilingual applications using Twig and Gettext
- Faster startup at PHP 5.6 & 7.0+
- How to contribute to PHP: Fix bugs in the PHP core
- About security issues when deserializing in PHP
- PHP transducers easy
- PSR-7 and session cookies
- Using PSR-7 middleware with ReactPHP - An interesting post about adapting PSR-7 to ReactPHP, which resulted in the phly / react2psr7 package .
- breakthenet / HackMe-SQL-Injection-Challenges - Interactive tutorial for detecting SQL injections.
- Overview of changes and plans for ZF3 over the past three weeks
- Analysis of a malicious spam script
- PHPUnit for beginners. Part 3: Test "doubles"
- Query Caching with PHP and MySQLnd
- Benchmark Magento 1.9 CE and Magento 2.0 CE in PHP 7
- Magento Performance Increase
- PHP UK Conference 2016
- How I tried Microsoft Project Oxford + Telegram Bot API
- Optimizing the Nested Set Model in PHPixie
Audio and video
- Zend Expressive in 15 minutes
- What's New in PhpStorm 2016.1
- PHP Roundtable # 044: Asynchronous PHP
- Five Minute PHP: Issue # 19 - PHP Annotated Monthly
- SDCast # 42: Away Anton Shevchuk
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.
Quick Search All Digests
← Previous Issue: PHP Digest No. 83
Only registered users can participate in the survey. Please come in.
Generics (templates) in PHP?
- 51.3% for 176
- 17.2% vs 59
- 31.4% Not defined 108