Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0, Symfony 4 и другие релизы, предложение из PHP Internals, материалы по фреймворкам, асинхронный PHP, порция полезных инструментов, и многое другое. Приятного чтения!
Новости и релизы
- PHP 7.2.0 — Долгожданный мажорный релиз PHP доставлен строго по расписанию. 236 коммитеров и 4456 коммитов. Спасибо всем контрибьюторам и релиз-менеджерам за проделанную работу! В свежей версии интерпретатора улучшена производительность, а также ряд других улучшений:
- Новый тип object
- Криптографическая библиотека Sodium в ядре
- Хеширование пароля с помощью Argon2
- Эмуляции подготовленных выражений
- Расширение типа параметра
- Множество функций объявлены устаревшими
→ Полный список изменений
Подробнее о том, как установить PHP 7.2 на различных ОС. - Symfony 4 — Не просто обновление, а переосмысленный фреймворк.
- Автоматическая установка пакетов с помощью Symfony Flex
- Авторегистрируемы и автоподключаемые сервисы
- Микрофреймворк из коробки: Symfony 4 приложение на 70% меньше, чем Symfony 3
- Webpack Encore для работы с фронтендом
- И множество других улучшений
- Доступен PhpStorm 2017.3
- PSR-15 Server Request Handlers — Стандарт обработчиков запросов и middleware перешел в стадию ревью.
- PHP 7.0.26
- PHP 7.1.12
- Symfony Moscow Meetup #14 — Пройдет 14 декабря в гостях у компании Rambler&Co
PHP Internals
- RFC: Explicit call-site pass-by-reference — Отличное предложение от Никиты Попова. На данный момент тот факт, что функция принимает аргумент по ссылке обозначается только в определении самой функции:
function inc(&$num) { $num++; } $i = 0; inc($i); var_dump($i); // int(1)
Предлагается сделать возможным явное указание передачи по ссылке. Тем самым предупреждая разработчика о том, что переданная переменная изменится:
function inc(&$num) { $num++; } $i = 0; inc(&$i); var_dump($i); // int(1)
Инструменты
- yiisoft/di — Экспериментальный независимый от фреймворка и совместимый с PSR-11 DI-контейнер и инжектор от команды Yii.
- PHPStan 0.9 — Отличный статический анализатор для PHP. Подробнее о релизе 0.9 в посте автора. Онлайн-песочница для проверки кода.
- Indatus/trucker — Пакет для использования удаленных ресурсов API (обычно RESTful) как моделей в стиле ActiveResource.
- coraxster/flysystem-owncloud, coraxster/flysystem-aws-s3-v3-minio — Пара провайдеров для Flysystem: Owncloud и Minio соответственно. Прислал corax.
- acelot/automapper — Автомаппер данных для PHP 7. Прислал eee.
- javibravo/simpleue — Простая очередь и воркеры с поддержкой AWS SQS, Redis, Beanstalkd в качестве бэкенда.
- rectorphp/rector — Инструмент для обновления ваших приложений на основе AST.
- apioo/fusio — Открытая платформа управления API на PHP.
- TinyLara/TinyLara — Простой микрофреймворк.
- arvenil/ninja-mutex — Реализация мьютекса для PHP с поддержкой различных адаптеров (flock, memcache, mysql, redis, ...).
Материалы
Symfony
- Symfony 3.4.0 — Список новых возможностей.
- Будущий релиз Symfony 4.0 и проект с использованием Symfony Flex
- Обзор Symfony 4
- Добавляем GraphQL API в приложение Symfony Flex
- Неймспейсы и организация сервисов бизнес-логики в Symfony
- krlove/async-service-call-bundle — Бандл позволяет вызывать методы сервисов приложения асинхронно в фоновом php-процессе. Прислал Андрей Мищенко
- wouterj/WouterJEloquentBundle — Интегрирует Eloquent ORM из Laravel в Symfony
- Неделя Symfony #569 (20-26 ноября 2017)
- Неделя Symfony #570 (27 ноября — 3 декабря 2017)
- Неделя Symfony #571 (4-10 декабря 2017)
Yii
- Yii PHP Framework принял AMQP Interop — В официальный компонент Yii для работы с очередями yiisoft/yii2-queue добавлена поддержка queue-interop/amqp-interop, что означает автоматическую поддержку многих AMPQ-пакетов. Первый шаг на пути к стандартизации работы с очередями между фреймворками.
- Павел Климов: «Ф’Yii’лософия»
- Павел Климов: «Yii: миграции и инсталляции»
Laravel
- Конвертер SQL-запроса в синтаксис Laravel Query Builder
- jarektkaczyk/eloquence — Полезные расширения для Eloquent ORM.
- Создание собственных PHP функций в Laravel проекте
Zend
Async PHP
- Роман Пронский: «Асинхронный PHP» — Обзорный доклад от меня.
- ReactPHP PromiseStream: О конвертации промиса в стрим и наоборот
- Создание клиента для Memcached на ReactPHP: юнит-тестирование промисов
- Расширение дочерних процессов для ReactPHP
- Введение в промисы ReactPHP
CMS
- Месяц WordPress: ноябрь 2017
- Magento Tech Digest #7 — News, Tutorials and Tools (November 14 — December 4, 2017)
- Найди уязвимость в PHP-коде — Каждый день декабря публикуется небольшой кусок кода с уязвимостью и подробным объяснением.
- Как читать большие файлы на PHP
- Тюнинг PHP-FPM с использованием 'pm static'
- Оптимизация markdown-парсера с помощью Blackfire.io
- Opensource нам строить и жить помогает: интервью разработчика Yii Framework Александра Макарова
- Selenium Manager: история одного интерфейса
- Архитектура сервиса сбора и классификации объявлений жилья из Вконтакте
- Конструктор XML-строки из PHP-массива
- Ещё один Telegram-бот для видеонаблюдения
- Регулярные выражения для самых маленьких
Занимательное
- Переход с PHP на GO... и обратно
- Хорошая иллюстрация принципа KISS
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 120