Как стать автором
Обновить

PHP-Дайджест № 148 (14 – 28 января 2019)

Время на прочтение 4 мин
Количество просмотров 15K

Свежая подборка со ссылками на новости и материалы. В выпуске: взломан репозиторий PEAR, о будущем Xdebug, конференция PHP Russia 2019, свежие релизы, RFC предложения из PHP Internals, порция полезных инструментов, и многое другое.

Приятного чтения!



Новости и релизы


  • Репозиторий PEAR был взломан — Сайт pear.php.net ушел в офлайн и не работает до сих пор. Известно, что в файл go-pear.phar был внедрен вредоносный код. Вы под угрозой, если вручную скачивали этот файл после 20.12.2018. Чтобы проверить надо скачать «чистый» файл с GitHub и сравнить контрольные суммы. Для автоматизации имеется скрипт. Если вы использовали ОС с предустановленным PHP или устанавливали с помощью пакетного менеджера, то крайне маловероятно, что вы когда-либо использовали go-pear.phar. Пока сайт не работает есть обходные пути для установки PEAR-пакетов и сборки PHP из исходников.
  • Будущее Xdebug — Автор Xdebug Derick Rethans рассказал о техническом долге и проблемах расширения. Он уходит из MongoDB, где проработал последние 7 лет. В ближайшее время намерен заняться рефакторингом и доработкой Хdebug, а также ищет пути финансирования. Поддержать Дерика можно на его Patreon.
  • Кто оплачивает разработку PHP? — В конце поста говорится о том, что организация igphp.de совместно с некоторыми ключевыми членами команды PHP планируют решение проблемы финансирования и поддержки PHP, и в скором времени анонсируют его.
  • Компания Perforce поглотит Rogue Wave Software
  • PhpStorm 2019.1 EAP — Стартовала программа раннего доступа PhpStorm, благодаря которой можно первым пощупать новые возможности IDE совершенно бесплатно. Среди нововведений: отладка шаблонов Twig, возможность сортировки импортов (use выражений), поддержка phpcbf для исправления ошибок стиля, и много других улучшений.
  • ru Onliner PHP Meetup #3 — Минск, 9 февраля.
  • ru PHP Russia 2019 — 17 мая в Москве состоится специализированная PHP-конференция!
    О том, как появилась идея и о команде можно прочитать в посте Александра Макарова. Полным ходом принимаются заявки на доклады. А также в Telegram доступны официальный канал @PHPRussiaConfChannel и чат @PHPRussiaConfTalks с обсуждениями.

PHP Internals


  • [RFC] Null Coalescing Assignment Operator — Предложение было принято больше двух лет назад. И вот реализация комбинированного оператора с проверкой на null ??= наконец-то закончена и смержена. Несмотря на кажущуюся простоту задачи, имплементация оказалась весьма нетривиальной.
    Итого: $a ??= $b эквивалентно $a ?? ($a = $b). В случае $a[foo()] ??= bar() функция foo() будет вызвана ровно один раз, а bar() будет вызвана, если $a[foo()] равно null (или не установлено).
    В тему хороший пост о других коротких операторах в PHP.
  • [RFC] New custom object serialization mechanism — Свежий RFC от Никиты Попова. Предлагается ввести новый механизм сериализации объектов, добавив пару магических методов:

    // Returns array containing all the necessary state of the object.
    public function __serialize(): array;
     
    // Restores the object state from the given data array.
    public function __unserialize(array $data): void;
    

    Данное изменение призвано исправить проблемы интерфейса Serialiazable. К сожалению, исправить сам интерфейс невозможно, но в случае принятия предложения будет рабочая альтернатива.
  • [RFC] Code free constructor — Предлагается добавить автоматический конструктор, задача которого инициализировать свойства:
    Скрытый текст
    class MotorCycle {
        public $vendor;
        public $cc;
        public $whells = 2;
     
        public function __construct($vendor, $cc) {
            $this->vendor = $vendor;
            $this->cc     = $cc;
        }
     
        //other methods
    }
     
    class MyCustomMotorCycle extends MotorCycle {
        public function __construct($cc, $whells) {
            parent::__construct("Custom", $cc);
         // $this->cc = $cc;  this statement will be added within proposed realisation
            $this->whells = $whells;
        }
    }
    

    для кода выше предлагается следующий альтернативный синтаксис:
    class MotorCycle($vendor, $cc){
        public $whells = 2;
     
        //other methods
    };
     
    class MyCustomMotorCycle($cc, $whells) extends MotorCycle("Custom", $cc){ };
    


Инструменты


  • API Platform — Фреймворк на базе компонентов Symfony для создания API. В новой версии поддержка MongoDB, Elasticsearch, OpenAPI v3 и много другого.
  • xobotyi/php-mime-type — Библиотека позволяет определить известные расширения по MIME-типу и наоборот. Прислал xobotyi.
  • PHPStan 0.11 — Статический анализатор для PHP. Анонс релиза. Вдогонку видео о внутренностях PHPStan от одного из мейнтенеров.
  • Symplify/Statie — Простой генератор статических сайтов на PHP. Быстрый старт.
  • leocavalcante/siler — Микрофреймворк реaлизован на простых функциях без использования классов. Можно использовать со Swoole
  • directus/directus — Headless CMS c API.
  • mgp25/Instagram-API — Библиотека дает возможность использовать скрытые в официальном API возможности Instagram.
  • bmitch/churn-php — Инструмент поможет найти кандидатов на рефакторинг – файлы, которые больше всего изменялись в истории Git и имеют наибольшей цикломатической сложностью.

Symfony



Laravel



Async PHP


  • dantleech/fink — Инструмент для проверки сайта на битые ссылки. Реализован с использованием amphp/artax.
  • reactphp/child-process v0.6.0 — Событийная библиотека для работы с дочерними процессами с помощью ReactPHP. Теперь с поддержкой Windows. Подробнее в посте.

CMS



Материалы для обучения




Занимательное


  • Code Galaxies — Забавная 3D визуализация взаимосвязей между Composer-пакетами.

Спасибо за внимание!

Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.

Больше новостей и комментариев в Telegram-канале PHP Digest.

Прислать ссылку
Поиск ссылок по всем дайджестам
Предыдущий выпуск: PHP-Дайджест № 147

Теги:
Хабы:
+68
Комментарии 26
Комментарии Комментарии 26

Публикации

Истории

Работа

PHP программист
175 вакансий

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн