uz
Feedback
PHP Digest

PHP Digest

Kanalga Telegram’da o‘tish

PHP Дайджест Новости, материалы и инструменты из мира PHP — раз в месяц. Вопросы, замечания, предложения: @pronskiy

Ko'proq ko'rsatish
8 309
Obunachilar
Ma'lumot yo'q24 soatlar
-117 kunlar
+530 kunlar
Postlar arxiv
PHP-Дайджест № 157 (20 мая – 3 июня 2019) https://habr.com/p/454558/ Обновления PHP, коммерческая компания Doctrine, PhpStorm
PHP-Дайджест № 157 (20 мая – 3 июня 2019) https://habr.com/p/454558/ Обновления PHP, коммерческая компания Doctrine, PhpStorm 2019.2 EAP, Symfony 4.3, порция полезных инструментов, видеозаписи, и многое другое!

О монетезации опенсорса Коммерческая компания Doctrine https://www.doctrine-project.org/2019/05/21/monetizing-open-source.html Вслед за Laravel, Symfony, и Packagist ещё один PHP проект стал коммерческой компанией. Теперь Доктрину можно профинансировать на Патреоне, Tidelift, купить тренинги или консультации, а также записаться на вебинары по символической цене. Успехов и процветания проекту! Кстати о коммерческих проектах. Если вы хотите продавать ваш PHP-код, то packagist.com выкатил интересную фичу https://blog.packagist.com/private-packagist-for-vendors/ Правда это не защитит от возможности скачать код и выложить в другом месте. А вот на GitHub теперь можно добавить в репозиторий файл FUNDING.yml, в котором указываются возможные модели финансирования проекта, включая Open Collective, Community Bridge, и Tidelift. После чего в интерфейсе можно включить соответствующую кнопку. https://help.github.com/en/articles/displaying-a-sponsor-button-in-your-repository

Розыгрыш билетов на PHP fwdays'19 https://fwdays.com/en/event/php-fwdays-2019 1 июня в Киеве пройдёт всем известная PHP fwdays! Конференция отличная и я сам обязательно на неё поеду. Как старому другу конференции организаторы предоставили мне два билета. В качестве эксперимента попробуем разыграть их прямо тут на канале. Потому что я себе уже успел купить, как только объявили участие Фабьена из Symfony. ^^ Вероятно, поехать сможет не каждый подписчик канала, так что, если вам действительно нужен билет, подтвердите участие в розыгрыше нажав кнопку ниже. (счетчик обновляется с задержкой) 24 мая ровно в 20:00 бот случайным образом автоматически выберет двух человек из числа кликнувших. Они и получат билеты на PHP fwdays от PHP-Дайджеста. До встречи на конференции! ***** Победители: Juli Eliseeva, Konstantin Aleksandrov

PhpStorm 2019.2 EAP https://blog.jetbrains.com/phpstorm/2019/05/phpstorm-2019-2-early-access-program-is-open/ Запустили прогр
PhpStorm 2019.2 EAP https://blog.jetbrains.com/phpstorm/2019/05/phpstorm-2019-2-early-access-program-is-open/ Запустили программу раннего доступа для второго мажорного релиза PhpStorm в этом году. Свежие билды с новыми фичами и фиксами будут выходить каждую неделю в течение следующих двух месяцев. Из того, что можно пощупать уже сейчас: – Автовнедрение регулярок в PHP-коде – Поддержка типизированных свойств PHP 7.4 (ещё в процессе, но уже есть удобный квик-фикс для миграции) – Обновлённый тултип для инспекций – можно сразу в нем исправлять – Поддержка cURL формата в HTTP-клиенте – EditorConfig работает из коробки На самом деле, в первом билде даже намного больше всего, но более подробно описывать все обновления буду в последующих постах в блоге PhpStorm. По традиции EAP версии можно использовать совершенно бесплатно.

PHP-Дайджест № 156 (6 – 20 мая 2019) https://habr.com/p/452560/ PHPRussia, PHP fwdays'19, WordPress 5.2, о PHP в 2019, новост
PHP-Дайджест № 156 (6 – 20 мая 2019) https://habr.com/p/452560/ PHPRussia, PHP fwdays'19, WordPress 5.2, о PHP в 2019, новости из PHP Internals, порция полезных инструментов, и многое другое!

