https://t.me/tg_5minphp/1165
Для меня неожиданно тут только то, что кто-то использует Symfony Container вне Symfony.
Мы с @butschster уже бенчили контейнеры и Yiisoft/di уверенно держится в ТОП 2 — в 2.5 раз быстрее, чем у Laravel по автовайрингу и доставанию из кеша.
PHP-DI в 3.5 раза быстрее контейнера Laravel.
> Стоит посоветовать ему Yii3 DI?
Не стоит. Вот его ответ на эту тему:
> While performance is criteria, so it the community, so they can contribute this package without learning a new framework. So Symfony/Laravel are the only options today.
Томас уже прибухнул с Тейлором и теперь он один из тех чуваков на картинке выше :)
PS: @petrmyazin когда уже сделаешь комментарии к каналу?
Для меня неожиданно тут только то, что кто-то использует Symfony Container вне Symfony.
Мы с @butschster уже бенчили контейнеры и Yiisoft/di уверенно держится в ТОП 2 — в 2.5 раз быстрее, чем у Laravel по автовайрингу и доставанию из кеша.
PHP-DI в 3.5 раза быстрее контейнера Laravel.
> Стоит посоветовать ему Yii3 DI?
Не стоит. Вот его ответ на эту тему:
> While performance is criteria, so it the community, so they can contribute this package without learning a new framework. So Symfony/Laravel are the only options today.
Томас уже прибухнул с Тейлором и теперь он один из тех чуваков на картинке выше :)
PS: @petrmyazin когда уже сделаешь комментарии к каналу?
Telegram
Пятиминутка PHP
Интересная статья: автор переводит проект Easy Coding Standards с Symfony DI на контейнер от Laravel! Неожиданно, да?
Подробно пишет о причинах и технических деталях:
https://tomasvotruba.com/blog/experiment-how-i-replaced-symfony-di-with-laravel-container…
Подробно пишет о причинах и технических деталях:
https://tomasvotruba.com/blog/experiment-how-i-replaced-symfony-di-with-laravel-container…
🔥4
#Article
Написал длиннопост, который не влез в формат телеги и телеграфа.
⚠️ Алерт: там много англицизмов.
Читать на гитхабе: Cycle ORM до связей жадный
Надеюсь факт наличия сего писания сведёт к забвению и зарастанию тропы, ведущей к одним и тем же граблям, на которые я наступаю уже далеко не первый раз, но о которых постоянно забываю.
Написал длиннопост, который не влез в формат телеги и телеграфа.
⚠️ Алерт: там много англицизмов.
Читать на гитхабе: Cycle ORM до связей жадный
Надеюсь факт наличия сего писания сведёт к забвению и зарастанию тропы, ведущей к одним и тем же граблям, на которые я наступаю уже далеко не первый раз, но о которых постоянно забываю.
🔥6
Привет, фартаны!
Мы вернулись к истокам и записали видосик.
За последние полгода Buggregator Server круто прорефакторился 💪, поэтому напомнить о нём будет не лишним.
https://youtu.be/qsDIHwS58Q4
Мы вернулись к истокам и записали видосик.
За последние полгода Buggregator Server круто прорефакторился 💪, поэтому напомнить о нём будет не лишним.
https://youtu.be/qsDIHwS58Q4
YouTube
В этом стриме мы обсуждаем Buggregator и дебаг PHP приложений
Рассуждаем о том, что в неумиращих приложениях не всегда можно дебажить xdebug'ом.
Тыкаем мнтерфейс Buggregator, смотрим дампы в консоль с помощью symfony/var-dumper-server и Buggregator/Trap.
Включайтесь в OpenSource — мы приветствуем любую помощь.
Ссылки…
Тыкаем мнтерфейс Buggregator, смотрим дампы в консоль с помощью symfony/var-dumper-server и Buggregator/Trap.
Включайтесь в OpenSource — мы приветствуем любую помощь.
Ссылки…
PHP Fart Time
Привет, фартаны! Мы вернулись к истокам и записали видосик. За последние полгода Buggregator Server круто прорефакторился 💪, поэтому напомнить о нём будет не лишним. https://youtu.be/qsDIHwS58Q4
MOSHED-2023-8-8-0-11-49.gif
15.9 MB
А ещё мы релизнули пакет
Написано на PHP с любовью и файберами🧵
Залетайте хейтить и рефакторить код! Предлагайте идеи. Например, отличная идея - добавить поддержку MQTT протокола - если тоже пилите умный дом и вам актуально - поставьте эмоджу.
Кстати, почему там ещё нет предложения добавить команду
#Buggregator
buggregator/trap
, который поможет дампать protobuf объекты. Эта утилита умеет ловить любой трафик и даже почту, а ещё у неё есть все шансы стать шлюзом к Buggregator Cloud.Написано на PHP с любовью и файберами🧵
Залетайте хейтить и рефакторить код! Предлагайте идеи. Например, отличная идея - добавить поддержку MQTT протокола - если тоже пилите умный дом и вам актуально - поставьте эмоджу.
Кстати, почему там ещё нет предложения добавить команду
trap fart
?#Buggregator
gRPC и protobuf
В этом стриме мы:
- Призвали мейнтейнера RoadRunner и гуру Golang/Rust Валеру
- Обсудили gRPC и protobuf, особенности работы с ними на PHP.
- Показыли, как сделать сгенерированные из protobuf классы не такими всратыми.
- Обозрели Buf и продемонстрировали его применение.
https://youtu.be/E61resEfgUE
В этом стриме мы:
- Призвали мейнтейнера RoadRunner и гуру Golang/Rust Валеру
- Обсудили gRPC и protobuf, особенности работы с ними на PHP.
- Показыли, как сделать сгенерированные из protobuf классы не такими всратыми.
- Обозрели Buf и продемонстрировали его применение.
https://youtu.be/E61resEfgUE
YouTube
Все, что нужно знать о работе с gRPC в PHP: Гид для разработчиков
Присоединяйтесь к нашему пошаговому обучающему стриму, где мы обсуждаем, углубленное использование gRPC с PHP. Мы рассказываем о том, что это такое, его особенности работы, и как с ним работать в PHP.
00:00 - Начинаем стрим
2:30 - Гость rustatian
12:45…
00:00 - Начинаем стрим
2:30 - Гость rustatian
12:45…
🤯5🔥2
Через полтора часа стрим!
На этот раз прямо в ютубчик и под пиво.
Присоединяйтесь. Поговорим про RoadRunner.
https://www.youtube.com/live/3WdSCnzsFKE?si=aB3TeAGj_19ixsxK
На этот раз прямо в ютубчик и под пиво.
Присоединяйтесь. Поговорим про RoadRunner.
https://www.youtube.com/live/3WdSCnzsFKE?si=aB3TeAGj_19ixsxK
🔥13💩2
Начинаем спонтанный стримчик
https://youtu.be/TG_XgyKHt10
https://youtu.be/TG_XgyKHt10
YouTube
Разрабатываем Temporal Workflow на PHP для заказа пиццы
Лайвкодим приготовление пиццы на PHP.
В этом видео-цикле рассмотрим написание кода с использованием Temporal на примере пиццерии.
Репозиторий проекта: https://github.com/php-fart/order-pizza
Ссылка на наш дискорд, где мы проводим стримы и где можно с нами…
В этом видео-цикле рассмотрим написание кода с использованием Temporal на примере пиццерии.
Репозиторий проекта: https://github.com/php-fart/order-pizza
Ссылка на наш дискорд, где мы проводим стримы и где можно с нами…
🔥8
#Article #Типизация #php
Всем нравятся Constructor Property Promotion, не так ли?
☝️ эти фрагменты кода эквивалентны 👇
Но не эквивалентны этому:
Разница в наличии значений по умолчанию у свойств.
Теперь попробуем создать объекты из обоих вариантов через рефлексию без использования конструктора.
https://3v4l.org/0tLcM
Если у свойства нет значения по умолчанию, то оно будет неинициализированным.
Такой способ создания объектов в обход конструктора широко используется под капотом многих библиотек, не только тех, которые используют
И иногда это стоит учитывать при работе с классами, которые будут проходить через гидрацию или демаршализацию. У меня такое уже выстреливало 😳.
А если ты счастливый пользователь Cycle ORM, то я рекомендую вообще закрывать конструкторы сущностей (делать пустой приватный конструктор) и вместо этого писать фабрики.
Всем нравятся Constructor Property Promotion, не так ли?
final class Foo {
public function __construct(
public bool $bar = false,
public array $baz = [],
) { }
}
☝️ эти фрагменты кода эквивалентны 👇
final class Foo {
public bool $bar;
public array $baz;
public function __construct(
bool $bar = false,
array $baz = [],
) {
$this->bar = $bar;
$this->baz = $baz;
}
}
Но не эквивалентны этому:
final class Foo {
public bool $bar = false;
public array $baz = [];
public function __construct(
bool $bar = false,
array $baz = [],
) {
$this->bar = $bar;
$this->baz = $baz;
}
}
Разница в наличии значений по умолчанию у свойств.
Теперь попробуем создать объекты из обоих вариантов через рефлексию без использования конструктора.
https://3v4l.org/0tLcM
object(Foo)#3 (0) { ["bar"]=> uninitialized(bool) ["baz"]=> uninitialized(array) }
object(Foo)#3 (2) { ["bar"]=> bool(false) ["baz"]=> array(0) { } }
Если у свойства нет значения по умолчанию, то оно будет неинициализированным.
Такой способ создания объектов в обход конструктора широко используется под капотом многих библиотек, не только тех, которые используют
doctrine/instantiator
.И иногда это стоит учитывать при работе с классами, которые будут проходить через гидрацию или демаршализацию. У меня такое уже выстреливало 😳.
А если ты счастливый пользователь Cycle ORM, то я рекомендую вообще закрывать конструкторы сущностей (делать пустой приватный конструктор) и вместо этого писать фабрики.
🔥9🤔6
#ВредныеСоветы #Типизация #php
Как сломать типизацию:
https://3v4l.org/nTogS
Как сломать
https://3v4l.org/gSWFF
Также не забываем про пакет
Что там ещё нам мешает писать код по своим правилам?
Как сломать типизацию:
https://3v4l.org/nTogS
Как сломать
readonly
(и типизацию):https://3v4l.org/gSWFF
Также не забываем про пакет
unfinalize
.Что там ещё нам мешает писать код по своим правилам?
3v4l.org
Online PHP editor | output for nTogS
Run your php code online; get statistics, vld output and compare output from all versions.
🤯11😁6💩2
Привет, фартаны!
Наконец-то в телегу подвезли подсветку синтаксиса для блоков кода. Естественно, я пройду и обновлю все предыдущие посты.
А чтобы наш канал заиграл новыми красками, нужно его как следует бустануть аж до 5 уровня 🍺🍺🍺🍺🍺
Кстати, а как вы относитесь к сторисам в телеге?
Наконец-то в телегу подвезли подсветку синтаксиса для блоков кода. Естественно, я пройду и обновлю все предыдущие посты.
А чтобы наш канал заиграл новыми красками, нужно его как следует бустануть аж до 5 уровня 🍺🍺🍺🍺🍺
Кстати, а как вы относитесь к сторисам в телеге?
Telegram
PHP Fart Time
Проголосуйте за канал, чтобы он получил больше возможностей.
🔥2🤬2💊2🤔1🤯1
Мы заскедулили стримчик про скедулинг. Приходите и, не отрывая руку от лица, задавайте вопросы.
https://www.youtube.com/live/4VaEy1h3hpo?si=n8cuhWee2qMEq3vx
https://www.youtube.com/live/4VaEy1h3hpo?si=n8cuhWee2qMEq3vx
YouTube
Распределенное планирование Cron заданий: Обзор Temporal Scheduler и сравнение с Laravel
Присоединяйтесь к нам в этом стриме, где мы будем говорить о различных методах планирования заданий, с ориентиром на Laravel и Temporal Scheduler. Вот подробности нашего расписания:
00:00 - Начинаем стрим
00:35 - Вступление
1:25 - Laravel scheduler
16:40…
00:00 - Начинаем стрим
00:35 - Вступление
1:25 - Laravel scheduler
16:40…
🔥12
Тоже накину про инициативу Валентина Удальцова по поводу
Я считаю, что это изменение было бы к лучшему.
Да, это не привычно, да можно сделать статический метод
Но:
- Скорее всего вы сами по-началу плевались на эти скобочки. А кто-то плюётся и сейчас, прыгая между стеками.
- Статические конструкторы - прекрасно, когда есть несколько путей создания объекта (
- Насколько я понимаю, тут нет никакого слома обратной совместимости и всё, что работало, продолжит работать.
Но самый важный для меня поинт — у меня на клавиатуре уже клавиша открывающей скобки начала барахлить. Давайте уже поскорее избавимся от этого скобочного зла 🔥
Если Валентин инициативу дожмёт - будет мега-круто. Я свою не дожал 🫤
Дискуссии:
• PR на GitHub
• Пост в канале Пых
• Пост в канале Предводителев
• Обсуждение в X
new MyClass()->method()
без скобок.Я считаю, что это изменение было бы к лучшему.
Да, это не привычно, да можно сделать статический метод
MyClass::new()
, который потом приятно выглядит в fluent вызовах MyClass::new()->method()
.Но:
- Скорее всего вы сами по-началу плевались на эти скобочки. А кто-то плюётся и сейчас, прыгая между стеками.
- Статические конструкторы - прекрасно, когда есть несколько путей создания объекта (
fromFile(File $file)
, fromString(string $data)
). Но когда мы описываем класс DTO, то на кой нам эти статические конструкторы? DTOшек много. А ещё на каждый статический конструктор придётся дублировать параметры с конструктора вместе с их описанием!- Насколько я понимаю, тут нет никакого слома обратной совместимости и всё, что работало, продолжит работать.
Но самый важный для меня поинт — у меня на клавиатуре уже клавиша открывающей скобки начала барахлить. Давайте уже поскорее избавимся от этого скобочного зла 🔥
Если Валентин инициативу дожмёт - будет мега-круто. Я свою не дожал 🫤
Дискуссии:
• PR на GitHub
• Пост в канале Пых
• Пост в канале Предводителев
• Обсуждение в X
GitHub
new MyClass()->method() without parentheses by vudaltsov · Pull Request #13029 · php/php-src
This PR allows to immediately access newly created object without parentheses.
class Request implements Psr\Http\Message\RequestInterface
{
// ...
}
// BEFORE
$request = (new Request())-&g...
class Request implements Psr\Http\Message\RequestInterface
{
// ...
}
// BEFORE
$request = (new Request())-&g...
🔥14💊1
Записали стрим по атрибутам.
Мы их используем давно и везде - во фреймворке, в пет-проектах и на продуктах. А вы?
Из того, что забыли сказать:
1. Есть пакет
2. С наступающим Новым Годом!
Мы их используем давно и везде - во фреймворке, в пет-проектах и на продуктах. А вы?
Из того, что забыли сказать:
1. Есть пакет
spiral/attributes
, который раньше использовался для чтения атрибутов и аннотаций через единый интерфейс. Раньше он был очень актуален, а в версии пакета 2.х парсинг атрибутов работал даже на PHP 7.4 (хотя атрибуты появились только в PHP 8). spiral/attributes
был хорошим помощником в переходный период с аннотаций на атрибуты, но сейчас, с отказом от аннотаций, он становится немного неактуальным и требует пересмотра концепции. Поэтому, отвечая на запрос втора канала Хэндлим тему, говорю, что производить сравнения spiral/attributes
с либами типа этой было бы некорректно — слишком уж разные.2. С наступающим Новым Годом!
YouTube
Глубокое погружение в PHP Attributes: Все, что нужно знать
🔥 Присоединяйтесь к нашему стриму, где мы освещаем все аспекты PHP Attributes! Разберем от базового использования до продвинутых техник в реальных приложениях.
00:00 - Начинаем стрим
00:25 - Приветствие
02:10 - Вступление
05:00 - Как выглядят атрибуты
06:50…
00:00 - Начинаем стрим
00:25 - Приветствие
02:10 - Вступление
05:00 - Как выглядят атрибуты
06:50…
🔥11
Привет, фартаны!
Закончился 2023 год, начался 2024.
Пришла пора оглянуться назад и посмотреть на проделанную работу, а заодно расставить таймкоды.
📽 Все про PHP attributes
📽 Distributed Cron scheduling
📽 Создаем простой чат с использованием Spiral Framework, RoadRunner и Centrifugo WS сервер и VueJs
📽 Что такое RoadRunner app server и для чего он нужен PHP
📽 Как работать с gRPC в PHP
📽 Пишем простой Temporal workflow
С Новым Годом! Говорят, он будет хуже, чем предыдущие, но последним (правда не говорят, в каком смысле).
Пишите в комментариях, что бы вы хотели увидеть в следующем стриме.
Закончился 2023 год, начался 2024.
Пришла пора оглянуться назад и посмотреть на проделанную работу, а заодно расставить таймкоды.
📽 Все про PHP attributes
📽 Distributed Cron scheduling
📽 Создаем простой чат с использованием Spiral Framework, RoadRunner и Centrifugo WS сервер и VueJs
📽 Что такое RoadRunner app server и для чего он нужен PHP
📽 Как работать с gRPC в PHP
📽 Пишем простой Temporal workflow
С Новым Годом! Говорят, он будет хуже, чем предыдущие, но последним (правда не говорят, в каком смысле).
Пишите в комментариях, что бы вы хотели увидеть в следующем стриме.
🔥18🤔3💊3
Привет, фартаны!
Вот и подведён итог 2023 года в PHP RU сообществе.
Что тут сказать? Такой сокрушительной победы мы и не ожидали! Спасибо за поддержку и внимание 🥳
https://t.me/tg_5minphp/1299
Вот и подведён итог 2023 года в PHP RU сообществе.
Что тут сказать? Такой сокрушительной победы мы и не ожидали! Спасибо за поддержку и внимание 🥳
https://t.me/tg_5minphp/1299
🔥22😁1
Пинг.
Скоро выйдет Temporal PHP SDK с новой крутой фичей - Workflow Update. К релизу стоит задача не только завершить код в SDK и доку, но и подготовить примеры.
А ещё я купил себе новую клаву, чтобы не добивать родную у ноутбука. Keychron K2 в очень классной комплектации. Это механика с блютузом и подсветкой, достаточно тихая, приятная в работе и тяжёлая (а значит надёжная).
При этом, я думаю, многим из вас нравятся настолки в той или иной мере. Кости в ведьмаке тоже считаются.
В общем, пора кодить. Задача - сделать игру Zonk на Temporal с использованием новой фичи Workflow Update.
👇👇👇
Go live!
Скоро выйдет Temporal PHP SDK с новой крутой фичей - Workflow Update. К релизу стоит задача не только завершить код в SDK и доку, но и подготовить примеры.
А ещё я купил себе новую клаву, чтобы не добивать родную у ноутбука. Keychron K2 в очень классной комплектации. Это механика с блютузом и подсветкой, достаточно тихая, приятная в работе и тяжёлая (а значит надёжная).
При этом, я думаю, многим из вас нравятся настолки в той или иной мере. Кости в ведьмаке тоже считаются.
В общем, пора кодить. Задача - сделать игру Zonk на Temporal с использованием новой фичи Workflow Update.
👇👇👇
Go live!
🔥21
Привет, Это FartTimer!
📺 У нас опубликован новое видео.
Это запись спонтанного стрима на твиче. Этакий концентрат информации про Temporal, RoadRunner, интерцепторы и что-то там ещё на 4 часа.
https://youtu.be/AIwZAXXcYEY?si=h-U1qfP0SJSTPWPw
📺 У нас опубликован новое видео.
Это запись спонтанного стрима на твиче. Этакий концентрат информации про Temporal, RoadRunner, интерцепторы и что-то там ещё на 4 часа.
https://youtu.be/AIwZAXXcYEY?si=h-U1qfP0SJSTPWPw
YouTube
Про Temporal, RoadRunner, Buggregator, Centrifugo, Spiral и др. [ЗАПИСЬ СТРИМА]
Exploring Temporal, RoadRunner, Buggregator, Centrifugo, Spiral and More [STREAM RECORDING]
Tune in for an in-depth exploration of cutting-edge development technologies like Temporal, RoadRunner, Buggregator, Centrifugo, and Spiral. This recorded stream…
Tune in for an in-depth exploration of cutting-edge development technologies like Temporal, RoadRunner, Buggregator, Centrifugo, and Spiral. This recorded stream…
🔥15