|
2.6, йцук (?), 21:37, 17/04/2019 [^] [^^] [^^^] [ответить]
| –5 +/– |
Если код на PHP генерировать из какого-нибудь Idris, то почему бы и нет. Тормознее уже не станет, а гарантии какие-никакие будут.:)
| |
2.7, Анонимс (?), 21:43, 17/04/2019 [^] [^^] [^^^] [ответить]
| +3 +/– |
Каким бы был мир без пхп? На чём писали бы сайтики, на C+CGI?
| |
|
|
4.12, Аноним (12), 22:19, 17/04/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ого! Оно живое ещё? Я когда-то давно читал про это чуть-чуть.
| |
|
5.31, пох (?), 10:18, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
скорее мертвое - Paf, главный писатель второй и третьей версий, давно уже не с ними, moko@ давно уже неинтересно, в своих разработках они им уже давно не пользуются, тянут по инерции, если патч прислать - может быть что поправят.
fcgi не осилили, поскольку самим им не надо, современные nosql ниасилили, кроме мемкэша, который сделан наспех и неправильно (нет cas, который приходится заменять кривыми и ненадежными костылями), собирается на современных системах уже со скрипом, поскольку такой c++ десять лет уже немодно.
а жаль, да. Половины типовых уязвимостей гуанокода на пехепе удалось бы избежать при ничуть не более сложном для понимания языке, если бы он не застрял навеки в 2005м году.
| |
|
4.13, Аноним (13), 23:16, 17/04/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
>Поддерживает UTF-8, Windows-1251 и KOI8-R
Если есть UTF-8, то зачем остальные две?
>Оптимален для написания «Hello, world!»
И это самое ценное. :)
| |
|
3.26, Евгений (??), 07:23, 18/04/2019 [^] [^^] [^^^] [ответить]
| +4 +/– |
На том же, на чём писали — Perl, Python, Ruby, JavaScript (только не надо мне писать, что node.js недавно изобрели, до него было как минимум две реализации серверного JS — нетскейпа и MS).
| |
3.78, Аноним 80_уровня (ok), 01:24, 20/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Вполне возможно, что в мире без пыха его место занял бы перл. CMS для него были уже тогда, поддержка апачем в виде mod_perl... не помню, но, возможно, во время выхода PHP3 уже и была.
| |
|
2.9, Аноним (9), 21:48, 17/04/2019 [^] [^^] [^^^] [ответить]
| +11 +/– |
"Сегодня в завтрашний PHP не все могут смотреть. Вернее, смотреть могут не только лишь все, мало кто может это делать."
| |
2.81, Andrey Mitrofanov (?), 10:43, 22/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
> За PHP будущее. Очень гибкий и мощный язык.
Кстати, да! ...ебилдов и PHP-зенд-EBPF в ядре.
Веб-конфигуратор ядра грядёт, .... Вииииижу!
| |
|
1.3, Онаним (?), 20:23, 17/04/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Zend решили таки дропнуть своё монструозное поделие, и заняться наконец разработкой именно самого PHP?
| |
|
2.15, Василий (??), 23:40, 17/04/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
Давно пора, на самом деле. Любители пошли в ларавель, а профи в симфони. Остальное стагнирует.
| |
|
3.18, KonstantinB (ok), 00:18, 18/04/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
Многие профи тоже пошли в Laravel. Кому-то же надо разгребать всякое написанное любителями и внезапно взлетевшее. :-)
Вообще после опыта с Symfony хороший код можно писать и на Laravel. Фреймворк не сильно мешает. Самое сложное тут - обучить коллег делать не так, как они привыкли.
| |
|
|
3.27, Онаним (?), 10:08, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Не так немножко. Как с мусклом и марией почти... Зенд купила какая-то Rogue Wave, со всеми вытекающими. Теперь ключевые фигуры оттуда слились, фреймворк сбрасывают, потому что малой кровью его разрабатывать невозможно, и скорее всего займутся собственно пыхом. Вопрос только, не получится ли в итоге как с мускулом - двух веток.
| |
|
4.34, пох (?), 10:29, 18/04/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
двух? Чего это двух? У нас уже есть совершенно несовместимые пятая, 7.2 и 7.3, и уже почти есть совсем несовместимая 8, не говоря уже о фейсбучековой отдельно-несовместимой реализации.
Будет еще парочка, подумаешь...
| |
|
5.35, Онаним (?), 10:36, 18/04/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Эээээ?
В чём несовместимость-то? Единственный существенный разрыв был между 5.2 и 5.3, где изменилось поведение передачи аргументов по ссылкам. В остальном несовместим только унылый говнокод, если писалось аккуратно - переезд между 5.x и 7.x вообще без проблем.
У меня один здоровый проект прошёл насквозь через 5.3->5.4->5.6->7.0->7.2->7.3, с несущественными модификациями. По хорошему, там сейчас надо делать рефакторинг + чистить код под 7.x, но это уже отдельная задача, на совместимость она не влияет.
| |
|
6.36, Онаним (?), 10:37, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
А мини-фреймворк (~120K кода) внутри этого проекта существует и адаптируется с 4.0, но это уже другая история, и изменений там было побольше.
| |
6.39, пох (?), 10:54, 18/04/2019 [^] [^^] [^^^] [ответить] | +/– | писалось аккуратно - на машине времени подвозили каждый день новые изменения ч... большой текст свёрнут, показать | |
|
7.47, rshadow (ok), 12:17, 18/04/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Это просто разные подходы. Писать говнокод, хрен знает какими студентами, а потом превозмагая его развивать и поддерживать.
Вообщем есть люди у которых всегда полно работы, чтобы они не делали. Они выглядят очень важными и незаменимыми. Главное не разбираться что там действительно происходит, нервы целее будут.
| |
|
8.55, пох (?), 14:09, 18/04/2019 [^] [^^] [^^^] [ответить] | +/– | ну ты-то конечно пишешь не такой код, гораздо лучший жаль что его никто не види... текст свёрнут, показать | |
|
7.48, Онаним (?), 12:19, 18/04/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну там мегабайты кода и пара сотен файлов - плодить тысячи файлов по одному на каждые 50-100 строк в PHP могут только идиоты, впрочем, современные "фреймворки"... oh shi...
При переходе с 5.6 на 7.0 да, несколько тестов развалилось, но правки кода были минимальными, и в основном касались deprecated функционала.
Основной проблемой было изменение поведения передачи аргументов по ссылке, если раньше можно было отправить вычисленное значение, и любое изменение аргумента внутри функции тупо сбрасывалось при выходе, то теперь пришлось явно отправлять ($u1 = (вычисление)), чтобы оно не материлось, всё остальное перенеслось без проблем. Для 7.2 пришлось почистить break / continue кое-где, но в общем это и всё.
| |
|
8.52, rshadow (ok), 12:37, 18/04/2019 [^] [^^] [^^^] [ответить] | +1 +/– | Не совсем понятен сарказм В больших проектах на много удобнее иметь на один роу... текст свёрнут, показать | |
|
|
10.70, me (??), 06:22, 19/04/2019 [^] [^^] [^^^] [ответить] | +/– | а как без этого обеспечить нормальную автозагрузку single responsibility - это ... текст свёрнут, показать | |
|
11.74, Онаним (?), 10:00, 19/04/2019 [^] [^^] [^^^] [ответить] | +/– | Элементарно Возможности создания карты классов никто не отменял Более того, к... большой текст свёрнут, показать | |
|
|
|
8.57, пох (?), 14:13, 18/04/2019 [^] [^^] [^^^] [ответить] | –1 +/– | я и говорю - главное, не пользоваться никакими фреймворками и вообще никаким чуж... текст свёрнут, показать | |
|
|
10.75, пох (?), 12:18, 19/04/2019 [^] [^^] [^^^] [ответить] | +/– | не весь, надеюсь - кто-то же написал то, что его генерит хотя хрен его знает, к... текст свёрнут, показать | |
|
|
|
7.49, Онаним (?), 12:21, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Насчёт битриксов и прочего хлама - да, может выморозить, особенно если хостинг внешний, и версию пыха так просто не сменить. Если свой - гонять две версии на одном сервере проблем нет, особенно после FPM, да и без FPM можно.
| |
|
8.58, пох (?), 14:15, 18/04/2019 [^] [^^] [^^^] [ответить] | +/– | версию-то я поменяю - умище, умище-то куда девать В смысле - чинить-то его тепе... текст свёрнут, показать | |
|
9.66, Онаним (?), 22:18, 18/04/2019 [^] [^^] [^^^] [ответить] | +/– | В смысле кто 800 мегабайт кода - так, мелочь, 1 100 от ваших внутренних проекто... текст свёрнут, показать | |
|
10.76, пох (?), 12:25, 19/04/2019 [^] [^^] [^^^] [ответить] | +/– | битрикс теперь мой личный в смысле, та хрень что на ем , конторские разработч... текст свёрнут, показать | |
|
|
|
7.51, Онаним (?), 12:24, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Да, при переходе на 7.x ещё в другом месте (уже другом проекте) наступили на то, что исчез драйвер MSSQL, но поскольку подложка микрофреймворка всё та же - пересадили на нативный мелкософтовский драйвер без особых проблем.
| |
|
|
|
|
|
|
1.14, гуси (?), 23:24, 17/04/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
> PHP
Когда оно уже сдохнет? Не язык, а куча сломаных костылей.
| |
|
2.16, Василий (??), 23:41, 17/04/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Чем современный PHP принципиально отличается от того же питона? От джавы? От любого другого ЯП общего назначения? По пунктам, пожалуйста.
| |
|
|
4.30, Онаним (?), 10:13, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Делать из буханки хлеба троллейбус? Можно. Но зачем? В PHP совершенно другая модель программирования, не надо тянуть туда костыли классического типа.
| |
|
3.21, KonstantinB (ok), 00:35, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Если сравнивать с Java - лично мне дженериков не хватает. В принципе, это компенсируется хорошей IDE со статическим анализатором и phpdoc-хинтами.
Стандартная библиотека, конечно, объективно кривая, но за 15 лет я привык :-)
| |
3.22, Кенгуру (?), 06:15, 18/04/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Чем современный PHP принципиально отличается от того же питона?
Уродством синтаксиса. Сравни:
if ($object.method()==1) {
echo("Hello");
}
if object.method():
print("Hello")
Что режет глаз?
| |
|
|
5.63, Кенгуру (?), 20:38, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
> НЕХ в первом примере. Это на каком языке?
Точно, ПЫХ ещё более уродлив:
if ($object=>method()==1) {
echo("Hello");
}
| |
|
4.25, q (??), 07:07, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
if ($object()) {
echo 'Привет!';
}
Можно и так, вам просто не хватает образования.
| |
|
5.33, пох (?), 10:25, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
вашего образования, похоже, не хватило даже на понимание, что там проверялось совсем другое условие.
| |
|
4.29, Онаним (?), 10:11, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Режет глаз второе. Особенно отсутствие скобок вокруг условия, отсутствие then - ":" вместо такового, отсутствие символа завершения ";". Ну и лично меня ещё бесит бейсиковый print, но это уже десятое. И кое что остаётся за кадром: значимые пробелы - то есть при неудачном копировании всё это разъедется.
if ($object->method() == 1)
echo("Hello");
Вот так нагляднее.
| |
|
5.43, имя (?), 12:03, 18/04/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ничего ты не понимаешь! Это же фича, а не баг. Любой питонер тебе это скажет.
| |
|
4.50, rshadow (ok), 12:23, 18/04/2019 [^] [^^] [^^^] [ответить]
| +6 +/– |
Если кратко: чем больше узнаю питон, тем javascript все больше кажется нормальным языком.
| |
|
3.32, пох (?), 10:22, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Чем современный PHP принципиально отличается от того же питона? От джавы? От любого другого ЯП
> общего назначения? По пунктам, пожалуйста.
только в нем можно внезапно-исполнить подвернувшийся чужой код при попытке просто проверить существование файла ;-) Попробуйте-ка добиться такого на жабе!
| |
|
4.37, Онаним (?), 10:43, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Не можно, нужно phar:// к названию файла препендить. Ну, если кто-то из юзеринпута не валидирует имена файлов и не меняет их перед записью - я ему сочувствую изначально, phar-десериализация там далеко не самый страшный вариант.
| |
|
5.40, пох (?), 10:58, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
я уже устал у тебя спрашивать, что неправильного в моем файле phar://mycat.jpeg ?
Если кто-то не вылезает из милой десяточки, у меня для него неприятный сюрприз - это валидное имя.
> Ну, если кто-то из юзеринпута не валидирует имена файлов и не меняет их перед записью
сверяясь с данными из будущего, какие еще волшебные буквы, ВНЕЗАПНО разработчикам взбредет в голову интерпретировать как код?
я и говорю - унылое г-но эта ваша жаба, совершенно неинтересно на ней программировать. (у пихона тоже нет такого функционала, но в них я верю, они наверняка уже заняты изобретением еще лучших возможностей что-нибудь внезапно поисполнять)
| |
|
6.46, Онаним (?), 12:13, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Что неправильного? Наличие протокольного префикса, его как бы в юзеринпутфиленаме быть не должно, не? И вообще не должно, если ты не хочешь файл как phar трактовать. А если хочешь - какие претензии? Как написано, так и исполняется.
| |
|
7.62, пох (?), 18:41, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
откуда ж я знал десять лет назад, что это протокольный префикс?
у меня это имя каталога. С двоеточием на конце. Там рядом еще собачка и цветочек.
А удвоить / - в общем-то, много где можно совершенно случайно.
| |
|
|
9.71, пох (?), 09:39, 19/04/2019 [^] [^^] [^^^] [ответить] | +/– | мы можем позволить юзеру создавать подкаталоги, да Но языки приходится использо... текст свёрнут, показать | |
|
|
11.77, пох (?), 12:47, 19/04/2019 [^] [^^] [^^^] [ответить] | +/– | ну и зачем Теперь вместо одного поиска нужны два - один в дереве фс, другой в ... текст свёрнут, показать | |
|
|
|
|
|
6.54, KonstantinB (ok), 13:53, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
На самом деле, проблема не в phar, а в unserialize. Phar это еще один извращенный способ эксплуатировать unserialize magic. Java Deserialization Vulnerability имеет ровно ту же природу. Сама по себе универсальная (де)сериализация, позволяющая создать объект любого класса (и триггернуть все связанные с этим сайд эффекты) - так себе идея.
| |
|
7.56, Онаним (?), 14:09, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Начиная с 7.1 можно в ансериалайз воткнуть опцию allowed_classes=false, но вообще передача юзерских данных в ансериалайз - зло.
| |
7.59, пох (?), 14:17, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
по-моему проблема в подмене файлового апи uri'шным вместо изобретения отдельного, в котором нет места, к примеру, проверкам существования.
Зато так проще, ага.
| |
|
8.68, Онаним (?), 22:21, 18/04/2019 [^] [^^] [^^^] [ответить] | +/– | Стримовым Там кроме URI можно много чего весёлого нафигачить, и это очень удобн... текст свёрнут, показать | |
8.69, Аноним (69), 02:39, 19/04/2019 [^] [^^] [^^^] [ответить] | +/– | Не, ну сама идея everything is a file вполне юниксвейная, plan9, вот это все ... текст свёрнут, показать | |
|
9.72, пох (?), 09:40, 19/04/2019 [^] [^^] [^^^] [ответить] | +/– | не, тут как раз etherything is a stream А что нужно иногда просто работать с фа... текст свёрнут, показать | |
|
|
|
|
|
4.38, Онаним (?), 10:46, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Ну и чужой код исполнить не получится - только зарядить объекты из исходного кода. Вот если в этих объектах где-нибудь eval - тогда уже интереснее, а за eval в коде надо нещадно ***ть морально до полного понимания. Да, бывают и интереснее eval'а места, но это уже очень редкость и специфика - и, повторюсь, сначала надо phar:// запрепендить, что при корректной организации user data storage уже нереально.
| |
|
5.42, Аноним (42), 11:53, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
CMS на пыхе без eval покажите мне. Хочется посмотреть на это чудо генной инженерии.
| |
|
6.44, имя (?), 12:05, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
а зачем там вообще eval?
делаешь
$my_class = "\Namespace\Foo";
$my_obj = new $my_class;
и будет тебе счастье.
| |
|
|
|
3.60, Anonim (??), 14:24, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Современный PHP относительно неплох, как язык, но всё вот это легаси... особенно его стандартная библиотека, начиная от элементарных строк, массивов и так далее.. это же кошмар какой-то.. Это ещё не было речи про легаси-код, хотя, лучше не надо
| |
|
2.28, Онаним (?), 10:08, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Так пиши себе в столик на любимом тобой язычке, кто ж тебя пых-то трогать заставляет.
| |
|
1.41, Аноним (41), 10:59, 18/04/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Пользователи довольны. Хорошая новость. Уже вторая на сегодня. Хороший сегодня день.
| |
1.53, milinsky (ok), 13:45, 18/04/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Ура! Лучший фреймворк спасен! А я уже думал все, закопали. Развитие остановилось. А тут на тебе, сам LF! Огромное спасибо!
| |
|
2.80, Аноним (-), 19:50, 20/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
>Ура! Лучший фреймворк спасен! А я уже думал все, закопали. Развитие остановилось. А тут на тебе, сам LF! Огромное спасибо!
Смищно.
| |
|
|