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

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

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

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

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

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

  • PHP 5.5.35 [1], 5.6.21 [2], 7.0.6 [3] — Обновления актуальных веток с исправлениями проблем безопасности.
  • Проблема безопасности в IDE от JetBrains [4] — Уязвимость содержится во всех IDE на платформе IntelliJ версии v2016.1 и старее, включая PhpStorm. Апдейты выпущены, обновляемся.
  • habr Множество уязвимостей в ImageMagick, одна из которых ведёт к RCE [5]
  • PSR-14 Event Manager [6] — Черновик нового стандарта от группы PHP-FIG.
  • State of the FIG [7] — В PHP-FIG наметился разлад, а несколько представителей выразили желание покинуть группу, так как практически не принимают участие в обсуждении новых стандартов: Laravel [8], Propel [9], Doctrine [10], Guzzle [11]. Также в ответ на чрезмерную бюрократизацию появилась инициатива PHP Community Driven Standards [12], в рамках которой предлагается дать возможность участвовать в создании стандартов всем желающим. Будем надеяться на дальнейшую эффективную работу PHP-FIG и интересные предложения от сообщества.
  • DevConf-2016 [13] — 17 июня в Москве пройдет очередная ежегодная конференция для веб-разработчиков. PHP-секция [14] представлена интересными заявками: «Развитие ветки PHP-7.*» от Дмитрия Стогова, «Безопасность: от базовых принципов до особенностей PHP» от Александра Макарова, «Как Badoo перешли на PHP7 и сэкономили $1M» от Юрия Насретдинова и другие.
  • habr Yii 2.0.8 [15] — Под капотом сотня исправлений и улучшений.
  • Bolt 3.0.0 [16] — Релиз популярной CMS на компонентах Symfony.
  • Go! AOP Framework 2.0.0 [17]

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

  • RFC: Pipe Operator [18] — Предлагается портировать оператор |> из Hack, что позволит записывать цепочки вложенных вызовы в более читаемом виде:
    $ret = scandir($arg)
        |> array_filter($$, function($x) { return $x !== '.' && $x != '..'; })
        |> array_map(function ($x) use ($arg) { return $arg . '/' . $x; }, $$)
        |> getFileArg($$)
        |> array_merge($ret, $$);
    

  • RFC: Semi-Automatic CSRF Protection [19] — Предлагается реализовать полуавтоматическую защиту от CSRF из коробки с помощью сессий.
    Форму

    <form action="http://example.com/edit.php" method="POST">
    <textarea name="comment"></textarea>
    <input type="submit" />
    

    можно автоматически будет обезопасить с помощью вызова

    session_start(['csrf_rewrite'=>SESSION_CSRF_POST, 'csrf_validate'=SESSION_CSRF_POST]);
    

  • RFC: Intersection Types [20] — Предлагается сделать возможным указание группы типов для аргументов. При этом передаваемое значение должно реализовывать все типы:
    function RecordsToList(Countable & Traversable $input): String { }
    

    В случае если также будет принято предложение RFC: Union Types [21], станет возможным гибкое указание типов:

    function RecordsToList(Array | (Countable & Traversable) $input): String { }
    

  • RFC: Simple Annotations [22] — Упрощенные аннотации в противовес атрибутам [23], предложенным ранее. В данном случае аннотации это массив PHP-выражений.
  • RFC: Nullable Types [24] — Принято предложение, которое позволяет передавать null в качестве аргумента с указанным типом:
    function foo_nullable(?Bar $bar) {}
     
    foo_nullable(new Bar); // valid
    foo_nullable(null);    // valid
    foo_nullable();        // invalid
    

  • RFC: Catching Multiple Exception Types [25] — Предложение принято. В PHP 7.1 станет возможным отлов нескольких типов исключений в одном catch-блоке:
    try {   
        // Some code...
    } catch (ExceptionType1 | ExceptionType2 $e) {
       // Code to handle the exception
    } catch (Exception $e) {
       // ...
    }
    

  • PHP 7.1 [26] — В июне ожидается уже первая альфа PHP 7.1. Также для грядущей версии выбраны релиз-менеджеры: Davey Shafik [27] и Joe Watkins [28].
  • @PHPRFCBot [29] — Твиттер-аккаунт для тех, кто хочет следить за новыми RFC для PHP. Также напомню про специальный ресурс php-rfc-watch.beberlei.de [30] для мониторинга RFC.

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

  • undemanding/difference [31] — Библиотека позволяет оценить различия между изображениями.
  • sensiolabs-de/deptrac [32] — Инструмент статического анализа кода для определения зависимостей между слоями приложения. Видеотуториал [33] и пост [34] в поддержку.
  • ronanguilloux/IsoCodes [35] — Библиотека для валидации различных стандартных кодов: Zip-коды 175 стран, телефонные номера, номера кредитных карт, ISBN, национальные идентификационные коды и другие.
  • rocketeers/rocketeer [36] — Инструмент для запуска задач и развертывания приложений. Туториал [37] по использованию.
  • paragonie/halite [38] — Криптографическая библиотека для PHP. Обертка над libsodium [39]. Пост [40] об использовании в поддержку.
  • K-Phoen/Rusty [41] — Инструмент позволяет реализовать тесты в аннотациях а-ля Rust [42].
  • webdevops/clitools [43] — Набор консольных инструментов для ускорения работы с Docker, PHP, MySQL.
  • usmanhalalit/pixie [44] — Годный query builder.
  • cboden/Binky [45] — Консольный мини-клиент для AMQP.
  • tightenco/collect [46] — Коллекции из Laravel отдельным пакетом.
  • ihor/Nspl [47] — Набор полезных функций для программирования в функциональном стиле.
  • slevomat/coding-standard [48] — Расширенный стандарт кодирования для PHP_CodeSniffer.
  • bartblaze/PHP-backdoors [49] — Подборка бэкдоров на PHP.

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

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

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

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

