PHP-Дайджест № 184
Что будет с поддержкой PHP на Windows, PHP 8 Alpha 2, ReactPHP — официально продакшн-реди, 2 новых RFC предложения и 6 на голосовании, порция полезных инструментов, статьи, видео и подкасты.
https://habr.com/p/511686/
Что будет с поддержкой PHP на Windows, PHP 8 Alpha 2, ReactPHP — официально продакшн-реди, 2 новых RFC предложения и 6 на голосовании, порция полезных инструментов, статьи, видео и подкасты.
https://habr.com/p/511686/
Habr
PHP-Дайджест № 184 (6 – 20 июля 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: Что будет с поддержкой PHP на Windows, PHP 8 Alpha 2, ReactPHP — официально продакшн-реди, 2 новых RFC предложения и 6 на голосовании,...
PHP Digest
#RFC Именованные аргументы функций https://wiki.php.net/rfc/named_params Никита идет по списку, предложенному Ларри Гарфильдом, и выдвигает на обсуждение обновленный и проработанный документ. Именованные аргументы позволяют передавать аргументы в функцию…
Предложение принято. В PHP 8 будут именованные аргументы! 🎉
#Cтрим об утечках памяти в PHP
В долговыполняющихся приложениях (асинхронные, демоны, воркеры очередей, процессинг) на PHP , да и на любом другом языке, можно столкнуться с утечками памяти.
Валентин на стриме расскажет об опыте поиска проблемы, инструментах для анализа и о том, как фиксил. Все это на примере утечки, обнаруженной в Symfony–компоненте.
Среда, 18:00 Москва/Киев/Минск, канал PHP Point.
https://www.youtube.com/watch?v=NNMp-97rk9c
В долговыполняющихся приложениях (асинхронные, демоны, воркеры очередей, процессинг) на PHP , да и на любом другом языке, можно столкнуться с утечками памяти.
Валентин на стриме расскажет об опыте поиска проблемы, инструментах для анализа и о том, как фиксил. Все это на примере утечки, обнаруженной в Symfony–компоненте.
Среда, 18:00 Москва/Киев/Минск, канал PHP Point.
https://www.youtube.com/watch?v=NNMp-97rk9c
#RFC И снова о синтаксисе атрибутов в PHP 8
https://wiki.php.net/rfc/shorter_attribute_syntax_change
Сначала Benjamin Eberlei подготовил детальный RFC по атрибутам и предложил синтаксис
Предложение прошло, но позже после споров предложен другой RFC с тремя вариантами синтаксиса на голосовании:
Победил вариант
И вот теперь Derick Rethans автор Xdebug написал письмо в Internals, что синтаксис
▪️ Конфликт с парсером.
▪️ Большая вероятность проблем с парсингом в будущем.
▪️ Отсутствие символа в конце атрибута (с ним проще искать и проще для инструментов вроде PHPCS).
▪️ Синтаксис не используется ни в одном другом языке.
▪️ Оператор
По следам этого письма и подготовили новый RFC, который предлагает использовать синтаксис
https://wiki.php.net/rfc/shorter_attribute_syntax_change
Сначала Benjamin Eberlei подготовил детальный RFC по атрибутам и предложил синтаксис
<<Attribute>>
.Предложение прошло, но позже после споров предложен другой RFC с тремя вариантами синтаксиса на голосовании:
<<>>
, #[]
и @@
.Победил вариант
@@
, видимо, как максимально близкий к тегам PHPDoc и аннотациям в Java. Но автор этого RFC умолчал о проблеме с парсером и о хаке, который он применил, чтоб обойти проблему.И вот теперь Derick Rethans автор Xdebug написал письмо в Internals, что синтаксис
@@
ужасен вот почему:▪️ Конфликт с парсером.
▪️ Большая вероятность проблем с парсингом в будущем.
▪️ Отсутствие символа в конце атрибута (с ним проще искать и проще для инструментов вроде PHPCS).
▪️ Синтаксис не используется ни в одном другом языке.
▪️ Оператор
@
никогда не уйдет из PHP, а значит и атрибуты из @@
не станут @
.По следам этого письма и подготовили новый RFC, который предлагает использовать синтаксис
#[ ]
как в Rust.
PHP Digest
#RFC И снова о синтаксисе атрибутов в PHP 8 https://wiki.php.net/rfc/shorter_attribute_syntax_change Сначала Benjamin Eberlei подготовил детальный RFC по атрибутам и предложил синтаксис <<Attribute>>. Предложение прошло, но позже после споров предложен…
Какой синтаксис атрибутов в PHP поддерживаете?
Anonymous Poll
38%
<<Attribute>>
22%
@@Attribute
40%
#[Attribute]
Релиз PhpStorm 2020.2
Из наиболее заметного в этом мажорном обновлении:
▪️ PHP 8 union types
▪️ Новый движок потока управления для PHP
▪️ Полная поддержка пул-реквестов GitHub
▪️ Новый рефакторинг Extract Class
▪️ Поддержка OpenAPI (с плагином)
Подробный разбор этих и всех других новых фич на русском:
https://habr.com/ru/company/JetBrains/blog/513250/
Из наиболее заметного в этом мажорном обновлении:
▪️ PHP 8 union types
▪️ Новый движок потока управления для PHP
▪️ Полная поддержка пул-реквестов GitHub
▪️ Новый рефакторинг Extract Class
▪️ Поддержка OpenAPI (с плагином)
Подробный разбор этих и всех других новых фич на русском:
https://habr.com/ru/company/JetBrains/blog/513250/
Хабр
PhpStorm 2020.2: объединенные типы PHP 8, новый движок потока управления, пул-реквесты GitHub, OpenAPI
Привет, Хабр! Рады представить второй мажорный релиз PhpStorm в этом году! Под катом подробный разбор всех заметных изменений и новых возможностей. Осторожно...
PHP-Дайджест № 185
PHP 8 Alpha 3, PhpStorm 2020.2, новый оператор ?->, снова обсуждение синтаксиса атрибутов и другие новости PHP Internals, обзор системы типов в PHP, порция полезных инструментов, видео, стримы.
https://habr.com/p/513558/
PHP 8 Alpha 3, PhpStorm 2020.2, новый оператор ?->, снова обсуждение синтаксиса атрибутов и другие новости PHP Internals, обзор системы типов в PHP, порция полезных инструментов, видео, стримы.
https://habr.com/p/513558/
Habr
PHP-Дайджест № 185 (20 июля – 3 августа 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Alpha 3, PhpStorm 2020.2, новый оператор ?-> , снова обсуждение синтаксиса атрибутов и другие новости PHP Internals, обзор...
Приведение типов в PHP во многих случаях работает по принципу «лучше хоть как-то, чем никак».
C последними улучшениями от Никиты все становится предсказуемее, и тем не менее код ниже вполне будет работать, хоть и не так, как , наверное, ожидалось.
Или можно взять обертку над значениями zakirullin/mess:
C последними улучшениями от Никиты все становится предсказуемее, и тем не менее код ниже вполне будет работать, хоть и не так, как , наверное, ожидалось.
debug=_0 // .envЧтобы избавиться от таких проблем, можно взять
(bool) getenv('debug'); // true!
filter_var
с его флагами и бросать свой Exception
. Или можно взять обертку над значениями zakirullin/mess:
(new Mess(getenv('debug')))->getAsBool();В Mess можно скармливать массивы/примитивы:
// _0 => UncastableValueException
$mess = new Mess($apiResponse);
$profile = new Profile(
$mess['profile']['name']->getString(),
$mess['votes']->getInt(),
$mess['is_deleted']->getBool()
)
// Dealing with typed ValueObject
GitHub
GitHub - zakirullin/mess: Make your PHP arrays sweet'n'safe
Make your PHP arrays sweet'n'safe. Contribute to zakirullin/mess development by creating an account on GitHub.
Финальное голосование по синтаксису атрибутов в PHP 8
https://wiki.php.net/rfc/shorter_attribute_syntax_change
К рассматриваемым раньше
Голосование проходит по системе STV. Это значит, что каждый ранжирует синтаксисы по предпочтению. Если я подсчитал все правильно, то в конечном результате на данный момент побеждает все-таки
https://gist.github.com/pronskiy/f2240b300e60cf38db1da2a94667ff6e#gistcomment-3415687
И дельное замечание от Джорди (Composer) о том, что переживать насчет синтаксиса не стоит. Раньше уже было такое, например, при выборе разделителя для неймспесов https://wiki.php.net/rfc/namespaceseparator. Тогда в 2008 в качестве альтернативы привычному сейчас
Benjamin Eberlei пишет, что изначально большинство хотели
https://wiki.php.net/rfc/shorter_attribute_syntax_change
К рассматриваемым раньше
@@Attr
, #[Attr]
, <<Attr>>
добавился еще вариант @[Attr]
.Голосование проходит по системе STV. Это значит, что каждый ранжирует синтаксисы по предпочтению. Если я подсчитал все правильно, то в конечном результате на данный момент побеждает все-таки
#[Attr]
.https://gist.github.com/pronskiy/f2240b300e60cf38db1da2a94667ff6e#gistcomment-3415687
И дельное замечание от Джорди (Composer) о том, что переживать насчет синтаксиса не стоит. Раньше уже было такое, например, при выборе разделителя для неймспесов https://wiki.php.net/rfc/namespaceseparator. Тогда в 2008 в качестве альтернативы привычному сейчас
\
рассматривались: **
, ^^
, %%
, :>
, :::
Upd: Benjamin Eberlei пишет, что изначально большинство хотели
::
, потому что такой синтаксис в C++ и проблема с этим синтаксисом была найдена позже, когда уже имелась реализация.PHP-Дайджест № 186
PHP 8 Beta 1, снова о синтаксисе атрибутов в PHP 8: #[Attr] vs @[Attr], предложение по синтаксису для BigInt, обзоры PHP 8 и много других видео, инструменты, стримы, подкасты.
https://habr.com/p/515416/
PHP 8 Beta 1, снова о синтаксисе атрибутов в PHP 8: #[Attr] vs @[Attr], предложение по синтаксису для BigInt, обзоры PHP 8 и много других видео, инструменты, стримы, подкасты.
https://habr.com/p/515416/
Habr
PHP-Дайджест № 186 (3 – 17 августа 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Beta 1, снова о синтаксисе атрибутов в PHP 8: #[Attr] vs @[Attr] , предложение по синтаксису для BigInt, обзоры PHP 8 и много...
Открытое собеседование по PHP | Эпизод #2 — Прием заявок
Пилотный выпуск открытого собеседования зашел отлично, и мы получили много ценных отзывов. Спасибо всем, кто был с нами на стриме и задавал вопросы!
Если вдруг вы не видели первый выпуск, то вот запись https://www.youtube.com/watch?v=FQNd9W3nb3A
Тем временем начинаем подготовку второго выпуска!
Требования для участия не поменялись:
• уровень middle/senior;
• PHP 7.x, PSR;
• ООП, SOLID, coupling/cohesion, вот это все;
• тестирование, PHPUnit;
• желателен опыт с Symfony 4/5;
• SQL, желательно PostgreSQL;
• представление о современных трендах в архитектуре приложений.
Темы будут ± те же, а вот вопросы подготовим новые, без Psalm 🙂
Заявку на участие можно отправить до 27 августа через форму: https://forms.gle/ES3nXiwf4ycosGEy9.
Вопросы в личку: @vudaltsov, @pronskiy.
Пилотный выпуск открытого собеседования зашел отлично, и мы получили много ценных отзывов. Спасибо всем, кто был с нами на стриме и задавал вопросы!
Если вдруг вы не видели первый выпуск, то вот запись https://www.youtube.com/watch?v=FQNd9W3nb3A
Тем временем начинаем подготовку второго выпуска!
Требования для участия не поменялись:
• уровень middle/senior;
• PHP 7.x, PSR;
• ООП, SOLID, coupling/cohesion, вот это все;
• тестирование, PHPUnit;
• желателен опыт с Symfony 4/5;
• SQL, желательно PostgreSQL;
• представление о современных трендах в архитектуре приложений.
Темы будут ± те же, а вот вопросы подготовим новые, без Psalm 🙂
Заявку на участие можно отправить до 27 августа через форму: https://forms.gle/ES3nXiwf4ycosGEy9.
Вопросы в личку: @vudaltsov, @pronskiy.
YouTube
Открытое собеседование PHP Point #1 / Валентин Удальцов vs Патрик Фельдеш
О Патрике: https://career.habr.com/sspat
Код для ревью: https://gist.github.com/vudaltsov/e6f7dd83a88b349cd5ee0e0d1795e5aa
Задача на SQL: https://gist.github.com/vudaltsov/e3d06ef2158a248337aa262a9fb60b5f
Большое спасибо Антону Мореву за помощь с трансляцией.…
Код для ревью: https://gist.github.com/vudaltsov/e6f7dd83a88b349cd5ee0e0d1795e5aa
Задача на SQL: https://gist.github.com/vudaltsov/e3d06ef2158a248337aa262a9fb60b5f
Большое спасибо Антону Мореву за помощь с трансляцией.…
Если думаете, что вам нечего рассказать на конференции, то сильно ошибаетесь! Из каждого года опыта работы можно вытянуть по идее, а то и больше, и они будут интересны многим.
В ближайшие четверг и понедельник ребята из программного комитета PHP Russia готовы созвониться со всеми желающими и за 15 минут помочь найти или докрутить тему для доклада на митапе, конференции или статьи.
🔗 Записаться можно здесь https://forms.gle/7mvqDwgE196CH7My9
Формат протестировали на 10 добровольцах и нашли по 2-3 темы для девяти из них.
Если же тема готова и помощь не нужна, то тогда отправляйте заявку на сайте https://phprussia.ru/moscow/2020
В ближайшие четверг и понедельник ребята из программного комитета PHP Russia готовы созвониться со всеми желающими и за 15 минут помочь найти или докрутить тему для доклада на митапе, конференции или статьи.
🔗 Записаться можно здесь https://forms.gle/7mvqDwgE196CH7My9
Формат протестировали на 10 добровольцах и нашли по 2-3 темы для девяти из них.
Если же тема готова и помощь не нужна, то тогда отправляйте заявку на сайте https://phprussia.ru/moscow/2020
Google Docs
Созвон с ПК PHP Russia для поиска тем
Александр Макаров и Кирилл Несмеянов из программного комитета конференции 15 минут порасспрашивают тебя про опыт и проекты, чтобы найти тему доклада, статьи и пр.
Новый синтаксис для атрибутов — #[Attr]
Голосование завершилось и в PHP 8 синтаксис для атрибутов будет такой же, как и в Rust.
Голосование завершилось и в PHP 8 синтаксис для атрибутов будет такой же, как и в Rust.
#[https://wiki.php.net/rfc/shorter_attribute_syntax_change
ORM\Entity,
ORM\Table("user")
]
class User
{
#[ORM\Id, ORM\Column("integer"), ORM\GeneratedValue]
private $id;
#[ORM\Column("string", ORM\Column::UNIQUE)]
#[Assert\Email(["message" => "The email '{{ value }}' is not a valid email."])]
private $email;
}
Прямо сейчас в эфире Кирилл Несмеянов потрошит асинхронщину https://www.twitch.tv/serafimarts
Ссылка обновлена, переехали на twitch 🤞
Ссылка обновлена, переехали на twitch 🤞
Twitch
SerafimArts - Twitch
SerafimArts streams live on Twitch! Check out their videos, sign up to chat, and join their community.
PHP-Дайджест № 187
PHP 8 beta 3, принят новый синтаксис атрибутов в PHP 8, Zephir всё, целая пачка полезных инструментов, статьи, видео, подкасты.
https://habr.com/ru/post/518064/
PHP 8 beta 3, принят новый синтаксис атрибутов в PHP 8, Zephir всё, целая пачка полезных инструментов, статьи, видео, подкасты.
https://habr.com/ru/post/518064/
Хабр
PHP-Дайджест № 187 (18 августа – 7 сентября 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 beta 3, принят новый синтаксис атрибутов в PHP 8, Zephir всё, целая пачка полезных инструментов, статьи, видео, подкасты....
🔈 Выпуск подкаста Подлодка про PHP
Никита Попов рассказывает про внутренности PHP, а я про экосистему и прочее.
Про современный PHP можно было еще много сказать, так что давайте добросаем, чего не хватает в комментариях к выпуску!
https://soundcloud.com/podlodka/podlodka-180-php
Никита Попов рассказывает про внутренности PHP, а я про экосистему и прочее.
Про современный PHP можно было еще много сказать, так что давайте добросаем, чего не хватает в комментариях к выпуску!
https://soundcloud.com/podlodka/podlodka-180-php
SoundCloud
Podlodka #180 – PHP
Вокруг PHP в сообществе ходит много мифов, но это не мешает ему оставаться одним из самых популярных языков для Web разработки. Роман Пронский, PMM в команде PhpStorm, и Никита Попов, разработчик из т
Никита Попов и Николас Грекас: совместимость Symfony с PHP 8
https://www.youtube.com/watch?v=c3bpTBjhK2Y
Интервью записали достаточно давно, и на тот момент тесты Symfony на PHP 8 были зеленые, но теперь снова нет 😁
Issue по совместимости помечены тегом Help wanted, так что если есть время законтрибьютить, то вот вариант.
https://www.youtube.com/watch?v=c3bpTBjhK2Y
Интервью записали достаточно давно, и на тот момент тесты Symfony на PHP 8 были зеленые, но теперь снова нет 😁
Issue по совместимости помечены тегом Help wanted, так что если есть время законтрибьютить, то вот вариант.
YouTube
Nikita Popov and Nikolas Grekas: Symfony PHP 8 Compatibility
Symfony principal engineer Nikolas Grekas interviewed by PHP core contributor Nikita Popov. They discuss what problems the Symfony team encountered while making the framework compatible with the upcoming PHP 8 release.
Nikolas on Twitter: https://twitte…
Nikolas on Twitter: https://twitte…
Самый просматриваемый вопрос по PHP на Stack Overflow
В PHP 8, кроме прочего, добавили несколько функций для работы со строками, среди которых str_contains().
Имплементация тривиальная:
"Как проверить, содержит ли строка конкретное слово?" с 5.2 миллионами просмотров.
https://stackoverflow.com/questions/4366730/how-do-i-check-if-a-string-contains-a-specific-word
В PHP 8, кроме прочего, добавили несколько функций для работы со строками, среди которых str_contains().
Имплементация тривиальная:
function str_contains(string $haystack, string $needle): bool {Казалось бы, зачем вообще добавлять? Возможно для того, чтоб самым популярным вопросом по PHP на стековерфлоу не был вопрос:
return '' === $needle || false !== strpos($haystack, $needle);
}
"Как проверить, содержит ли строка конкретное слово?" с 5.2 миллионами просмотров.
https://stackoverflow.com/questions/4366730/how-do-i-check-if-a-string-contains-a-specific-word
Stack Overflow
How do I check if a string contains a specific word?
Consider:
$a = 'How are you?';
if ($a contains 'are')
echo 'true';
Suppose I have the code above, what is the correct way to write the statement if ($a contains 'are')?
$a = 'How are you?';
if ($a contains 'are')
echo 'true';
Suppose I have the code above, what is the correct way to write the statement if ($a contains 'are')?
PHP-Дайджест № 188
PHP 8 Beta 4, инициатива по консолидации PHP-сообщества, концепт PHP для GraalVM, предложение по дженерикам в Internals, а также инструменты, видео, подкасты, статьи.
https://habr.com/ru/post/519960/
PHP 8 Beta 4, инициатива по консолидации PHP-сообщества, концепт PHP для GraalVM, предложение по дженерикам в Internals, а также инструменты, видео, подкасты, статьи.
https://habr.com/ru/post/519960/
Хабр
PHP-Дайджест № 188 (7 – 21 сентября 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Beta 4, инициатива по консолидации PHP-сообщества, концепт PHP для GraalVM, предложение по дженерикам в Internals, полезные...
Стартовал ранний доступ (EAP) для PhpStorm 2020.3
В этом релизе запланирована полная поддержка PHP 8, Xdebug 3, PHPStan/Psalm (в следующих билдах), интеграция Guzzle с HTTP-клиентом и другие фичи, которые будут анонсироваться в блоге каждую неделю в течение следующих двух месяцев.
В первом посте все про поддержку PHP 8.
Как и всегда, EAP-версию можно использовать бесплатно.
https://blog.jetbrains.com/phpstorm/2020/10/phpstorm-2020-3-early-access-program-is-now-open/
В этом релизе запланирована полная поддержка PHP 8, Xdebug 3, PHPStan/Psalm (в следующих билдах), интеграция Guzzle с HTTP-клиентом и другие фичи, которые будут анонсироваться в блоге каждую неделю в течение следующих двух месяцев.
В первом посте все про поддержку PHP 8.
Как и всегда, EAP-версию можно использовать бесплатно.
https://blog.jetbrains.com/phpstorm/2020/10/phpstorm-2020-3-early-access-program-is-now-open/
На YouTube-канале PHP Point стрим по рефакторингу PHP-проекта
Update: Стрим закончился, по ссылке доступна запись.
https://www.youtube.com/watch?v=liMyAuxIoyM
Update: Стрим закончился, по ссылке доступна запись.
https://www.youtube.com/watch?v=liMyAuxIoyM
YouTube
Рефакторим c Александром Макаровым, Валентином Удальцовым, Валентином Назаровым, Леонидом Корсаковым
В четверг Александр Макаров (Yii) и Валентин Назаров (Skyeng) проведут стрим, на котором Валентин Удальцов (Пых) и Леонид Корсаков (PHP Kazan):
• посмотрят на код популярного гитхаб-проекта,
• найдут, что там порефакторить (и порефакторят),
• поделятся своими…
• посмотрят на код популярного гитхаб-проекта,
• найдут, что там порефакторить (и порефакторят),
• поделятся своими…