PHP Fart Time
رفتن به کانال در Telegram
Привет, фартаны! Дурачимся, пилим OpenSource и рассказываем про передовые технологии в php. Авторы контента: @roxblnfk и @butschster
نمایش بیشتر356
مشترکین
+524 ساعت
+347 روز
+18030 روز
در حال بارگیری داده...
کانالهای مشابه
ابر برچسبها
هیچ دادهای
مشکلی وجود دارد؟ لطفاً صفحه را تازه کنید یا با مدیر پشتیبانی ما تماس بگیرید.
اشارات ورودی و خروجی
---
---
---
---
---
---
جذب مشترکین
دسامبر '24
دسامبر '24
+44
در 0 کانالها
نوامبر '24
+222
در 5 کانالها
Get PRO
اکتبر '24
+102
در 1 کانالها
Get PRO
سپتامبر '24
+98
در 1 کانالها
Get PRO
اوت '24
+158
در 3 کانالها
Get PRO
ژوئیه '24
+47
در 0 کانالها
Get PRO
ژوئن '24
+268
در 4 کانالها
Get PRO
مه '24
+100
در 1 کانالها
Get PRO
آوریل '24
+64
در 2 کانالها
Get PRO
مارس '24
+28
در 0 کانالها
Get PRO
فوریه '24
+61
در 0 کانالها
Get PRO
ژانویه '24
+92
در 0 کانالها
Get PRO
دسامبر '23
+297
در 0 کانالها
| تاریخ | رشد مشترکین | اشارات | کانالها | |
| 21 دسامبر | +3 | |||
| 20 دسامبر | +2 | |||
| 19 دسامبر | +1 | |||
| 18 دسامبر | +1 | |||
| 17 دسامبر | +1 | |||
| 16 دسامبر | 0 | |||
| 15 دسامبر | +2 | |||
| 14 دسامبر | +1 | |||
| 13 دسامبر | +3 | |||
| 12 دسامبر | +1 | |||
| 11 دسامبر | +1 | |||
| 10 دسامبر | 0 | |||
| 09 دسامبر | +7 | |||
| 08 دسامبر | +2 | |||
| 07 دسامبر | +2 | |||
| 06 دسامبر | +5 | |||
| 05 دسامبر | +1 | |||
| 04 دسامبر | 0 | |||
| 03 دسامبر | +3 | |||
| 02 دسامبر | +3 | |||
| 01 دسامبر | +5 |
پستهای کانال
Привет, фартаны!
Закончился 2023 год, начался 2024.
Пришла пора оглянуться назад и посмотреть на проделанную работу, а заодно расставить таймкоды.
📽 Все про PHP attributes
📽 Distributed Cron scheduling
📽 Создаем простой чат с использованием Spiral Framework, RoadRunner и Centrifugo WS сервер и VueJs
📽 Что такое RoadRunner app server и для чего он нужен PHP
📽 Как работать с gRPC в PHP
📽 Пишем простой Temporal workflow
С Новым Годом! Говорят, он будет хуже, чем предыдущие, но последним (правда не говорят, в каком смысле).
Пишите в комментариях, что бы вы хотели увидеть в следующем стриме.
| 2 | Записали стрим по атрибутам.
Мы их используем давно и везде - во фреймворке, в пет-проектах и на продуктах. А вы?
Из того, что забыли сказать:
1. Есть пакет spiral/attributes, который раньше использовался для чтения атрибутов и аннотаций через единый интерфейс. Раньше он был очень актуален, а в версии пакета 2.х парсинг атрибутов работал даже на PHP 7.4 (хотя атрибуты появились только в PHP 8). spiral/attributes был хорошим помощником в переходный период с аннотаций на атрибуты, но сейчас, с отказом от аннотаций, он становится немного неактуальным и требует пересмотра концепции. Поэтому, отвечая на запрос втора канала Хэндлим тему, говорю, что производить сравнения spiral/attributes с либами типа этой было бы некорректно — слишком уж разные.
2. С наступающим Новым Годом! | 634 |
| 3 | Тоже накину про инициативу Валентина Удальцова по поводу new MyClass()->method() без скобок.
Я считаю, что это изменение было бы к лучшему.
Да, это не привычно, да можно сделать статический метод MyClass::new(), который потом приятно выглядит в fluent вызовах MyClass::new()->method().
Но:
- Скорее всего вы сами по-началу плевались на эти скобочки. А кто-то плюётся и сейчас, прыгая между стеками.
- Статические конструкторы - прекрасно, когда есть несколько путей создания объекта (fromFile(File $file), fromString(string $data)). Но когда мы описываем класс DTO, то на кой нам эти статические конструкторы? DTOшек много. А ещё на каждый статический конструктор придётся дублировать параметры с конструктора вместе с их описанием!
- Насколько я понимаю, тут нет никакого слома обратной совместимости и всё, что работало, продолжит работать.
Но самый важный для меня поинт — у меня на клавиатуре уже клавиша открывающей скобки начала барахлить. Давайте уже поскорее избавимся от этого скобочного зла 🔥
Если Валентин инициативу дожмёт - будет мега-круто. Я свою не дожал 🫤
Дискуссии:
• PR на GitHub
• Пост в канале Пых
• Пост в канале Предводителев
• Обсуждение в X | 528 |
| 4 | Мы заскедулили стримчик про скедулинг. Приходите и, не отрывая руку от лица, задавайте вопросы.
https://www.youtube.com/live/4VaEy1h3hpo?si=n8cuhWee2qMEq3vx | 641 |
| 5 | Привет, фартаны!
Наконец-то в телегу подвезли подсветку синтаксиса для блоков кода. Естественно, я пройду и обновлю все предыдущие посты.
А чтобы наш канал заиграл новыми красками, нужно его как следует бустануть аж до 5 уровня 🍺🍺🍺🍺🍺
Кстати, а как вы относитесь к сторисам в телеге? | 1 038 |
| 6 | #ВредныеСоветы #Типизация #php
Как сломать типизацию:
https://3v4l.org/nTogS
Как сломать readonly (и типизацию):
https://3v4l.org/gSWFF
Также не забываем про пакет unfinalize.
Что там ещё нам мешает писать код по своим правилам? | 1 210 |
| 7 | #Article #Типизация #php
Всем нравятся 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, то я рекомендую вообще закрывать конструкторы сущностей (делать пустой приватный конструктор) и вместо этого писать фабрики. | 1 027 |
| 8 | https://www.youtube.com/watch?v=AR9aCQWwXmk | 876 |
| 9 | https://www.youtube.com/watch?v=nbVALh1JpTQ
го | 883 |
| 10 | Начинаем спонтанный стримчик
https://youtu.be/TG_XgyKHt10 | 784 |
| 11 | Через полтора часа стрим!
На этот раз прямо в ютубчик и под пиво.
Присоединяйтесь. Поговорим про RoadRunner.
https://www.youtube.com/live/3WdSCnzsFKE?si=aB3TeAGj_19ixsxK | 715 |
| 12 | gRPC и protobuf
В этом стриме мы:
- Призвали мейнтейнера RoadRunner и гуру Golang/Rust Валеру
- Обсудили gRPC и protobuf, особенности работы с ними на PHP.
- Показыли, как сделать сгенерированные из protobuf классы не такими всратыми.
- Обозрели Buf и продемонстрировали его применение.
https://youtu.be/E61resEfgUE | 607 |
| 13 | بدون متن... | 528 |
| 14 | А ещё мы релизнули пакет buggregator/trap, который поможет дампать protobuf объекты. Эта утилита умеет ловить любой трафик и даже почту, а ещё у неё есть все шансы стать шлюзом к Buggregator Cloud.
Написано на PHP с любовью и файберами🧵
Залетайте хейтить и рефакторить код! Предлагайте идеи. Например, отличная идея - добавить поддержку MQTT протокола - если тоже пилите умный дом и вам актуально - поставьте эмоджу.
Кстати, почему там ещё нет предложения добавить команду trap fart? | 530 |
| 15 | Привет, фартаны!
Мы вернулись к истокам и записали видосик.
За последние полгода Buggregator Server круто прорефакторился 💪, поэтому напомнить о нём будет не лишним.
https://youtu.be/qsDIHwS58Q4 | 410 |
| 16 | #Article
Написал длиннопост, который не влез в формат телеги и телеграфа.
⚠️ Алерт: там много англицизмов.
Читать на гитхабе: Cycle ORM до связей жадный
Надеюсь факт наличия сего писания сведёт к забвению и зарастанию тропы, ведущей к одним и тем же граблям, на которые я наступаю уже далеко не первый раз, но о которых постоянно забываю. | 364 |
| 17 | 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 когда уже сделаешь комментарии к каналу? | 333 |
| 18 | Этот пост напомнил об одной интересной картинке: https://proxify.io/worlds/php.
Поставил бы там что-то позитивное мужицкое, но можно только сердечко.
А для вас, фартаны, ивент: ставьте здесь сердечко, если вы тоже фанатеете от Laravel и Тейлора. | 307 |
| 19 | Добавлю только, что без sudo не удалится. Не благодарите. | 348 |
| 20 | gRPC сервер на PHP с помощью Roadrunner, Spiral Framework, Docker
В недавнем выпуске PHP дайджеста обнаружил такую статью. Очень радует, что gRPC таки приходит в PHP мир, что этим занимаемся не только мы и что об этом пишут 👍 | 441 |
