- PVSM.RU - https://www.pvsm.ru -

PHP-Дайджест № 84 – интересные новости, материалы и инструменты (10 – 24 апреля 2016)

PHP-Дайджест № 84 – интересные новости, материалы и инструменты (10 – 24 апреля 2016) - 1

Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!

PHP-Дайджест № 84 – интересные новости, материалы и инструменты (10 – 24 апреля 2016) - 2 Новости и релизы

  • Высокопроизводительный PHP — PHP-PM [1] — Два года назад автор поста опубликовал заметку [2] о запуске Symfony-приложения с помощью ReactPHP. Тогда это позволило получить десятикратный прирост производительности. В посте автор проводит ретроспективу и обзор текущего состояния проекта. Например, сейчас с помощью php-pm [3] так же можно запустить приложения на Laravel, Zend, Drupal.
  • WordPress 4.5 “Coleman” [4] — Вышедшая версия содержит ряд малозаметных улучшений, а вот среди изменений, запланированных [5] на 4.6 можно заметить предложение [6] о реализации PSR-4 автозагрузчика.
  • league/oauth2-server 5.0 [7] — Свежее обновление реализации OAuth 2.0 сервера на PHP. Под капотом поддержка PSR-7, JWT, и множество улучшений. Пост [8] в поддержку.
  • nikic/PHP-Parser 2.1.0 [9]

PHP-Дайджест № 84 – интересные новости, материалы и инструменты (10 – 24 апреля 2016) - 3 PHP

  • RFC: Attributes [10] — Предлагается реализовать механизм нативных аннотаций в PHP. Синтаксис позаимствован из Hack [11]. Атрибуты не исполняются, но сохраняются в абстрактном синтаксическом дереве PHP и могут быть затем использованы в PHP-расширениях, препроцессорах, и непосредственно в скриптах.
    <<...>>
    <<...>>
    function foo() {}
    

  • RFC: Anonymous Class Lexical Scope [12] — Автор предлагает решить проблему передачи зависимостей в анонимный класс. Для этого предлагается использовать use как в замыканиях:
    $foo = 5;
    $foo = new Bar() use($foo) {
        public $foo;
    };
    

  • RFC: Union Types [13] — Начиная с PHP 5.1 можно явно указывать тип передаваемых параметров, а с PHP 7.0 также тип возвращаемых значений. Предлагается сделать возможным указания множественных типов:
    function (Array | Traversable $in) {
        foreach ($in as $value) {
            echo $value, PHP_EOL;
        }
    }
    

  • RFC: Nullable Types [14] — Также предлагается сделать возможным указание типа, который может быть пустым null:
    function foo_nullable(?Bar $bar) {}
     
    foo_nullable(new Bar); // valid
    foo_nullable(null);    // valid
    foo_nullable();        // invalid
    

  • RFC: Generic Types and Functions [15] — Предложение реализовать генерики (шаблоны) в PHP породило волну обсуждений.
    А как считаете вы, насколько оправдана такая возможность в PHP? Оставляйте свой голос в опросе в конце поста и делитесь мнением в комментариях.

PHP-Дайджест № 84 – интересные новости, материалы и инструменты (10 – 24 апреля 2016) - 4 Инструменты

  • teamtnt/tntsearch [16] — Полнофункциональный движок полнотекстового поиска на PHP.
  • PHPMessageBus/messagebus [17] — Реализация шины сообщений (CommandBus, QueryBus, EventBus) на PHP 7.
  • paragonie/csp-builder [18] — Библиотека упрощает внедрение стандарта безопасности Content Securiy Policy [19], который позволяет защититься от XSS и подобных атак.
  • lavary/crunz [20] — Библиотека для работы с cron-задачами. Позволяет задавать промежутки выполнения в человеко-понятном виде.
  • SerafimArts/Properties [21] — Реализация свойств в PHP на основе phpdoc деклараций. Прислал serafimarts [22].
  • simplepie/simplepie [23] — Простой парсер Atom/RSS фидов.
  • tightenco/jigsaw [24] — Статический генератор сайтов на основе шаблонизатора Blade. Пост [25] в поддержку.
  • Corollarium/cachearium [26] — Библиотека для кэширования.
  • DusanKasan/Knapsack [27] — Удобная библиотека для работы с коллекциями.
  • leroy-merlin-br/mongolid [28] — ODM для MongoDB.
  • sebastianbergmann/phploc [29] — Классический инструмент для оценки размера проекта.
  • jmespath/jmespath.php [30] — Библиотека реализует язык запросов для JSON-документов.
  • ramsey/uuid [31] — Реализация генератора UUID [32] по стандарту RFC 4122 [33]. Пост [34] в поддержку.