PHP-Дайджест № 155 (22 апреля – 6 мая 2019) https://habr.com/p/450642/ Обновления PHP, Codeception 3.0 и другие релизы, корот
PHP-Дайджест № 155 (22 апреля – 6 мая 2019) https://habr.com/p/450642/ Обновления PHP, Codeception 3.0 и другие релизы, короткие лямбды в PHP 7.4 и обзор свежих RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое!

Короткие лямбды будут в PHP 7.4 https://wiki.php.net/rfc/arrow_functions_v2#vote Предложение прошло голосование и принято. Теперь в PHP будут короткие анонимные функции с использованием синтаксиса fn() => и автоматическим захватом переменных из внешнего скоупа по значению:
$y = 1;
$fn = fn($x) => $x + $y;
Итого в ближайшем обновлении PHP, которые выйдет в конце этого года, мы уже имеем FFI, предзагрузку, короткие лямбды, типизированные свойства, и целую пачку других улучшений https://wiki.php.net/rfc#php_74

Интервью с Никитой Поповым в подкасте SDCast https://sdcast.ksdaemon.ru/2019/04/sdcast-103/ Всем известный Никита Попов, автор многочисленных улучшений для PHP, совсем не публичная фигура. Информации о нем мало, и даже выступления на конференциях можно пересчитать по пальцам. И вот Константин Буркалев записал интереснейшее интервью, в котором Никита рассказывает о том, как попал в PHP, как реализует различные RFC и где черпает вдохновение, о трудностях PHP, статической типизации и многом-многом другом.

PHP-Дайджест № 154 (9 – 21 апреля 2019) https://habr.com/ru/post/448880/
PHP-Дайджест № 154 (9 – 21 апреля 2019) https://habr.com/ru/post/448880/

Конец Zend Framework, начало Laminas project https://getlaminas.org/ После длительного молчания наконец-то пролился свет на судьбу фреймворка. Zend Framework переходит под крыло Linux Foundation https://www.linuxfoundation.org/blog/2019/04/lf-forms-laminas-project/ и меняет своё название на Laminas, чтобы отвязаться от коммерческого бренда Zend. Фреймворк разрабатывался компанией Zend, затем вместе с самой компанией был поглощён Rogue Wave Software. В октябре прошлого года Зеев Сураски объявил о том, что вся команда Zend покинет RWS https://habr.com/ru/post/426809/. Пока о дальнейших планах рассказал только Enrico Zimuel, который перешёл в Elastic https://www.zimuel.it/blog/a_new_journey_with_PHP_again. Ждём новостей от Zeev Suraski, Adam Culp, Matthew Weier O'Phinney, и, конечно, Дмитрия Стогова. Очень надеюсь это вдохнёт новую жизнь во фреймворк, и конкуренция с другими инструментами благоприятно воздействует на всю экосистему.

ORM для долгоживущих приложений github.com/cycle/orm Новая библиотека от автора RoadRunner Антона Титова. Аналог Doctrine для использования в демонизированных приложениях на PHP. Без утечек памяти и со сбрасываемым стейтом. – Поддерживаются MySQL, MariaDB, PostgresSQL, SQLServer, SQLite; – Совместима с Doctrine Collections и Zend Hydrator; – Можно использовать в стиле ActiveRecord. Сильная вещь, ждем документацию!

PHP-Дайджест № 153 (25 марта – 8 апреля 2019) https://habr.com/p/447130/ Принят PSR-14 Event Dispatcher, JIT в PHP 8, тройка
PHP-Дайджест № 153 (25 марта – 8 апреля 2019) https://habr.com/p/447130/ Принят PSR-14 Event Dispatcher, JIT в PHP 8, тройка RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое!

Fizz-Buzz в 52 символа? https://code-golf.io/ На этом сайте можно посоревноваться в реализации самого короткого по числу символов решения простых задач. Например, попробуйте написать простейшую Fizz-Buzz задачку на PHP https://code-golf.io/fizz-buzz#php в 52 символа! А именно это и есть текущий рекорд.