Прислать ссылку [85]
Быстрый поиск по всем дайджестам [86]
Предыдущий выпуск: PHP Дайджест № 84 [87]

Автор: Zfort Group

Источник [88]


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

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

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

[1] PHP 5.5.35: http://www.php.net/ChangeLog-5.php#5.5.35

[2] 5.6.21: http://www.php.net/ChangeLog-5.php#5.6.21

[3] 7.0.6: http://www.php.net/ChangeLog-7.php#7.0.6

[4] Проблема безопасности в IDE от JetBrains: http://blog.jetbrains.com/blog/2016/05/11/security-update-for-intellij-based-ides-v2016-1-and-older-versions

[5] Множество уязвимостей в ImageMagick, одна из которых ведёт к RCE: https://habrahabr.ru/post/282896/

[6] PSR-14 Event Manager: https://github.com/php-fig/fig-standards/blob/master/proposed/event-manager.md

[7] State of the FIG: https://groups.google.com/forum/#!topic/php-fig/e9qZue8nZXM

[8] Laravel: https://groups.google.com/forum/#!topic/php-fig/HWX2IeiRx9Y

[9] Propel: https://groups.google.com/forum/#!topic/php-fig/HgjJJXhDYsc

[10] Doctrine: https://groups.google.com/forum/#!topic/php-fig/3PGhfQGoCj8

[11] Guzzle: https://groups.google.com/forum/#!topic/php-fig/mnqZ5ztS-pM

[12] PHP Community Driven Standards: https://github.com/php-cds/php-cds

[13] DevConf-2016: http://devconf.ru/

[14] PHP-секция: http://devconf.ru/ru/offers/php

[15] Yii 2.0.8: https://habrahabr.ru/post/282724/

[16] Bolt 3.0.0: https://bolt.cm/newsitem/bolt-3-0-0-stable-released

[17] Go! AOP Framework 2.0.0: https://github.com/goaop/framework/releases/tag/2.0.0

[18] RFC: Pipe Operator: https://wiki.php.net/rfc/pipe-operator

[19] RFC: Semi-Automatic CSRF Protection: https://wiki.php.net/rfc/automatic_csrf_protection

[20] RFC: Intersection Types: https://wiki.php.net/rfc/intersection_types

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

[22] RFC: Simple Annotations: https://wiki.php.net/rfc/simple-annotations

[23] атрибутам: https://wiki.php.net/rfc/attributes

[24] RFC: Nullable Types: https://wiki.php.net/rfc/nullable_types#voting_choices

[25] RFC: Catching Multiple Exception Types: https://wiki.php.net/rfc/multiple-catch#vote

[26] PHP 7.1: https://wiki.php.net/todo/php71

[27] Davey Shafik: https://twitter.com/dshafik

[28] Joe Watkins: https://twitter.com/krakjoe

[29] @PHPRFCBot: https://twitter.com/phprfcbot

[30] php-rfc-watch.beberlei.de: https://php-rfc-watch.beberlei.de/

[31] undemanding/difference: https://github.com/undemanding/difference

[32] sensiolabs-de/deptrac: https://github.com/sensiolabs-de/deptrac

[33] Видеотуториал: https://www.youtube.com/watch?v=T5oWc4ujmOo

[34] пост: http://symfony.com/blog/clean-software-architecture-with-deptrac

[35] ronanguilloux/IsoCodes: https://github.com/ronanguilloux/isocodes

