PHP Digest
Проблема курицы и яйца решена с помощью PHP! https://twitter.com/EvanDotPro/status/1086319484439150592
Правда возникла другая проблема – расизм в PHP 😱
January 21, 2019
PhpStorm 2019.1 EAP
https://blog.jetbrains.com/phpstorm/2019/01/phpstorm-2019-1-early-access-program-is-open/
Стартовала программа раннего доступа первого мажорного обновления PhpStorm в этом году.
В релизе планируется масса вкусностей! Из того, что можно пощупать уже сейчас:
– Отладка шаблонов Twig
– Новый режим Focus, в котором подсвечивается только текущий метод/функция 🔥
– Возможность сортировки импортов (use выражений)
– Поддержка phpcbf для исправления ошибок стиля
https://blog.jetbrains.com/phpstorm/2019/01/phpstorm-2019-1-early-access-program-is-open/
Стартовала программа раннего доступа первого мажорного обновления PhpStorm в этом году.
В релизе планируется масса вкусностей! Из того, что можно пощупать уже сейчас:
– Отладка шаблонов Twig
– Новый режим Focus, в котором подсвечивается только текущий метод/функция 🔥
– Возможность сортировки импортов (use выражений)
– Поддержка phpcbf для исправления ошибок стиля
January 23, 2019
Конференции по 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
Многие ругают 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
Fwdays
PHP fwdays'19 - The biggest PHP conference in Ukraine
The biggest PHP conference in Ukraine, where you can find up to date and practical talks from ukrainian and foreign experts in PHP.
January 24, 2019
PHP-Дайджест № 148
https://habr.com/ru/post/437752/
Взломан репозиторий PEAR, о будущем Xdebug, конференция PHP Russia 2019, свежие релизы, RFC предложения из PHP Internals, порция полезных инструментов, и многое другое!
https://habr.com/ru/post/437752/
Взломан репозиторий PEAR, о будущем Xdebug, конференция PHP Russia 2019, свежие релизы, RFC предложения из PHP Internals, порция полезных инструментов, и многое другое!
Habr
PHP-Дайджест № 148 (14 – 28 января 2019)
Свежая подборка со ссылками на новости и материалы. В выпуске: взломан репозиторий PEAR, о будущем Xdebug, конференция PHP Russia 2019, свежие релизы, RFC предложения из PHP Internals, порция...
January 28, 2019
JIT в PHP!
https://wiki.php.net/rfc/jit
Попытки реализовать JIT были предприняты еще во времена PHP 6. И вот наконец-то усилиями Дмитрия Стогова эта возможность стала реальностью! Причем предлагается включить ее уже в PHP 7.4, но отключенной по умолчанию. Это отличная идея, так как даст возможность пощупать на реальных приложениях раньше. PHP JIT реализован как независимая часть OPcache, и может быть включен/выключен даже в рантайме.
https://wiki.php.net/rfc/jit
Попытки реализовать JIT были предприняты еще во времена PHP 6. И вот наконец-то усилиями Дмитрия Стогова эта возможность стала реальностью! Причем предлагается включить ее уже в PHP 7.4, но отключенной по умолчанию. Это отличная идея, так как даст возможность пощупать на реальных приложениях раньше. PHP JIT реализован как независимая часть OPcache, и может быть включен/выключен даже в рантайме.
January 31, 2019
PHP-Дайджест № 149
(28 января – 11 февраля 2019)
PHPUnit 8 и другие релизы, PSR-14 и PSR-12 в стадии ревью, JIT для PHP, стартовала работа над PHP 8, пачка свежих RFC из PHP Internals, порция полезных инструментов, и многое другое!
https://habr.com/post/439780/
(28 января – 11 февраля 2019)
PHPUnit 8 и другие релизы, PSR-14 и PSR-12 в стадии ревью, JIT для PHP, стартовала работа над PHP 8, пачка свежих RFC из PHP Internals, порция полезных инструментов, и многое другое!
https://habr.com/post/439780/
February 11, 2019
И по хорошей традиции аудиоверсия дайджеста в подкасте Пятиминутка PHP, за который спасибо Петру Мязину!
https://5minphp.ru/episode47/
https://5minphp.ru/episode47/
Пятиминутка PHP
Выпуск №47 — PHP-Дайджест № 149 (28 января – 11 февраля 2019)
В этом выпуске автор знаменитых PHP-Дайджестов Роман Пронский делится новостями из мира PHP за последние две недели: PSR-14 и PSR-12 в стадии ревью, JIT для PHP, стартовала работа над PHP 8, пачка …
February 11, 2019
self и parent в качестве тайпхинтов
Еще одна старая фишка PHP, о которой вы могли не знать. В качестве typehint можно использовать как self так и parent.
https://madewithlove.be/self-and-parent-type-hints/
Еще одна старая фишка PHP, о которой вы могли не знать. В качестве typehint можно использовать как self так и parent.
https://madewithlove.be/self-and-parent-type-hints/
February 15, 2019
February 15, 2019
https://githistory.xyz/
Забавный инструмент для просмотра истории любого файла на GitHub.
Открываем файл, заменяем домен в строке браузера на github.githistory.xyz и дальше, листая стрелками влево/вправо, можно смотреть как менялся файл.
Забавный инструмент для просмотра истории любого файла на GitHub.
Открываем файл, заменяем домен в строке браузера на github.githistory.xyz и дальше, листая стрелками влево/вправо, можно смотреть как менялся файл.
February 15, 2019
Хотите узнать, почему некоторые RFC так и остаются непринятыми и без реализации в PHP?
Например, дженерики, короткие лямбды, перегрузка методов, аннотации и т.д.
По ссылке отличный обзор этих и других предложений с объяснением трудностей и прогнозом дальнейшей судьбы.
https://github.com/danack/RfcCodex
Например, дженерики, короткие лямбды, перегрузка методов, аннотации и т.д.
По ссылке отличный обзор этих и других предложений с объяснением трудностей и прогнозом дальнейшей судьбы.
https://github.com/danack/RfcCodex
GitHub
GitHub - Danack/RfcCodex: Notes on PHP RFCs, and topics that occur repeatedly on PHP internals
Notes on PHP RFCs, and topics that occur repeatedly on PHP internals - GitHub - Danack/RfcCodex: Notes on PHP RFCs, and topics that occur repeatedly on PHP internals
February 17, 2019
В последнее время PHP становится лучше с каждым принятым RFC, ну а PHP 7.4 и 8 так вообще выглядят весьма многообещающе. Хотите узнать, как все начиналось в 1995?
Тогда вот Docker-образ с PHP 1 https://github.com/jaem3l/php1-docker-image
Тогда вот Docker-образ с PHP 1 https://github.com/jaem3l/php1-docker-image
February 21, 2019
В PhpStorm 2019.1 EAP есть одна интересная экспериментальная фича. С помощью файла .phpstorm.meta.php можно подсказывать IDE, какие аргументы ожидаются в функции или какие значения она может возвращать.
Например, функция ожидает в качестве аргумента какую-то константу. Формально тип этой константы, допустим
В PhpStorm 2019.1 EAP автодополнение для этих случаев уже работает. Но более того, такое автодополнение можно сделать у себя в любом проекте/библиотеке/фреймворке просто добавив специальный файл .phpstorm.meta.php в репозиторий. И таких файлов может быть сколько угодно, PhpStorm сам найдет и смержит их.
https://blog.jetbrains.com/phpstorm/2019/02/new-phpstorm-meta-php-features/
Например, функция ожидает в качестве аргумента какую-то константу. Формально тип этой константы, допустим
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/
February 22, 2019
February 22, 2019
February 22, 2019
PHP-Дайджест № 150
(11 – 25 февраля 2019)
Изменены правила голосования за RFC в PHP Internals, стартовал прием заявок на доклады для PHP Russia 2019, новое расширение для реализации параллельного исполнения кода, свежие материалы для обучения, видео, порция полезных инструментов, и многое другое!
https://habr.com/ru/post/441584/
(11 – 25 февраля 2019)
Изменены правила голосования за RFC в PHP Internals, стартовал прием заявок на доклады для PHP Russia 2019, новое расширение для реализации параллельного исполнения кода, свежие материалы для обучения, видео, порция полезных инструментов, и многое другое!
https://habr.com/ru/post/441584/
February 25, 2019
Читать разборы ошибок безопасности всегда очень интересно, потому что выглядят они как настоящий детектив! Вот один из таких разборов, где в конечном счете все свелось к досадной опечатке.
Это еще раз показывает насколько важны тайп хинты, статический анализ, и нормальный редактор ;-)
https://medium.com/@DanielC7/remote-code-execution-gaining-domain-admin-privileges-due-to-a-typo-dbf8773df767
Это еще раз показывает насколько важны тайп хинты, статический анализ, и нормальный редактор ;-)
https://medium.com/@DanielC7/remote-code-execution-gaining-domain-admin-privileges-due-to-a-typo-dbf8773df767
Medium
Remote Code Execution — Gaining Domain Admin due to a typo
CVE-2018–9022
March 5, 2019
PHP-Дайджест № 151
(25 февраля – 11 марта 2019)
Обновления PHP, Laravel 5.8, Xdebug 2.7 и другие релизы, 3 свежих RFC, 2 принятых, и концепт из PHP Internals, порция полезных инструментов, и многое другое!
https://habr.com/ru/post/443220/
(25 февраля – 11 марта 2019)
Обновления PHP, Laravel 5.8, Xdebug 2.7 и другие релизы, 3 свежих RFC, 2 принятых, и концепт из PHP Internals, порция полезных инструментов, и многое другое!
https://habr.com/ru/post/443220/
March 11, 2019
Короткие лямбды 2.0
https://wiki.php.net/rfc/arrow_functions_v2
Никита Попов продолжает бить по проблемным местам PHP! В своем свежем RFC он замахнулся на стрелочные функции, они же короткие лямбды. У этой идеи в PHP сложная история, было как минимум две попытки (1, 2) их реализовать и обе провалились. В основном упираясь в синтаксис.
Уже рассматривались варианты:
Предложен следующий вариант:
А если надо по ссылке, то придется либо явно перечислять переменные по ссылке, либо использовать переключатель:
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;
}
March 13, 2019