PHP-Дайджест № 84 – интересные новости, материалы и инструменты (10 – 24 апреля 2016) - 5 Материалы для обучения

PHP-Дайджест № 84 – интересные новости, материалы и инструменты (10 – 24 апреля 2016) - 16 Аудио и видеоматериалы

PHP-Дайджест № 84 – интересные новости, материалы и инструменты (10 – 24 апреля 2016) - 22 Занимательное

Спасибо за внимание!

Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку [73].
Вопросы и предложения пишите на почту [74] или в твиттер [75].

Присылайте ссылки [76] на интересные статьи или полезные инструменты, которых не было в PHP-Дайджестах [77], и ваше имя будет рядом с присланной ссылкой в выпуске.

Быстрый поиск по всем дайджестам [77]
Предыдущий выпуск: PHP-Дайджест № 83 [78]

Автор: Zfort Group

Источник [79]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/news/118993

Ссылки в тексте:

[1] Высокопроизводительный PHP — PHP-PM: http://marcjschmidt.de/blog/2016/04/16/php-high-performance-reactphp-jarves-symfony-follow-up.html

[2] заметку: http://marcjschmidt.de/blog/2014/02/08/php-high-performance.html

[3] php-pm: https://github.com/php-pm/php-pm

[4] WordPress 4.5 “Coleman”: https://wordpress.org/news/2016/04/coleman/

[5] запланированных: https://make.wordpress.org/core/4-6/

[6] предложение: https://core.trac.wordpress.org/ticket/36335

[7] league/oauth2-server 5.0: https://github.com/thephpleague/oauth2-server

[8] Пост: http://alexbilbie.com/2016/04/league-oauth2-server-version-5-is-out

[9] nikic/PHP-Parser 2.1.0: https://github.com/nikic/PHP-Parser/releases/tag/v2.1.0

[10] RFC: Attributes: https://wiki.php.net/rfc/attributes

[11] позаимствован из Hack: https://docs.hhvm.com/hack/attributes/introduction

[12] RFC: Anonymous Class Lexical Scope: https://wiki.php.net/rfc/lexical-anon

[13] RFC: Union Types: https://wiki.php.net/rfc/union_types

[14] RFC: Nullable Types: https://wiki.php.net/rfc/nullable_types

[15] RFC: Generic Types and Functions: https://wiki.php.net/rfc/generics

[16] teamtnt/tntsearch: https://github.com/teamtnt/tntsearch

[17] PHPMessageBus/messagebus: https://github.com/phpmessagebus/messagebus

[18] paragonie/csp-builder: https://github.com/paragonie/csp-builder

[19] Content Securiy Policy: https://en.wikipedia.org/wiki/Content_Security_Policy

[20] lavary/crunz: https://github.com/lavary/crunz

[21] SerafimArts/Properties: https://github.com/SerafimArts/Properties

[22] serafimarts: https://habrahabr.ru/users/serafimarts/

[23] simplepie/simplepie: https://github.com/simplepie/simplepie

[24] tightenco/jigsaw: https://github.com/tightenco/jigsaw

[25] Пост: http://blog.tighten.co/introducing-jigsaw-a-static-site-generator-for-laravel-developers

[26] Corollarium/cachearium: https://github.com/Corollarium/cachearium

[27] DusanKasan/Knapsack: https://github.com/DusanKasan/Knapsack

[28] leroy-merlin-br/mongolid: https://github.com/leroy-merlin-br/mongolid

[29] sebastianbergmann/phploc: https://github.com/sebastianbergmann/phploc

[30] jmespath/jmespath.php: https://github.com/jmespath/jmespath.php

[31] ramsey/uuid: https://github.com/ramsey/uuid

[32] UUID: https://ru.wikipedia.org/wiki/UUID

[33] RFC 4122: http://tools.ietf.org/html/rfc4122

[34] Пост: https://benramsey.com/blog/2016/04/ramsey-uuid/

[35] Суперскоростной Symfony — ReactPHP: https://gnugat.github.io/2016/04/13/super-speed-sf-react-php.html

[36] Суперскоростной Symfony — nginx: https://gnugat.github.io/2016/04/20/super-speed-sf-nginx.html

[37] Symfony: обработка запросов в API: https://habrahabr.ru/post/281875/

[38] Фильтрация данных в Symfony: https://habrahabr.ru/post/281863/

[39] Гибкая модульная архитектура на Yii2: http://haru-atari.com/blog/14/flexible-module-architecture-on-yii2-path-1