[36] rocketeers/rocketeer: https://github.com/rocketeers/rocketeer

[37] Туториал: http://code.tutsplus.com/articles/deploy-your-php-application-with-rocketeer--cms-25838

[38] paragonie/halite: https://github.com/paragonie/halite

[39] libsodium: https://pecl.php.net/package/libsodium

[40] Пост: https://paragonie.com/blog/2016/05/solve-all-your-cryptography-problems-in-three-easy-steps-with-halite

[41] K-Phoen/Rusty: https://github.com/K-Phoen/Rusty/

[42] а-ля Rust: https://doc.rust-lang.org/book/documentation.html

[43] webdevops/clitools: https://github.com/webdevops/clitools

[44] usmanhalalit/pixie: https://github.com/usmanhalalit/pixie

[45] cboden/Binky: https://github.com/cboden/binky

[46] tightenco/collect: https://github.com/tightenco/collect

[47] ihor/Nspl: https://github.com/ihor/nspl

[48] slevomat/coding-standard: https://github.com/slevomat/coding-standard

[49] bartblaze/PHP-backdoors: https://github.com/bartblaze/php-backdoors

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

[51] SonataAdminBundle: создание объекта из List View (часть 2): https://habrahabr.ru/post/279203/

[52] Symfony и Command Bus: https://habrahabr.ru/post/280512/

[53] Суперскоростной Symfony с помощью nginx: http://ahrameev.ru/article/superskorostnojj-symfony-s-pomoshhyu-nginx.html

[54] Yii: лучшие практики: https://habrahabr.ru/post/282407/

[55] pgaultier/yii2-redis-rbac: https://github.com/pgaultier/yii2-redis-rbac

[56] spatie-custom/blender: https://github.com/spatie-custom/blender

[57] laravel/valet: https://github.com/laravel/valet

[58] Caddy: https://caddyserver.com/

[59] Dnsmasq: http://www.thekelleys.org.uk/dnsmasq/doc.html

[60] ngrok: https://ngrok.com/

[61] Переименован репозиторий Zend Framework: http://framework.zend.com/blog/2016-04-27-zf2-repo-rename.html

[62] Об удалении интерфейса ServiceLocatorAware в ZF3: https://mwop.net/blog/2016-04-26-on-locators.html

[63] Неизменияемые объекты: https://ragazzo.github.io/immutability/oop/2016/05/03/immutability.html

[64] INI директивы это зло: https://blog.pascal-martin.fr/post/ini-directives-are-evil.html#fn:why-optionnal-feature

[65] В направлении CQRS, Command Bus: https://gnugat.github.io/2016/05/11/towards-cqrs-command-bus.html

[66] Command Query Responsibility Segregation: http://martinfowler.com/bliki/CQRS.html

[67] Никогда не используйте null: https://qafoo.com/blog/083_never_use_null.html

[68] О сборщике мусора сессий в PHP: https://tideways.io/profiler/blog/php-session-garbage-collection-the-unknown-performance-bottleneck

[69] В поиске фабрики анонимных классов: https://markbakeruk.net/2016/05/03/in-search-of-an-anonymous-class-factory/

[70] 2: https://markbakeruk.net/2016/05/12/anonymous-class-factory-the-results-are-in/

[71] Пишем SQL, который работает на PostgreSQL, MySQL и SQLite: https://evertpot.com/writing-sql-for-postgres-mysql-sqlite/

[72] Небольшой обзор альтернативных реализаций PHP: HippyVM, JPHP, Tagua VM, Peachpie: https://www.symfony.fi/entry/exotic-php-implementations-hippyvm-jphp-tagua-vm-peachpie

[73] Бинарный вебшел через OPcache в PHP 7: http://blog.gosecure.ca/2016/04/27/binary-webshell-through-opcache-in-php-7/

[74] Разговор о MVC и архитектуре веб-приложений: https://habrahabr.ru/post/283096/

[75] Работа с WAV-файлами с использованием PHP: https://habrahabr.ru/post/282922/

[76] Дайджест интересных материалов из мира Drupal #20: https://habrahabr.ru/post/282772/

[77] Обновление PHP до 7.0.6 может «сломать» ваш код: https://habrahabr.ru/post/283302/

[78] Проверка PHP 7: https://habrahabr.ru/company/pvs-studio/blog/282684/

[79] Исповедь Битрикс хейтера: https://habrahabr.ru/post/282333/

[80] Разработка чат-бота для Facebook Messenger: https://habrahabr.ru/post/281559/

[81] 5 стадий API: что мы поняли, написав две версии: https://habrahabr.ru/company/uteam/blog/282385/

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

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

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

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

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

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

[88] Источник: https://habrahabr.ru/post/300832/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best