Юра
Да симфони это лучшее в мире пхп
Null
На 8.1 прям от души стало. На некостыльных аннотациях.
Null
И доктриновских енумах.
Юра
Но кстати вся амэрыка на ларке почему-то
Юра
Видимо не хватает мозгов освоить симфу
Konstantin
И доктриновских енумах.
а как вы их юзаете? у меня они тоже вовсю, но сука штука неюзабельная, по мне. не хватает анонимных енамов что ли
Null
Konstantin
то есть пойнт такой: есть у меня, не знаю, Entity/Order, у нее есть статус - новый там, процессинг, отлично, заводим енам под это - OrderStatus, всё отлично
Konstantin
но правильнее вроде бы делать не $order->getStatus() === OrderStatus::NEW, а $order->isStatusNew()
Konstantin
в смысле где-то там в моем прикладном коде
Null
У меня "метки" статусов в самом enum живут.
isNew, isFinish, isError
Konstantin
и получается, что этот енам нигде кроме этой сущности не используется (окей, можно ещё EnumType для форм-админок юзать, где да, хранить человекочитаемые имена статусов)
Юра
Это все хорошо
Юра
Но всеравно все это как-то с опозданием появляется
Юра
Все эти фишки
Konstantin
и завозят в час по чайной ложке
Konstantin
в пхп асинк нужен нормальный и методы на коллекциях, а не ту херню что нам несут
Юра
а учитывая отсутствие асинка на на уровне языка, отсутствие aot компиляции, отсутствие генериков все очень и очень плохо
Konstantin
вроде true/false type, юнионов/интерсекшн тайпов и прочей хуйни
Юра
До сих пор б..ть элементы массива надо отдельным докблоком указывать
Юра
Что за хрень
Konstantin
и проверять вхождение в него функцией)
Юра
Зато запилили jit, который непонятно нафиг вообще сдалсч
Null
Вот да.
Коллекции, генерики и будет замечательно.
А асинхрон не нужон. У нас синхронный язык. За асинхроном ходите в ноду.
Юра
Джит теперь будет тормозить ужасно развитие языка
Юра
Потому что каждую фишку надо чтобы джит с ней работал
Юра
И вообще джит такач вещ которач требует очень много поддержки
Null
Зато фиберы подвезли. Чтобы реакт пхп еще больше всякого наплодил.
Юра
Ну поэтому пых и сидит в своей нише
Юра
И все никак не выберится
Null
А тут уже золотым молотком попахивает.
Null
Это как php web socket server. Реализуемо? Да.
Нужно? Нет. Возьми центрифугу на голанге.
Konstantin
без женериков еще допустим поживем, а без асинка несерьезно совсем. посмотрите как синхронный мир в питоне поживает (очень херово)
Null
Мне бы коллекций и женериков за глаза хватило, чтобы испытывать счастье годик)
Null
Хочу function(App\Entity\Item[] $items)
Konstantin
это твой информационный пузырь :) речь же про будущее языка
Konstantin
и он 1000% загнется по причине отсутствия асинка
Konstantin
твой синхронный код сильно хуже не станет, если ты напишешь пару асинк-авейтов
Konstantin
а вот те места, где асинк нужен, сейчас не выразишь без страшной боли
Null
Чому? Брокеры.
Все что синхронно живет в пхп. Все что требует лютой асинхронности - шли в брокер, там ккой-нибудь голанг разберется.
Konstantin
да господи какие брокеры. тебе надо фронт-страницу авито собрать. она формируется из ответов двух десятков микросервисов, которые почти все можно опрашивать параллельно
Null
А причем тут пхп?
Konstantin
но вместо этого ты их опрашиваешь один за одним, отвечая в 20 раз дольше нужного
Vlad
а причем здесь параллельность?
Konstantin
а притом что это последний кейс, где пхп вообще нужен - рендерить хтмл и принимать формы
Null
> Собрать
Ты шо их твигом собираешь?
Уже давно всякие nuxt рулят и концепция фронт отдельно - бек отдельно.
Konstantin
представь себе, что авито так и делает, да
Null
Я уже забыл когда последний раз на симфе твиг ставил.
ТОлько чтоб письма рендерить, иногда.
Vlad
Null
Konstantin
параллельность - свойство рантайма, а конкурентность (мы ее тут называем по-деревенски асинком) - уже свойство дизайна программы
Null
У них ssr.
Konstantin
нам надо чтобы исполнение под-запросов было конкурентным
Null
Konstantin
не, что у них есть реакт - это факт, чего там только нету. но собирают страницу они с помощью пхп
Null
Ладно. За этих не скажу. Озон как пример мне нравится. У этих точно ssr.
Юра
Konstantin
https://habr.com/ru/company/oleg-bunin/blog/593297/
Konstantin
во, даже пруф нашел, хотя у меня слегка из других источников инфа
Konstantin
О так пхп это просто получается сборщик страниц )
да! это примерно последняя ниша, где он удобнее всего. для брокеров есть куда более удобные языки - которые и не текут каждой второй либой в рантайме (привет доктрина!), и упаковываются более удобно, чем гора пхп-файлов, к ним пхп-кли, к нему десяток расширений и конфигов
Юра
Я кстати думаю дарт был бы удобнее для сборки страниц ))
Konstantin
дело не в языке, а в сложившейся экосистеме. если брать чисто языковые фичи, пхп вообще нахер не нужен. но пхп с симфони очень удобен
Konstantin
типа мало где есть настолько удобный тулинг - хочешь, вот тебе орм почти нормальная, тут же если надо - классный шаблонизатор, к нему система переводов, которая реально удобна разработчикам, человеческий роутинг, конфиги, параметры, удобный ДИ итд итп, долго перечислять
Null
C#
все с коробки
Null
Но он меня чисто физически бесит)
Konstantin
есть такое, да. там каждый месяц новые ключевые слова завозят, с ума сойдешь это всё запоминать
Kirill
Эт чойто по фичам пых не очень?
Kirill
ну про асинк ты погорячился
Konstantin
реакты свулы - это не сказать бы что официальное что-то
Kirill
так пишется на раз/два жеж
Konstantin
нууууууууууу
Konstantin
с таким же успехом можно откопать какой-нибудь мертвый проект php over jvm и сказать, что пхп компилируемый, что вы
Kirill
вон, 50 строк на реализацию интервала https://github.com/SerafimArts/simple-interval-example/blob/master/src/PeriodicTimer.php
Konstantin
ну это пока нету синхроного ио
Kirill
Любой ресурс стрим переключается в асинхронный режим одной строчкой, лол)
Юра