Деструктурирующее присваивание с нечисловыми ключами Эта возможность доступна с PHP 7.1 и очень удобна, когда надо выбрать то
Деструктурирующее присваивание с нечисловыми ключами Эта возможность доступна с PHP 7.1 и очень удобна, когда надо выбрать только некоторые элементы из массива. https://twitter.com/brendt_gd/status/1111243431781822464

Принят PSR-14 Event Dispatcher https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-14-event-dispatcher.md Новый стандарт регламентирует работу с событиями в приложении. И это тот самый стандарт, из-за которого разгорелись споры и Fabien Potencier покинул PHP-FIG. Правда, после этого стандарт был заметно доработан. В итоге получился довольно простой, понятный, и не очень строгий стандарт. Он определяет всего 3 интерфейса: EventDispatcherInterface с единственным методом dispatch(object $event), при этом событие – любой объект, разве что если вы хотите, чтоб событие останавливало обработку других событий, тогда оно должно реализовать StoppableEventInterface; ну и третий интерфейс – это ListenerProviderInterface реализация которого должна уметь предоставлять список обработчиков для конкретного события через метод getListenersForEvent(object $event) : iterable. Ну а обработчиком может быть совершенно любой Сallable. Также стандарт перечисляет характеристики, которым должны соответствовать все элементы и рекомендации по реализации. Уже есть пара реализаций: https://github.com/crell/tukio https://github.com/phly/phly-event-dispatcher И интересная идея плагина для Composer: https://github.com/bmack/kart-composer-plugin

PHP-Дайджест № 152 (11 – 25 марта 2019) Свежие RFC предложения и другие новости из PHP Internals, порция полезных инструменто
PHP-Дайджест № 152 (11 – 25 марта 2019) Свежие RFC предложения и другие новости из PHP Internals, порция полезных инструментов, и много других материалов и новостей! https://habr.com/ru/post/445140/

Короткие лямбды 2.0 https://wiki.php.net/rfc/arrow_functions_v2 Никита Попов продолжает бить по проблемным местам PHP! В своем свежем RFC он замахнулся на стрелочные функции, они же короткие лямбды. У этой идеи в PHP сложная история, было как минимум две попытки (1, 2) их реализовать и обе провалились. В основном упираясь в синтаксис. Уже рассматривались варианты:
$x ~> $x * 2
function($x) => $x + $y
^($x) => $x + $y

Собственно половина документа, который опубликовал Никита, посвящена выбору синтаксиса. Предложен следующий вариант:
  fn($x, $y) => $x * $y

При этом переменные из внешнего скоупа биндятся по значению автоматически и не надо использовать use(), то есть можно вот так:
$y = 1;
$fn1 = fn($x) => $x + $y;
А если надо по ссылке, то придется либо явно перечислять переменные по ссылке, либо использовать переключатель:
$fn = fn() use(&) {
    // ...
}

Также можно будет объявлять и методы в виде короткого синтаксиса:
class Test {
    private $foo;
 
    fn getFoo() => $this->foo;
}

Надеюсь, на этот раз предложение преодолеет порог голосования и будет принято.

PHP-Дайджест № 151 (25 февраля – 11 марта 2019) Обновления PHP, Laravel 5.8, Xdebug 2.7 и другие релизы, 3 свежих RFC, 2 прин
PHP-Дайджест № 151 (25 февраля – 11 марта 2019) Обновления PHP, Laravel 5.8, Xdebug 2.7 и другие релизы, 3 свежих RFC, 2 принятых, и концепт из PHP Internals, порция полезных инструментов, и многое другое! https://habr.com/ru/post/443220/

Читать разборы ошибок безопасности всегда очень интересно, потому что выглядят они как настоящий детектив! Вот один из таких разборов, где в конечном счете все свелось к досадной опечатке. Это еще раз показывает насколько важны тайп хинты, статический анализ, и нормальный редактор ;-) https://medium.com/@DanielC7/remote-code-execution-gaining-domain-admin-privileges-due-to-a-typo-dbf8773df767