Юра
Да симфони это лучшее в мире пхп
Null
На 8.1 прям от души стало. На некостыльных аннотациях.
Null
И доктриновских енумах.
Юра
Но кстати вся амэрыка на ларке почему-то
Юра
Видимо не хватает мозгов освоить симфу
Konstantin
И доктриновских енумах.
а как вы их юзаете? у меня они тоже вовсю, но сука штука неюзабельная, по мне. не хватает анонимных енамов что ли
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
Зато фиберы подвезли. Чтобы реакт пхп еще больше всякого наплодил.
Konstantin
Вот да. Коллекции, генерики и будет замечательно. А асинхрон не нужон. У нас синхронный язык. За асинхроном ходите в ноду.
вот это пхп и убьет: в мире микросервисов нужно уметь из твоего контроллера опросить десяток микросервисов по возможности одновременно. сейчас это можно делать только через мразотные костыли, которые невозможно использовать
Юра
Ну поэтому пых и сидит в своей нише
Юра
И все никак не выберится
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
Я уже забыл когда последний раз на симфе твиг ставил. ТОлько чтоб письма рендерить, иногда.
Null
представь себе, что авито так и делает, да
Загоняешь. Авито на реакте написан.
Konstantin
параллельность - свойство рантайма, а конкурентность (мы ее тут называем по-деревенски асинком) - уже свойство дизайна программы
Null
У них ssr.
Konstantin
нам надо чтобы исполнение под-запросов было конкурентным
Konstantin
У них ssr.
жопу ставишь? 🙂
Null
Konstantin
не, что у них есть реакт - это факт, чего там только нету. но собирают страницу они с помощью пхп
Null
Ладно. За этих не скажу. Озон как пример мне нравится. У этих точно ssr.
Konstantin
https://habr.com/ru/company/oleg-bunin/blog/593297/
Konstantin
во, даже пруф нашел, хотя у меня слегка из других источников инфа
Konstantin
О так пхп это просто получается сборщик страниц )
да! это примерно последняя ниша, где он удобнее всего. для брокеров есть куда более удобные языки - которые и не текут каждой второй либой в рантайме (привет доктрина!), и упаковываются более удобно, чем гора пхп-файлов, к ним пхп-кли, к нему десяток расширений и конфигов
Konstantin
Ладно. За этих не скажу. Озон как пример мне нравится. У этих точно ssr.
у них и пхп нету, и насколько я помню, никогда и не было. они на шарпе писали еще тогда, когда были книжным магазином и сидели у м. аэропорт
Юра
Я кстати думаю дарт был бы удобнее для сборки страниц ))
Konstantin
дело не в языке, а в сложившейся экосистеме. если брать чисто языковые фичи, пхп вообще нахер не нужен. но пхп с симфони очень удобен
Konstantin
типа мало где есть настолько удобный тулинг - хочешь, вот тебе орм почти нормальная, тут же если надо - классный шаблонизатор, к нему система переводов, которая реально удобна разработчикам, человеческий роутинг, конфиги, параметры, удобный ДИ итд итп, долго перечислять
Null
C# все с коробки
Null
Но он меня чисто физически бесит)
Konstantin
есть такое, да. там каждый месяц новые ключевые слова завозят, с ума сойдешь это всё запоминать
Kirill
Эт чойто по фичам пых не очень?
Konstantin
Эт чойто по фичам пых не очень?
типов нет, женериков нет, асинка нет, стдлиб уродливая до тошноты
Kirill
ну про асинк ты погорячился
Konstantin
реакты свулы - это не сказать бы что официальное что-то
Kirill
так пишется на раз/два жеж
Konstantin
нууууууууууу
Konstantin
с таким же успехом можно откопать какой-нибудь мертвый проект php over jvm и сказать, что пхп компилируемый, что вы
Kirill
вон, 50 строк на реализацию интервала https://github.com/SerafimArts/simple-interval-example/blob/master/src/PeriodicTimer.php
Konstantin
ну это пока нету синхроного ио
Kirill
Любой ресурс стрим переключается в асинхронный режим одной строчкой, лол)