Дайджест PHP #10
В выпуске: PHP 7.3 alpha 4, ReactPHP 1.0 LTS и другие релизы, свежее предложение «Namespace Visiblity for Class, Interface and Trait» из PHP Internals, ведеозаписи докладов и вебинаров, порция полезных инструментов, и многое другое.
Приятного чтения!
[sendpulse-form id=”278″]
Новости и релизы
- PHP 7.3.0 alpha 4 — Последняя «альфа» в цикле. Первый бета-выпуск запланирован на 2 августа. К списку новых возможностей добавится недавно принятое предложение о введение новых функций
array_key_first()
/array_key_last()
для работы с массивами:$array = ['a' => 1, 'b' => 2, 'c' => 3]; $firstKey = array_key_first($array); // 'a' $lastKey = array_key_last($array); // 'c'
Этап голосования прошло предложения Deprecations for PHP 7.3, в котором несколько возможностей объявлены устаревшими. Также устаревшими в PHP 7.3 будут объявлены константы нечувствительные к регистру.
Что касается предложения по типизированным свойствам, то его решено отложить до следующей версии, которая, вероятно, PHP 8.0. - Обновления всех актуальных веток PHP с исправлениями ошибок безопасности:
• PHP 7.2.8
• PHP 7.1.20
• PHP 7.0.31
• PHP 5.6.37 - PhpStorm 2018.2 Public Preview — Среди нововведений: обновленный интерфейс и поддержка touch bar, улучшенное автодополнение с учетом пространств имен, структурный поиск и замена, упрощенная установка CodeSniffer/MessDetector, и другие улучшения.
PHP Internals
[RFC] Namespace Visiblity for Class, Interface and Trait — Предлагается ввести модификаторы доступа для классов, интерфейсов и трейтов для ограничения использование по пространству имен:
Скрытый текстnamespace Example {
public class A
{
private $property;
}
protected class B
{
public $property;
}
private class C
{
protected $property;
}
}
namespace OtherVendor {
public class Factory
{
public function A()
{
return new \Example\A(); // Allowed by public
}
public function B()
{
return new \Example\B(); // Not allowed because
// namespace is not shared
}
public function C()
{
return new \Example\C(); // Not allowed because
// not from same namespace
}
}
}
Инструменты
- atlasphp/Atlas.Orm 3.0 — Интересная ORM.
- makasim/values — Библиотека пытается объединить лучшее из мира объектов и массивов. Работаете с объектами как обычно, а под капотом будут использоваться массивы.
- AI-BOLIT — Бесплатный антивирусный сканер для PHP-сайтов.
- spatie/crawler — Мощный краулер на базе Guzzle, а также Chrome и Puppeteer для рендеринга JavaScript-сайтов.
- spatie/code-outliner — Пакет создаст визуальное представление вашего кода, чтобы понять как он воспринимается, абстрагировавшись от содержания.
Материалы для обучения
- Открытый вебинар «Создание Web-сайта на фреймворке Yii2»
- chelout/laravel-relationship-events — Библиотека с событиями для связанных сущностей Eloquent.
- rennokki/befriended — Соц-медиа возможности для Eloquent: подписчики, блокирование, фильтры.
- beyondcode/laravel-view-xray — Удобно подсветит и подпишет вьюшки на странице.
- beyondcode/laravel-query-detector — Небольшой хелпер, который поможет избежать запросов к БД в цикле.
- ReactPHP 1.0.0 LTS — В 2012 году вышел первый релиз ReactPHP v0.1.0. Спустя ровно 6 лет, команда разработчиков анонсировала первый стабильный релиз с долгосрочной поддержкой ключевых компонентов.
- leproxy/leproxy v0.2.2 — HTTP/SOCKS прокси-сервер на ReactPHP.
- clue/reactphp-buzz — Простой асинхронный PSR-7-совместимый HTTP-клиент.
- ReactPHP Tutorial #9: POST Requests
- Magento Tech Digest #24: July 10 – 16, 2018
- Serverless PHP — Сравнение вариантов запуска PHP на AWS Lambda: из Nodejs, из Go, с помощью Peachpie на .NET.
- Архитектура децентрализованной соц-сети movim
- Объекты нужно конструировать за один шаг
- PSR-18: The HTTP client PSR — Об истории, проблемах, и будущем стандарта.
- Советы по работе с фикстурами
- Чек-лист по безопасности для веб-разработчика
- Расширение PHP и Kotlin Native. Часть вторая, осознанная
- Устаревший код – сторонний код