es
Feedback
PHP Digest

PHP Digest

Ir al canal en Telegram

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

Mostrar más
8 207
Suscriptores
-324 horas
-87 días
-3930 días
Archivo de publicaciones
Короткие лямбды 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

PHP-Дайджест № 150 (11 – 25 февраля 2019) Изменены правила голосования за RFC в PHP Internals, стартовал прием заявок на докл
PHP-Дайджест № 150 (11 – 25 февраля 2019) Изменены правила голосования за RFC в PHP Internals, стартовал прием заявок на доклады для PHP Russia 2019, новое расширение для реализации параллельного исполнения кода, свежие материалы для обучения, видео, порция полезных инструментов, и многое другое! https://habr.com/ru/post/441584/

И в качестве примера автодополнение для symfony/console:

В PhpStorm 2019.1 EAP есть одна интересная экспериментальная фича. С помощью файла .phpstorm.meta.php можно подсказывать IDE,
В PhpStorm 2019.1 EAP есть одна интересная экспериментальная фича. С помощью файла .phpstorm.meta.php можно подсказывать IDE, какие аргументы ожидаются в функции или какие значения она может возвращать. Например, функция ожидает в качестве аргумента какую-то константу. Формально тип этой константы, допустим integer, но в действительности набор возможных констант нам известен. Например, json_encode($data, /* вот тут битовая маска из констант JSON_* */) Но еще у нас может быть функция, которая возвращает константу, как например json_last_error(). В PhpStorm 2019.1 EAP автодополнение для этих случаев уже работает. Но более того, такое автодополнение можно сделать у себя в любом проекте/библиотеке/фреймворке просто добавив специальный файл .phpstorm.meta.php в репозиторий. И таких файлов может быть сколько угодно, PhpStorm сам найдет и смержит их. https://blog.jetbrains.com/phpstorm/2019/02/new-phpstorm-meta-php-features/

В последнее время PHP становится лучше с каждым принятым RFC, ну а PHP 7.4 и 8 так вообще выглядят весьма многообещающе. Хоти
В последнее время PHP становится лучше с каждым принятым RFC, ну а PHP 7.4 и 8 так вообще выглядят весьма многообещающе. Хотите узнать, как все начиналось в 1995? Тогда вот Docker-образ с PHP 1 https://github.com/jaem3l/php1-docker-image

Хотите узнать, почему некоторые RFC так и остаются непринятыми и без реализации в PHP? Например, дженерики, короткие лямбды, перегрузка методов, аннотации и т.д. По ссылке отличный обзор этих и других предложений с объяснением трудностей и прогнозом дальнейшей судьбы. https://github.com/danack/RfcCodex

https://githistory.xyz/ Забавный инструмент для просмотра истории любого файла на GitHub. Открываем файл, заменяем домен в строке браузера на github.githistory.xyz и дальше, листая стрелками влево/вправо, можно смотреть как менялся файл.

self и parent в качестве тайпхинтов Еще одна старая фишка PHP, о которой вы могли не знать. В качестве typehint можно использ
+1
self и parent в качестве тайпхинтов Еще одна старая фишка PHP, о которой вы могли не знать. В качестве typehint можно использовать как self так и parent. https://madewithlove.be/self-and-parent-type-hints/

И по хорошей традиции аудиоверсия дайджеста в подкасте Пятиминутка PHP, за который спасибо Петру Мязину! https://5minphp.ru/episode47/

PHP-Дайджест № 149 (28 января – 11 февраля 2019) PHPUnit 8 и другие релизы, PSR-14 и PSR-12 в стадии ревью, JIT для PHP, стар
PHP-Дайджест № 149 (28 января – 11 февраля 2019) PHPUnit 8 и другие релизы, PSR-14 и PSR-12 в стадии ревью, JIT для PHP, стартовала работа над PHP 8, пачка свежих RFC из PHP Internals, порция полезных инструментов, и многое другое! https://habr.com/post/439780/

JIT в PHP! https://wiki.php.net/rfc/jit Попытки реализовать JIT были предприняты еще во времена PHP 6. И вот наконец-то усилиями Дмитрия Стогова эта возможность стала реальностью! Причем предлагается включить ее уже в PHP 7.4, но отключенной по умолчанию. Это отличная идея, так как даст возможность пощупать на реальных приложениях раньше. PHP JIT реализован как независимая часть OPcache, и может быть включен/выключен даже в рантайме.

PHP-Дайджест № 148 https://habr.com/ru/post/437752/ Взломан репозиторий PEAR, о будущем Xdebug, конференция PHP Russia 2019, свежие релизы, RFC предложения из PHP Internals, порция полезных инструментов, и многое другое!

Конференции по PHP Многие ругают PHP за токсичное сообщество. Иногда с этим трудно не согласиться, особенно читая комментарии к постам типа "PHP умер / умирает / создан, чтобы умирать". Зато на PHP-конференциях всегда отличная атмосфера и собираются крутые люди, c которыми интересно обсудить проблемы и услышать об опыте. В этом году очень хочу попасть на Dutch PHP Conf, Laracon и SymfonyCon. И конечно, не пропущу локальные харьковские ThinkPHP и Kharkiv.js. Киев, 1 июня, PHP fwdays’19 https://fwdays.com/en/event/php-fwdays-2019 А вот отдельно хочу написать про PHP fwdays! Езжу на эту конференцию вот уже 5 лет. И в этом году обязательно поеду снова! Программа еще не объявлена, и это отличная возможность купить билеты по лучшей цене. Сомнений нет, будут толковые докладчики и интересный народ, ну и по традиции, душевная афтерпати. Для читателей дайджеста есть промокод со скидкой 15%: PHP-digest-fwdays Но это еще не все! 17 мая в Москве пройдет первая конференция PHP Russia И это особенное мероприятие по нескольким причинам. Во-первых, специализированной PHP-конференции в России не было уже давно. Во-вторых, в программном комитете собралась классная команда https://rmcreative.ru/blog/post/php-russia-2019--nachalo 😉. И в-третьих, конференция пройдет при поддержке Олега Бунина, а это опыт РИТ++, HighLoad++ и множества других мероприятий. Скоро будет больше информации, а пока следите за новостями в канале: @PHPRussiaConfChannel И принимайте участие в обсуждениях в официальном чате конференции: @PHPRussiaConfTalks

PhpStorm 2019.1 EAP https://blog.jetbrains.com/phpstorm/2019/01/phpstorm-2019-1-early-access-program-is-open/ Стартовала прог
PhpStorm 2019.1 EAP https://blog.jetbrains.com/phpstorm/2019/01/phpstorm-2019-1-early-access-program-is-open/ Стартовала программа раннего доступа первого мажорного обновления PhpStorm в этом году. В релизе планируется масса вкусностей! Из того, что можно пощупать уже сейчас: – Отладка шаблонов Twig – Новый режим Focus, в котором подсвечивается только текущий метод/функция 🔥 – Возможность сортировки импортов (use выражений) – Поддержка phpcbf для исправления ошибок стиля

Правда возникла другая проблема – расизм в PHP 😱
Правда возникла другая проблема – расизм в PHP 😱

Проблема курицы и яйца решена с помощью PHP! https://twitter.com/EvanDotPro/status/1086319484439150592
Проблема курицы и яйца решена с помощью PHP! https://twitter.com/EvanDotPro/status/1086319484439150592