Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0 RC 2, о будущем HHVM, предложения из PHP Internals, подборка чатов по PHP, видео с конференций и митапов, и многое другое.
Приятного чтения!
Новости и релизы
- О будущем HHVM — Не так давно многие проекты отказались от поддержки HHVM. Теперь команда HVVM анонсировала, что в долгосрочной перспективе не планирует стремиться к полной поддержке PHP 7. Вместо этого, ребята из Facebook сосредоточатся на Hack. Тем не менее в ближайшее время планируется исправить проблемы совместимости с популярными инструментами вроде Composer и PHPUnit.
- PHP 7.2.0 RC 2 — Второй релиз-кандидат доставлен по расписанию. Следующий выпуск ожидается 28 сентября. Об изменениях ветки можно почитать тут и тут. Протестировать с помощью подготовленного Docker-образа.
- Sylius v1.0.0 — Мажорный релиз популярной е-коммерс платформы на базе Symfony.
PHP Internals
- [RFC] RFC Workflow & Voting — Предлагается регламентировать процесс RFC, в частности, при голосованиях повысить порог принятия изменений до 2/3. Также обозначены критерии для тех, кто может голосовать.
- [RFC] Class Friendship — Вторая попытка реализовать концепцию дружественных классов. Дружественный класс имеет доступ к private и protected полям класса, в котором он объявлен дружественным.
- [RFC] Fiber — Интересное дополнение генераторов в PHP, которое позволило бы упростить асинхронный код.
- Pre-draft PipeOp v2 — В Internals обсуждается черновик предложения для pipe-оператора. Оригинальное предложение было раскритиковано из-за использования плейсхолдера
$$
и теперь предложен более простой вариант:
$x = "hello" |> 'strtoupper' |> function($x) { return $x . " world"; }; // $x === "HELLO world"
Инструменты
- PoweredLocal/vrata — Реализация паттерна для микросервисов API Gateway на основе Lumen.
- jamesmoss/flywheel — База данных на основе файлов (JSON, YAML, или Markdown) и с билдером запросов.
- spatie/macroable — Трейт для динамического добавления методов в класс. Подробнее в посте.
- felixfbecker/php-language-server — PHP-реализация VS Code Language Server Protocol.
- BetterReflection 2.0.0 — Рефлексия без загрузки классов.
- tagua-vm/tagua-vm — Экспериментальная виртуальная машина PHP на Rust и LLVM.
Материалы для обучения
Symfony
- Использование пользовательских функций в Symfony и Doctrine
- Избегание сущностей в формах Symfony и переосмысление разработки форм Symfony — Прислал seyfer.
- Добавление кастомного кода в ответы API
- Новое в Symfony 3.4
- Неделя Symfony #559 (11-17 сентября 2017)
- Неделя Symfony #560 (18-24 сентября 2017)
Laravel
- Voyager 1.0 — Админка для Laravel.
- kjdion84/turtle — Скаффолдинг для CRUD, аутентификации, ролей, прав доступа, форм, и прочего.
- nahid/talk — Система личных сообщений для приложения на Laravel.
- Расширяем модели в Eloquent
- Конфиг Nginx Unit + Docker, PHP, и Laravel
- Laravel Podcast s03e02: Интервью с Taylor Otwell
Zend
- Логирование в PHP-приложениях с помощью zend-log
- Emitting Responses with Diactoros
- Неделя Zend Framework 2017-09-14
Async PHP
- clue/php-buzz-react — Асинхронный PSR-7 HTTP-клиент на основе ReactPHP.
- Введение в генераторы на PHP
- Разработка игры с помощью React.js и PHP, 2
- Кэширование с помощью промисов на ReactPHP
CMS
- Вопросы выбора JS-библиотеки в WordPress — В связи патентным нюансом в лицензии React, разработчики WordPress анонсировали отказ от React для фронтенд компонентов. Однако после официальной смены лицензии на MIT все-таки вернулись к его рассмотрению, а также фреймворк-независимого решения.
- postlight/headless-wp-starter — WordPress в качестве RESTful бекенда и React на фронте.
- Joomla 3.8
- Статистика спонсоров и контрибьюторов Drupal
- Magento Tech Digest #3 (September 4 — 19, 2017)
- Замыкания, анонимные классы и альтернативный подход к мокам
- Минитуториал по PhpSpec
- Symfony Console – хелперы и другие возможности
- Прощайте, контроллеры; привет, обработчики запросов
- О новой PHP-библиотеке для Сloudflare
- От PHP к JavaScript с Node.js
- JSON Web Token (JWT) в качестве PHP сессии
- UML-диаграммы в PhpStorm 2017.2
- Как я создавал прибыльный глобальный SaaS проект, от разработки до продаж
- PHP жив. PHP 7 на практике
Аудио и видеоматериалы
Занимательное
- Подборка чатов по PHP
- [T] phpgeeks
- [T] prophp7
- [T] phpclubru
- [T] PhpFlow
- [T] laravel_pro
- [T] laravelrus
- [T] symfony_php
- [S] Larachat
- [S] Zend Framework
- [S] Yii
- [S] phpchat.co
- [S] php.ug
- [S] Drupal
- [S] WordPress
Знаете еще? Пишите в комментариях!
- Новый слоник с ZendCon 2017 —
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Прислать ссылку
Быстрый поиск по всем дайджестам
< Предыдущий выпуск: PHP-Дайджест № 116
Комментарии (10)
daggert
25.09.2017 09:36Pre-draft PipeOp v2 — В Internals обсуждается черновик предложения для pipe-оператора.
Немного не понимаю смысла в такой штуке. Сколько примеров не видел — вижу только более запутанный код, нежели упрощение. Или я совсем отстал от жизни?
Angerslave
25.09.2017 09:50+4Видимо, идея в том, что поток данных отображается более корректно. Примерно как method call chaining, только для всего. Например,
urlencode(str_replace('http://', '', strtolower($db->fetch('SELECT url FROM table')->url)));
с цепочкой вызовов (или пайпов) мог бы быть
$db->fetch('SELECT url FROM table') ->url ->strtolower() ->str_replace('http://', '') ->urlencode(); $db->fetch('SELECT url FROM table')->url >| 'strtolower' >| str_replace('http://', '') >| 'urlencode';
Fesor
25.09.2017 15:55+3Именно так. что бы поток выполнение шел в том порядке в котором код записан и при этом без необходимости использовать временные переменные.
Вообще на рэддите там неплохой холивар был на тему этой верасии RFC. Дело в том что
$$
никуда не исчез, просто его хотят пропихнуть как другую RFC, цель которой делать более удобныеcallable
:
$strToUpper = strtoupper($$); // по сути создает замыкание $someMethod = $obj->doSomething($$); // вместо $strToLower = 'strtolower'; $someMethod = [$obj, 'doSomething'];
что должно позитивно сказаться на консистентности языка. А без плэйсхолдера или же без возможности декларировать такие вот лямбды из коллабл ценность фичи резко падает.
SerafimArts
25.09.2017 12:16+2Подборка чатов по PHP
Знаете еще? Пишите в комментариях!Несколько (официальных) чатов русскоязычных сообществ:
1) Laravel: https://gitter.im/LaravelRUS/chat
2) Drupal (Drupal.ru и dru-io): https://gitter.im/DrupalRu/chat и https://gitter.im/dru-io/Drupal
3) Symfony (Symfoniacs): https://gitter.im/ru-symfoniacs/chat
3.5) Symfony (просто самый большой по symfony): https://gitter.im/php-ua/symfony
4) Yii: https://gitter.im/yiisoft/yii2/rusSamDark
25.09.2017 17:48+2https://github.com/yiisoft/yii2/wiki/Communities — тут собраны практически все по Yii.
VolCh
Friendly давно не хватало для реализации тесно связанных классов типа сущностей и их репозиториев, фабрик и т. п. Правда, есть опасения, что без нормальной видимости области модуля(неймспейса) будут злоупотреблять, что списки дружественных классов будут необъятными.
oxidmod
Свобода всегда ответственность)