Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- PHP 5.6.17, 5.5.31 и PHP 7.0.2 — Обновления актуальных веток с исправлениями проблем безопасности: переполнение буфера в функциях escapeshell, неверная обработка типов в XMLRPC, две проблемы с десериализацией пакетов в расширении WDDX, возможность чтения из областей за пределами буфера в gdImageRotateInterpolated, переполнение буфера в FPM. Также 7.0.2 улучшена стабильность.
- Yii 1.1.17
- Lumen 5.2
- Проекту Drupal исполнилось 15 лет
- PrestaShop на Symfony — Популярная платформа электронной коммерции в следующем релизе будет переписана с использованием фреймворка Symfony и его компонентов.
- PHP 5 будет поддерживаться до конца 2018 года — Было принято предложение о продлении поддержки PHP 5, а значит, еще год ветка 5.6 будет обновляться активно и затем два года в режиме исправления ошибок безопасности.
- PHAP — Анонсирован проект PHAP, который обещает возможность разработки мобильных приложений на PHP.
PHP
- RFC: Adopt Code Of Conduct — Энтони Феррара предложил ввести формальный кодекс правил поведения для проекта PHP. Правила основаны на популярном Contributor Covenant и дополнены разделами о разрешении конфликтов и применении карательных мер к нарушителям.
Предложение породило волну обсуждений и серию постов (1, 2, 3).
- RFC: Simple Cryptography Library — Предлагается в PHP 7.1 реализовать слой Crypto абстрагирующий работу с криптографическими функциями поверх Libsodium и OpenSSL. При этом сам Libsodium предлагается включить в PHP 7.1, а mcrypt — задепрекейтить.
- RFC: Allow specifying keys in list() — Предлагается добавить возможность указания ключей в
list()
:list("name" => $this->name, "colour" => $this->colour) = $attributes;
- RFC: On-demand Name Mangling — Предлагается отключить автоматическое преобразование имен параметров в суперглобальных массивах:
a.b, a%20b, a[b => $_GET['a_b']
. - RFC: Warn about invalid strings in arithmetic — Предлагается бросать
E_NOTICE
иE_WARNING
при использовании нечисловых строк там, где ожидаются числа:
$numberOfPears = 5 * "orange"; // E_WARNING
$numberOfApples = "10 apples" + "5 pears"; // E_NOTICE
- RFC: array_key_(first|last|index) — Предлагается добавить функции
array_key_first()
,array_key_last()
,array_key_index()
, которые возвращают ключ массива по его индексу (порядковому номеру). - RFC: Operator Overloading — Для реализации перегрузки операторов предлагается добавить магические методы
__add()
,__sub()
,__mul()
,__div()
,__pow()
,__concat()
.
Инструменты
- atlasphp/Atlas.Orm — Data mapper для persistance model — Passive Record.
- fruux/sabre-xml — Библиотека для удобной работы с xml. Пост об использовании последней версии.
- padraic/humbug — Фреймворк для мутационного тестирования.
- alexpts/php-simple-events — Простой диспетчер событий. Прислал AlexPTS.
- bixuehujin/blink — Веб-фреймворк в виде демона на основе расширения swoole. Пост с обзором фреймворка.
- kapolos/pramda — Набор функций для удобного использования функционального подхода в PHP.
- ellipsesynergie/api-response — Инструмент для управления ответами API.
- plumphp/plum — Pipeline для обработки данных в PHP.
- sebastianfeldmann/phpbu — Инструмент для управления бэкапами БД и файлов.
- fusonic/linq — Реализация LINQ 2 объектов для PHP. Также имеется Athari/YaLinqo.
- malukenho/PsyGit — Библиотека для работы с Git из PHP.
- PHPFastCGI/FastCGIDaemon — FastCGI -демон реализованный на PHP. Позволяет демонизировать приложение, а не перезапускать на каждый запрос. Реализованы адаптеры для Slim, Symfony, Silex, Drupal, Zend Expressive.
- VerbalExpressions/PHPVerbalExpressions — Позволяет конструировать регулярные выражения в текучем интерфейсе.
Материалы для обучения
-
Symfony
- TDD для ваших API с помощью Symfony и PHPUnit
- Бенчмарки Symfony: Symfony Proxy vs. Varnish
- Бенчмарки Symfony: PHP 5.6, HHVM 3.11 и PHP 7.0.1
- Бенчмарки Symfony: Symfony Microkernel, Lumen, Silex, Slim...
- Бенчмарки Symfony: PHP-FPM vs. PHP-PM (на PHP 7 и HHVM)
- Бенчмарки Symfony: Масштабирование PHP добавлением CPU & RAM
- Самые большие сайты на фреймворке Symfony2
- Pagekit: обзор модульной CMS на базе Symfony
- Видеоуроки по Symfony 3 для начинающих
- True Dependency Injection in Symfony2 Application
-
Yii
- Наследование ActiveRecord's, описывающих одну таблицу (паттерн single table inheritance) в Yii2
- Yii2 bad behaviors
- Yiimine — Аналог Redmine на Yii Framework.
- Идеи для Yii 2.1
-
Laravel
- Объекты в PHP 7 — Отличный пост от Julien Pauli об особенностях внутренней реализации объектов в PHP 7.
- Подробный туториал по оптимизации производительности с помощью Blackfire — Об использовании онлайн профайлера от SensioLabs.
- Оптимизация league/commonmark с помощью Blackfire
- Введение в WP REST API
- Новые драйверы MongoDB для PHP и HHVM: архитектура
- Туториал по использованию Wunderlist API с помощью Guzzle
- Улучшаем DI в PHP-приложениях с помощью менеджеров плагинов Zend Framework
- О проектировании и реализации скрытого бэкдора в веб-приложении
- Принципы программирования для PHP-разработчиков — Часть 1: Уменьшение сложности
- Портирование функций Clojure на PHP для улучшения функционального программирования
- Репозиторий с демонстрацией распространенных уязвимостей веб-приложений
- Принципы, которые формируют успешные фреймворки
- Конфигурационные значения — это тоже зависимости
- Как правильно внести свою лепту в Open Source проект: простые подсказки
- Собрать лучшее из двух миров — фреймворков и CMS (часть 3)
- Слабые ссылки в PHP 7
- Быстрое создание phar файлов используя Box
Занимательное
- donutdan4114/conway-game-of-life-php — Реализация игры «Жизнь» в виде CLI-скрипта.
- PlacePhant — Картнки-заглушки с PHP-слониками.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Присылайте ссылки на интересные статьи или полезные инструменты, которых не было в PHP-Дайджестах, и ваше имя будет рядом с присланной ссылкой в выпуске.
Прислать ссылку
Быстрый поиск по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 76
Автор: Zfort Group