Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- PHP 5.5.35, 5.6.21, 7.0.6 — Обновления актуальных веток с исправлениями проблем безопасности.
- Проблема безопасности в IDE от JetBrains — Уязвимость содержится во всех IDE на платформе IntelliJ версии v2016.1 и старее, включая PhpStorm. Апдейты выпущены, обновляемся.
- Множество уязвимостей в ImageMagick, одна из которых ведёт к RCE
- PSR-14 Event Manager — Черновик нового стандарта от группы PHP-FIG.
- State of the FIG — В PHP-FIG наметился разлад, а несколько представителей выразили желание покинуть группу, так как практически не принимают участие в обсуждении новых стандартов: Laravel, Propel, Doctrine, Guzzle. Также в ответ на чрезмерную бюрократизацию появилась инициатива PHP Community Driven Standards, в рамках которой предлагается дать возможность участвовать в создании стандартов всем желающим. Будем надеяться на дальнейшую эффективную работу PHP-FIG и интересные предложения от сообщества.
- DevConf-2016 — 17 июня в Москве пройдет очередная ежегодная конференция для веб-разработчиков. PHP-секция представлена интересными заявками: «Развитие ветки PHP-7.*» от Дмитрия Стогова, «Безопасность: от базовых принципов до особенностей PHP» от Александра Макарова, «Как Badoo перешли на PHP7 и сэкономили $1M» от Юрия Насретдинова и другие.
- Yii 2.0.8 — Под капотом сотня исправлений и улучшений.
- Bolt 3.0.0 — Релиз популярной CMS на компонентах Symfony.
- Go! AOP Framework 2.0.0
PHP
- RFC: Pipe Operator — Предлагается портировать оператор
|>
из 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 — Предлагается реализовать полуавтоматическую защиту от 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 — Предлагается сделать возможным указание группы типов для аргументов. При этом передаваемое значение должно реализовывать все типы:
function RecordsToList(Countable & Traversable $input): String { }
В случае если также будет принято предложение RFC: Union Types, станет возможным гибкое указание типов:
function RecordsToList(Array | (Countable & Traversable) $input): String { }
- RFC: Simple Annotations — Упрощенные аннотации в противовес атрибутам, предложенным ранее. В данном случае аннотации это массив PHP-выражений.
- RFC: Nullable Types — Принято предложение, которое позволяет передавать null в качестве аргумента с указанным типом:
function foo_nullable(?Bar $bar) {} foo_nullable(new Bar); // valid foo_nullable(null); // valid foo_nullable(); // invalid
- RFC: Catching Multiple Exception Types — Предложение принято. В PHP 7.1 станет возможным отлов нескольких типов исключений в одном catch-блоке:
try { // Some code... } catch (ExceptionType1 | ExceptionType2 $e) { // Code to handle the exception } catch (Exception $e) { // ... }
- PHP 7.1 — В июне ожидается уже первая альфа PHP 7.1. Также для грядущей версии выбраны релиз-менеджеры: Davey Shafik и Joe Watkins.
- @PHPRFCBot — Твиттер-аккаунт для тех, кто хочет следить за новыми RFC для PHP. Также напомню про специальный ресурс php-rfc-watch.beberlei.de для мониторинга RFC.
Инструменты
- undemanding/difference — Библиотека позволяет оценить различия между изображениями.
- sensiolabs-de/deptrac — Инструмент статического анализа кода для определения зависимостей между слоями приложения. Видеотуториал и пост в поддержку.
- ronanguilloux/IsoCodes — Библиотека для валидации различных стандартных кодов: Zip-коды 175 стран, телефонные номера, номера кредитных карт, ISBN, национальные идентификационные коды и другие.
- rocketeers/rocketeer — Инструмент для запуска задач и развертывания приложений. Туториал по использованию.
- paragonie/halite — Криптографическая библиотека для PHP. Обертка над libsodium. Пост об использовании в поддержку.
- K-Phoen/Rusty — Инструмент позволяет реализовать тесты в аннотациях а-ля Rust.
- webdevops/clitools — Набор консольных инструментов для ускорения работы с Docker, PHP, MySQL.
- usmanhalalit/pixie — Годный query builder.
- cboden/Binky — Консольный мини-клиент для AMQP.
- tightenco/collect — Коллекции из Laravel отдельным пакетом.
- ihor/Nspl — Набор полезных функций для программирования в функциональном стиле.
- slevomat/coding-standard — Расширенный стандарт кодирования для PHP_CodeSniffer.
- bartblaze/PHP-backdoors — Подборка бэкдоров на PHP.
Материалы для обучения
-
Symfony
- Фильтрация данных в Symfony
- SonataAdminBundle: создание объекта из List View (часть 2)
- Symfony и Command Bus
- Суперскоростной Symfony с помощью nginx
-
Yii
- Yii: лучшие практики
- pgaultier/yii2-redis-rbac — Расширение для хранения информации RBAC в Redis.
-
Laravel
- spatie-custom/blender — Шаблон и скелет приложения на Laravel.
- laravel/valet — Легковесное рабочее окружение для Laravel (и не только) под Mac OS X. Использует веб-сервер Caddy, Dnsmasq, и ngrok.
-
Zend Framework
- Переименован репозиторий Zend Framework — Для упрощения плавного перехода на третью версию фреймворка из имени репозитория убрана версия: zf2 -> zendframework.
- Об удалении интерфейса ServiceLocatorAware в ZF3
- Неизменияемые объекты — Что такое, для чего нужны и как использовать.
- INI директивы это зло — О том, во что обходится добавление новых конфигурационных директив для включения/отключения фич в PHP.
- В направлении CQRS, Command Bus — Об использовании командной шины в построении приложений согласно паттерну Command Query Responsibility Segregation.
- Никогда не используйте null — Что лучше использовать вместо null в качестве значений свойств и возвращаемых значений.
- О сборщике мусора сессий в PHP
- В поиске фабрики анонимных классов, 2 — Автор экспериментирует с
eval()
с целью добавить трейты к классу динамически. - Пишем SQL, который работает на PostgreSQL, MySQL и SQLite
- Небольшой обзор альтернативных реализаций PHP: HippyVM, JPHP, Tagua VM, Peachpie
- Бинарный вебшел через OPcache в PHP 7 — Интересный пост о том, как зловредный код может быть спрятан в OPcache.
- Разговор о MVC и архитектуре веб-приложений
- Работа с WAV-файлами с использованием PHP
- Дайджест интересных материалов из мира Drupal #20
- Обновление PHP до 7.0.6 может «сломать» ваш код
- Проверка PHP 7
- Исповедь Битрикс хейтера
- Разработка чат-бота для Facebook Messenger
- 5 стадий API: что мы поняли, написав две версии
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Присылайте ссылки на интересные статьи или полезные инструменты, которых не было в PHP-Дайджестах, и ваше имя будет рядом с присланной ссылкой в выпуске.
Прислать ссылку
Быстрый поиск по всем дайджестам
← Предыдущий выпуск: PHP Дайджест № 84
Автор: Zfort Group