В выпуске: PHP 7.3.0 alpha 3, PHPStan 0.10, Yii 1.1.20 и другие релизы, свежее предложение из PHP Internals по сравнению объектов, порция полезных инструментов, и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.3.0 alpha 3 — Последний альфа-релиз перед «заморозкой фич». Beta 1 запланирована на 19 июля. Впрочем, даты могут сдвинуться, если будет принято решение включить типизированные свойства в 7.3.
- PHP 7.1.19
- PHP ODESSA CONF 2018 — 11 августа в Одессе пройдет масштабная PHP-конференция. Для читателей PHP-Дайджеста доступен промокод со скидкой 10%: PHPDIGEST
PHP Internals
- PHP 8: чего ждать. Письмо Зеева Сураски
Демо производительности PHP 7.0 vs JIT PoC для генерации фракталов
- [RFC] Class Friendship — Стартовало голосование по добавлению дружественных классов. Дружественный класс имеет доступ к private и protected полям класса, в котором он объявлен дружественным.
- [RFC] User-defined object comparison — В документе рассмотрены проблемы сравнения объектов в PHP. Предлагается добавить два новых магических метода:
__compareTo
и__equals
.Скрытый текстclass Example { /** * Returns: < 0 if $this is less than $other, * > 0 if $this is greater than $other, * == 0 if $this is equal to $other. */ public function __compareTo($other): int { ... } /** * @returns bool TRUE if $this is equal to $other, FALSE otherwise. */ public function __equals($other): bool { ... } }
- dstogov/php-tensorflow — Благодаря реализации FFI, станет возможным делать легковесные биндинги для сторонних библиотек. В качестве примера Дмитрий Стогов демонстрирует обертку наl TensorFlow.
Инструменты
- Infection 0.9.0 — Обновление фреймворка для мутационного тестирования на основе AST.
- PHPStan 0.10 — Мощный статический анализатор для PHP. Онлайн-песочница для проверки кода.
- sebastianfeldmann/phpbu — Инструмент для создания резервных копий файлов и баз данных. Умеет шифровать бэкапы и отправлять в хранилища.
- leviy/release-tool — CLI-инструмент для релиза новых версий продуктов.
- mediact/dependency-guard — Инструмент покажет неиспользуемые composer-зависимости. А также те, которые используются в коде, но установлены как dev-зависимости.
- ackintosh/snidel — Позволяет легко выполнять код параллельно в форке процесса. Альтернатива spatie/async
- php-lock/lock — Реализация мьютекса для PHP с поддержкой различных адаптеров (flock, memcache, mysql, redis, ...). Альтернатива symfony/lock.
- Imangazaliev/DiDOM — Простая и быстрая библиотека для парсинга HTML. Свежий туториал в поддержку.
Материалы для обучения
-
Symfony
-
Yii
- Yii 1.1.20
- Yii development notes #23 — Команда фреймворка разыскивает контрибьюторов:
• Релиз-менеджера, который бы помог планировать релизы, а также писать анонсы релизов и планов на будущее;
• Мейнтейнеров для ревью и мерджа пул-реквестов;
• Мейнтейнеров официальных расширений;
• Core-разработчиков для работы над новыми версиями фреймворка. - Yii 2.0 Part 19 — REST APIs
-
Laravel
- beyondcode/laravel-self-diagnosis — Пакет для диагностики Laravel-приложения с десятком проверок из коробки.
- beyondcode/laravel-er-diagram-generator — Генерирует диаграмму отношений ваших моделей с помощью GraphViz.
- mpociot/laravel-testtools — Расширение для Chrome, которое сгенерирует интеграционные тесты для веб-приложения на Laravel пока вы просматриваете его в браузере.
- Создание собственного API-интерфейса {JSON: API} средствами Laravel — Прислал bad4iz.
-
Zend
- DotKernel3 1.0 — Первая стабильная версия набора PSR-7 middleware компонентов для Zend Expressive.
- Zend Framework ACL для пользователей с несколькими ролями
- Интервью с лидером Zend Framework/Zend Expressive Matthew Weier O'Phinney
-
Async PHP
- reactphp/dns v0.4.15 — Добавлена поддержка IPv6.
- Введение в ReactPHP
- Быстрый веб-скрапинг с помощью ReactPHP. ч. 3: Используем прокси
- Рендеринг HTML файлов: глава из книги «ReactPHP для начинающих» от разработчика Skyeng
-
CMS
- Критическая уязвимость в WordPress — Дыра позволяла удалить любой файл в инсталляции WP. Уязвимы все версии <4.9.6. Ошибка исправлена в 4.9.7
- Руководство по безопасности WordPress
- Месяц WordPress: июнь 2018
- Magento Tech Digest #22: June 27 – July 2, 2018
- Не используйте ассоциативные массивы, вообще говоря, никогда
- Анонимные классы как приватные классы пакета
- Phpdbg намного быстрее Xdebug для подсчета покрытия
- PHP-окружение с помощью Docker-Сompose с нуля
- Простой IOT-девайс с помощью PHP и Raspberry Pi Zero W
- Как скомпилировать и пощупать нерелизнутый RFC — Быстро попробовать потенциальные возможности из RFC можно в 3v4l.org.
- Безопасное хранение учётных данных в PHP
- Львы в пустыне и интроспекция
- Низкоуровневая реализация префиксного дерева trie на PHP
- PHP-DataGen — генератор PHP классов со строго-типизированными свойствами
- Аспектно-ориентированное программирование на PHP
- Пятничная PHP-викторина: немного приключений программиста Брэда, одна странная последовательность и призы
- Расширение PHP и Kotlin Native. Часть первая, наивная
- Code Basics: бесплатные практические уроки для новичков
Аудио и видеоматериалы
- PHP Rountable Podcast #74: О хранении паролей и прочей секретной информации в PHP приложениях
- Zeev Suraski — To PHP 7 and beyond — Об эволюции производительности PHP и планах на будущее.
Занимательное
- PHPlashy — The Official PHP Vegas ElePHPant — Сообществом PHP Vegas запущена краудфандиноговая кампания для производства блестящих PHP-слоников.
- Забавный тред на Reddit о странных задачах, которые пользователи решали с помощью PHP — А какую самую странную программу написали на PHP вы?
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 133
Автор: Роман Пронский