[40] HaruAtari: https://twitter.com/HaruAtari

[41] yeesoft/yii2-yee-cms: https://github.com/yeesoft/yii2-yee-cms

[42] zeeshanu/dingo-project-managment: https://github.com/zeeshanu/dingo-project-managment

[43] hyn/multi-tenant: https://github.com/hyn/multi-tenant

[44] InfyOmLabs/laravel-generator: https://github.com/InfyOmLabs/laravel-generator

[45] Mahmoudz/Hello-API: https://github.com/Mahmoudz/Hello-API

[46] Отправляем логи Laravel в ElasticSearch с помощью Logstash: http://learninglaravel.net/parsing-and-sending-laravel-logs-to-elasticsearch-using-logstash/link

[47] Laravel Timestamp Validator: https://habrahabr.ru/post/281827/

[48] PHP 7 Arrays: HashTables: http://jpauli.github.io/2016/04/08/hashtables.html

[49] Мультиязычные приложения с помощью Twig и Gettext: http://www.sitepoint.com/easy-multi-language-twig-apps-with-gettext/

[50] Ускорение автозагрузки в PHP 5.6 & 7.0+ : http://blog.blackfire.io/speeding-up-autoloading-on-php-5-6-7-0-for-everyone.html

[51] Как внести свой вклад в PHP: Исправляем баги в ядре PHP: http://www.sitepoint.com/contributing-to-php-how-to-fix-bugs-in-the-php-core/

[52] О проблемах безопасности при десериализации в PHP: https://paragonie.com/blog/2016/04/securely-implementing-de-serialization-in-php

[53] Трансдьюсеры в PHP легко и просто: http://www.sitepoint.com/transducers-in-php-explained-and-demonstrated/

[54] PSR-7 и куки сессии: http://paul-m-jones.com/archives/6310

[55] Использование PSR-7 middleware с помощью ReactPHP: https://mwop.net/blog/2016-04-17-react2psr7.html

[56] phly/react2psr7: https://github.com/phly/react2psr7

[57] breakthenet/HackMe-SQL-Injection-Challenges: https://github.com/breakthenet/hackme-sql-injection-challenges

[58] Обзор изменений и планов по ZF3 за последние три недели: http://framework.zend.com/blog/2016-04-21-zf3-update.html

[59] Анализ зловредного спамерского скрипта: https://jelleraaijmakers.nl/2016/04/dissecting-spammers-spam-script

[60] PHPUnit для начинающих. Часть 3: Тестовые «двойники»: http://phpprofi.ru/blogs/post/41

[61] Кэширование запросов с помощью PHP и MySQLnd: http://phpprofi.ru/blogs/post/36

[62] Бенчмарк Magento 1.9 CE и Magento 2.0 CE на PHP 7: https://www.magecore.com/blog/news/php-7-affects-performance-magento-1-9-ce-vs-magento-2-0-ce

[63] Увеличение производительности Magento: https://habrahabr.ru/post/282025/

[64] PHP UK Conference 2016: https://habrahabr.ru/company/badoo/blog/281443/

[65] Как я опробовал Microsoft Project Oxford + Telegram Bot API: https://habrahabr.ru/post/282125/

[66] Оптимизация модели Nested Set в PHPixie: https://habrahabr.ru/post/282305/

[67] Zend Expressive за 15 минут: https://nomadphp.com/2016/04/18/zend-expressive-15-minutes/

[68] Что нового в PhpStorm 2016.1: https://www.youtube.com/watch?v=mLugGhyo3yc

[69] PHP Roundtable #044: Asynchronous PHP: https://www.phproundtable.com/episode/asynchronous-php

[70] Пятиминутка PHP: Выпуск №19 — PHP Annotated Monthly: http://5minphp.ru/episode19/

[71] SDCast #42: в гостях Антон Шевчук: https://sdcast.ksdaemon.ru/2016/04/sdcast-42/

[72] Jordi Boggiano: Статистика файлов в Composer-пакетах: https://seld.be/notes/common-files-in-php-packages

[73] личку: http://habrahabr.ru/conversations/pronskiy/

[74] почту: mailto:roman@pronskiy.com

[75] твиттер: https://twitter.com/pronskiy

[76] Присылайте ссылки: http://bit.ly/php-digest-add-link

[77] не было в PHP-Дайджестах: http://pronskiy.github.io/php-digest/

[78] Предыдущий выпуск: PHP-Дайджест № 83: https://habrahabr.ru/company/zfort/blog/281306/

[79] Источник: https://habrahabr.ru/post/282331/