
Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- 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
Автор: Zfort Group