Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- WordPress 4.7.2 — Обновление примечательно тем, что в нем без огласки была устранена критическая уязвимость, позволяющая удалённому атакующему без аутентификации изменить содержимое любой страницы через манипуляцию с REST API.
Несмотря на то что уязвимости подвержены только WordPress версий 4.7.0 и 4.7.1, по интернету прокатилась волна автоматизированных атак. Взлому уже подверглись более 1,5 миллиона ресурсов. - PhpStorm 2017.1 EAP 171.3019 — В свежей EAP версии добавлена поддержка Codeception.
- Go! AOP Framework 2.1.0 — В релизе поддержка PHP 7.1 и несколько новых возможностей.
- PHPUnit 6.0.0 — Данный релиз требует PHP версии не ниже 7.0, также для большинства классов теперь используются пространства имен вместо префиксов. Полный список изменений тут. Небольшой туториал по миграции.
- Релиз LiveStreet 2.0
- Yii 2.0.11
PHP
- RFC: Make Libsodium a Core Extension — Предложение включить криптографическую библиотеку Libsodium в ядро успешно прошло голосование и будет реализовано уже в PHP 7.2. Сообщество также проголосовало за использование префиксного синтаксиса
sodium_*
вместо пространства имен\Sodium\*
. Тем не менее уже доступна обертка firehed/sodium для использования функций через пространство имен. Нельзя не отметить иронию автора.
- RFC: Arrow Functions — Четвертая попытка добавить короткий синтаксис для анонимных функций в PHP.
Первое предложение с конструкцией вида:$x ~> $x + $y
не прошло голосование. Затем был предложен альтернативный синтаксис:function($x) => $x + $y
. Дальше выносился на рассмотрение синтаксис:^($x) => $x + $y
. На этот раз предлагается использоватьfn(parameter_list) => expr
:
function ($x) use ($y) { return $x + $y; } // Эквивалентно: fn($x) => $x + $y
Кстати, инструмент 3v4l.org позволяет протестировать код на RFC, для которых существует ветка с реализацией, в частности, для Arrow Functions.
Инструменты
- wapmorgan/Morphos — Морфологическое решение на PHP для русского языка: склонение имен и существительных, плюрализация, количественные числительные.
- wapmorgan/BinaryStream — Библиотека для удобного чтения бинарных файлов.
- 1ma/RedisSessionHandler — Обработчик сессии для Redis, в котором по сравнению со встроенным в phpredis исправлены ошибка блокировки и реализована защита от фиксации сессии.
- peridot-php/peridot — BDD-фреймворк для тестирования. Туториал по использованию. Имеется плагин для параллельного запуска тестов peridot-php/peridot-concurrency.
- ericmann/sessionz — Альтернативный менеджер сессий. Видеотуториал.
- tommy-muehle/php-composer-plugin-devenv — Дев-окружение для разработки плагинов для Composer и пост от автора в поддержку.
- maghead/maghead — ORM для PHP 7 с кодогенерацией и другими фишками. Судя по бенчмарку, довольно быстрая.
- wizaplace/github-to-mysql — Скрипт для синхронизации данных из GitHub (issues, labels, ...) в MySQL.
- maennchen/ZipStream-PHP — Библиотека позволяет создавать zip-архив на лету и писать в поток. Пост в поддержку.
- patrickschur/language-detection — Библиотека для определения языка по заданной строке.
- SocialConnect/auth — Библиотека для аутентификации через соц. сервисы (OAuth1/2, OpenID, OpenIDConnect). 20+ провайдеров из коробки (VK, FB, G+, Twitter, Steam и т.д.).
Материалы для обучения
PHP 7
- PHP’s not dead! — О миграции на PHP 7 в OLX.
- Путеводитель по нововведениям PHP 7.0 и 7.1
Symfony
- mnapoli/fluent-symfony — Конфигурация DI-контейнера с текучим интерфейсом.
- wallabag/wallabag — Read-it-later (Pocket, Readability, Instapaper) сервис на базе Symfony. Доступен также код приложений на iOS, Android, и расширения для Chrome.
- gpslab/geoip2 — Symfony Bundle для Maxmind GeoIP2 API. Прислал ghost404.
- Symfony Demo 1.0.0 — Официальное приложение на Symfony с демонстрацией лучших практик.
- В Symfony 3.3 будет реализован стандарт PSR-11 для контейнеров — Голосование по стандарту PSR-11 подходит к концу и с большой вероятностью пройдет успешно.
- Неделя Symfony #527 (30 января — 5 февраля 2017)
- Неделя Symfony #528 (6-12 февраля 2017)
Yii
- Yii2 Inspections for IntelliJ IDEA (PhpStorm) 1.0.0
- craftcms/cms — CMS на основе Yii 2.
Laravel
- 13 генераторов админок для Laravel
- Масштабирование Laravel с помощью AWS Elastic Beanstalk
- Laracon Online — Анонсирована онлайн-конференция по Laravel, которая пройдет 8 марта.
- Криптографически безопасная разработка на PHP
- Приведение типов и внедрение объекта — О том, почему небезопасно использовать
unserialize()
с пользовательскими данными на примере исследования ExpressionEngine. - Awesome Composer — Подборка материалов, плагинов, и полезных ресурсов по Composer.
- Как сделать PHP еще более современным? С помощью препроцессинга! — preprocess.io — под капотом используется уже известный marcioAlmada/yay.
- Туториал по работе с Reddit API
- Короткое введение в TypeScript для PHP-разработчиков
- Вводный туториал по использованию RabbitMQ
- Запускаем PHPUnit тесты внутри Docker-контейнера из PhpStorm
- Пагинация коллекций данных с помощью zend-paginator
- Об ответах с ошибками API в PSR-7
- Заметка об использовании констант в PHP-приложении
- Введение в проектирование сущностей, проблемы создания объектов
- Tarantool: Хороший, Плохой, Злой
- Как создать Viber-бота с помощью PHP
- Отчет и материалы конференции MageConf 2016
Занимательное
- Немного истории PHP — Расмус Лердорф опубликовал changelog ранних версий PHP 1.90 — 2.0.1.
- hannob/php-crashers — Примеры скриптов, которые вызывают segfault в PHP
- Рейтинг e-commerce платформ с открытым исходным кодом
- XSS game — Мини-игра от Google для тренировки навыков поиска XSS-уязвимостей.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Прислать ссылку
Быстрый поиск по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 101