Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- Высокопроизводительный PHP — PHP-PM — Два года назад автор поста опубликовал заметку о запуске Symfony-приложения с помощью ReactPHP. Тогда это позволило получить десятикратный прирост производительности. В посте автор проводит ретроспективу и обзор текущего состояния проекта. Например, сейчас с помощью php-pm так же можно запустить приложения на Laravel, Zend, Drupal.
- WordPress 4.5 “Coleman” — Вышедшая версия содержит ряд малозаметных улучшений, а вот среди изменений, запланированных на 4.6 можно заметить предложение о реализации PSR-4 автозагрузчика.
- league/oauth2-server 5.0 — Свежее обновление реализации OAuth 2.0 сервера на PHP. Под капотом поддержка PSR-7, JWT, и множество улучшений. Пост в поддержку.
- nikic/PHP-Parser 2.1.0
PHP
- RFC: Attributes — Предлагается реализовать механизм нативных аннотаций в PHP. Синтаксис позаимствован из Hack. Атрибуты не исполняются, но сохраняются в абстрактном синтаксическом дереве PHP и могут быть затем использованы в PHP-расширениях, препроцессорах, и непосредственно в скриптах.
<<...>> <<...>> function foo() {}
- RFC: Anonymous Class Lexical Scope — Автор предлагает решить проблему передачи зависимостей в анонимный класс. Для этого предлагается использовать
use
как в замыканиях:$foo = 5; $foo = new Bar() use($foo) { public $foo; };
- RFC: Union Types — Начиная с PHP 5.1 можно явно указывать тип передаваемых параметров, а с PHP 7.0 также тип возвращаемых значений. Предлагается сделать возможным указания множественных типов:
function (Array | Traversable $in) { foreach ($in as $value) { echo $value, PHP_EOL; } }
- RFC: Nullable Types — Также предлагается сделать возможным указание типа, который может быть пустым null:
function foo_nullable(?Bar $bar) {} foo_nullable(new Bar); // valid foo_nullable(null); // valid foo_nullable(); // invalid
- RFC: Generic Types and Functions — Предложение реализовать генерики (шаблоны) в PHP породило волну обсуждений.
А как считаете вы, насколько оправдана такая возможность в PHP? Оставляйте свой голос в опросе в конце поста и делитесь мнением в комментариях.
Инструменты
- teamtnt/tntsearch — Полнофункциональный движок полнотекстового поиска на PHP.
- PHPMessageBus/messagebus — Реализация шины сообщений (CommandBus, QueryBus, EventBus) на PHP 7.
- paragonie/csp-builder — Библиотека упрощает внедрение стандарта безопасности Content Securiy Policy, который позволяет защититься от XSS и подобных атак.
- lavary/crunz — Библиотека для работы с cron-задачами. Позволяет задавать промежутки выполнения в человеко-понятном виде.
- SerafimArts/Properties — Реализация свойств в PHP на основе phpdoc деклараций. Прислал serafimarts.
- simplepie/simplepie — Простой парсер Atom/RSS фидов.
- tightenco/jigsaw — Статический генератор сайтов на основе шаблонизатора Blade. Пост в поддержку.
- Corollarium/cachearium — Библиотека для кэширования.
- DusanKasan/Knapsack — Удобная библиотека для работы с коллекциями.
- leroy-merlin-br/mongolid — ODM для MongoDB.
- sebastianbergmann/phploc — Классический инструмент для оценки размера проекта.
- jmespath/jmespath.php — Библиотека реализует язык запросов для JSON-документов.
- ramsey/uuid — Реализация генератора UUID по стандарту RFC 4122. Пост в поддержку.
Материалы для обучения
-
Symfony
- Суперскоростной Symfony — ReactPHP
- Суперскоростной Symfony — nginx
- Symfony: обработка запросов в API
- Фильтрация данных в Symfony
-
Yii
- Гибкая модульная архитектура на Yii2 — Прислал HaruAtari.
- yeesoft/yii2-yee-cms — CMS на Yiii 2.
-
Laravel
- zeeshanu/dingo-project-managment — Клон Trello на Laravel.
- hyn/multi-tenant — Пакет позволяет реализовать мультисайт на Laravel.
- InfyOmLabs/laravel-generator — Кодогенератор API и админки.
- Mahmoudz/Hello-API — Скелет и платформа для разработки RESTful API на Laravel.
- Отправляем логи Laravel в ElasticSearch с помощью Logstash
- Laravel Timestamp Validator
- PHP 7 Arrays: HashTables — Отличная статья от Julien Pauli о внутреннем устройстве хеш-таблиц в PHP.
- Мультиязычные приложения с помощью Twig и Gettext
- Ускорение автозагрузки в PHP 5.6 & 7.0+
- Как внести свой вклад в PHP: Исправляем баги в ядре PHP
- О проблемах безопасности при десериализации в PHP
- Трансдьюсеры в PHP легко и просто
- PSR-7 и куки сессии
- Использование PSR-7 middleware с помощью ReactPHP — Интересный пост об адаптации PSR-7 в ReactPHP, результатом которой стал пакет phly/react2psr7.
- breakthenet/HackMe-SQL-Injection-Challenges — Интерактивная обучалка по обнаружению SQL-инъекций.
- Обзор изменений и планов по ZF3 за последние три недели
- Анализ зловредного спамерского скрипта
- PHPUnit для начинающих. Часть 3: Тестовые «двойники»
- Кэширование запросов с помощью PHP и MySQLnd
- Бенчмарк Magento 1.9 CE и Magento 2.0 CE на PHP 7
- Увеличение производительности Magento
- PHP UK Conference 2016
- Как я опробовал Microsoft Project Oxford + Telegram Bot API
- Оптимизация модели Nested Set в PHPixie
Аудио и видеоматериалы
- Zend Expressive за 15 минут
- Что нового в PhpStorm 2016.1
- PHP Roundtable #044: Asynchronous PHP
- Пятиминутка PHP: Выпуск №19 — PHP Annotated Monthly
- SDCast #42: в гостях Антон Шевчук
Занимательное
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Присылайте ссылки на интересные статьи или полезные инструменты, которых не было в PHP-Дайджестах, и ваше имя будет рядом с присланной ссылкой в выпуске.
Быстрый поиск по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 83
Автор: Zfort Group