LINUX.ORG.RU

Вышел PHP 5.4.0

 ,


0

0

Разработчики PHP рады сообщить о релизе популярного языка программирования под номером 5.4.0. В релиз вошли следующие изменения:

  • Новые синтаксические конструкции:
    • Traits - иначе говоря - миксины, то есть, наборы методов, которые можно использовать в нескольких классах
    • краткая запись массивов - $a = [1, 2, 3, 4]; или $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
    • <?= доступен всегда, независимо от значения опции short_open_tag
    • Числа в двоичном формате теперь можно записывать в формате 0b001001101
    • остальные изменения
  • Улучшена производительность и уменьшено потребление ОЗУ
  • Улучшены сообщения об ошибках и предупреждения
  • Поддержка многобайтовых кодировок теперь присутствует во всех сборках и может быть включена и выключена в настройках.
  • В режиме CLI появился встроенный вебсервер - для удобства разработки

Обратно-несовместимые изменения:

  • Убраны register globals, magic quotes и safe mode
  • Убрана конструкция break/continue $var
  • Убрана опция allow-call-time-pass-reference

Версия 5.4.0 будет последней, в которой будут официально поддерживаться ОС Windows XP и Windows 2003.

Руководство по апгрейду с версии 5.3 доступно здесь.

Полный чейнджлог можно прочитать здесь.

>>> Подробности

★★★★★

Проверено: JB ()
Последнее исправление: provaton (всего исправлений: 7)

Ну, вот, 5.4.0 уже по умолчанию в sid. Зря собирал.

deb
()
Ответ на: комментарий от umren

можно зайти на любой и брызгать ядом на тему какой плохой язык

Вы не правильно поняли мой пост. Против языка я ничего не имею. Интересен сам баг.

anthill
()
Ответ на: комментарий от anonymous

Разве preg убрали из пхп?

Разве этот говноpreg удобно использовать? В php завели уже оператор =~ хотя бы? Хрен там. $str = preg_replace(«//»,"",$str); - это уродство. В plain C ещё можно стерпеть, но в языке, который якобы Hypertext Preprocessor - нет.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous

man addslashes()

man htmlentities()

Уродство.

$str = addslashes($str);

Ага.

Это не инструмент, это издевательство. =~ - вот это инструмент.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous

2. требуют отслеживать состояние опции и корректировать алгоритмы преобразования для обеспечения однозначного поведения написанного кода (то есть, приходится городит кучу костылей)

Во бредятина-то. А выключить или там включить в php.ini, в зависимости от потребности - не судьба, да? Это вообще как такое может быть?

Чо-то я PHP уже прям ненавидеть начинаю, после общения с похапистами тут, хотя 99% написанного мною для веба написано именно на php.

Ну а чо, если язык используют недоумки которые неспособны поправить php.ini, то наверно это язык для недоумков, всё-таки.

Stanson ★★★★★
()

Самое клёвое из всех изменений - это

Function array dereferencing has been added, e.g. foo()[0].

Остальное пофиг ваще.

sorc17
()
Ответ на: комментарий от Csandriel

Да, никто не делал. Разве в JavaScript есть библиотека нормальной криптографии? А в Java есть, но работает данная фича только в Windows с Oarcle Java. OpenJDK и Linux не работают с клиентом налоговой. Он запускается, и сыпет ошибкой связанной с классом, ответственным за криптографию.

lucentcode ★★★★★
()
Ответ на: комментарий от lucentcode

Сам никогда криптографией не пользовался (лол мы люди честные, нам нечего скрывать) Сейчас сугубо из любопытства погуглил.

работатет тлько в Windows с Oracle Java

http://docs.oracle.com/javase/1.4.2/docs/api/javax/crypto/package-summary.html

since JCE 1.2 (~se1.4.2; 2002)

Причем тут Oracle?

OpenJDK и Linux не работают с клиентом налоговой.

Шерлок Холмс стайл, - делать столь категоричные и объемлющие общие выводы из частного наблюдения. ^_^ Ненаучно.

Csandriel
()
Ответ на: комментарий от Csandriel

Я на двух различных дистрах попробовал, не работает. Из виртуализированного офтопа тот же апплет запустился. Не знаю, OpenJDK или Linux не угодны криво написанному апплету, но факт что что-то его не устраивает.

lucentcode ★★★★★
()
Ответ на: комментарий от lucentcode

Cегодня специально посмотрел сырцы jre. Результат: все классы пакета javax.crypto - за исключением NTLMAuthentication (раздельно для Solaris и Windows) RSACipher (строго для Windows) - лежат в папке shared, то есть, написаны на java. А значит ни ось ни железо абсолютно ни при чем. Впрочем, будь оно по иному, я бы сильно удивился.

У меня, вообще подозрение, что ваш апплет написан на J++ Это древний суррогат Java от Microsoft, который активно использует API Windows (то есть, односторонне-совместимый), и который стал в свое время причиной эпичных судебных разборок Sun vs. MS, а также радикального отказа обидившехся МS от встроенной поддержки Java под Windows. Других причин для «избирательности» jre в вашем случае я не вижу.

Csandriel
()
Ответ на: комментарий от funduk

Аббревиатура ПГМ подходит для ваших убеждений.

Было бы справедливо, если бы не одна мелочь - на перле я написал меньше всего кода. (ну если не считать lisp) Больше всего - С,С++, потом пресловутое похапе, и только потом уже перл. В перле дофига чего не очень удобно сделано, но вот работа со строками там сделана максимально грамотно. Посему, если скриптовый язык, подразумевающий работу со строками не имеет аналога =~ , натурально перловых регэкспов и всяких map и т.п. причуд, чтобы любая самая вычурная операция со строкой могла быть записана в одну строчку, то такой скриптовый язык как минимум убог (что мешало из того же перла это всё перетащить?) и непременно требует подпорок типа magic quotes и пр. А если эти подпорки оттуда ещё и выпиливают внезапно - то вообще труба.

В общем, я негодую. Пущай вернут magic quotes на место и больше не трогают. На остальное - наплевать в общем-то.

Stanson ★★★★★
()
Ответ на: комментарий от lucentcode

Да нет, потому что разрабам на PHP оно не нужно.

ха-ха

Более крутые вещи есть, и такую осилили бы.

ха-ха-ха. более крутые вещи...

Было бы желание...

где на рельсах 50 строчек, на php - 500. и потом это всё поддерживать. взять какой-нибудь sugarcrm - и плакать хочется. есть куча проектов на php, которые бы только выиграли в развитии и поддержке, если их переписать на чём-то вменяемом.

php уже - чёрная метка. с php-шниками за руку никто здороваться не хочет. :)

deb
()
Ответ на: комментарий от Stanson

Это не инструмент, это издевательство. =~ - вот это инструмент.

Да вы уже утомили со своим инструментом. Многие слова и понятия на русский с английского в лоб не переводятся. Чего же теперь, русский язык хаять? Учитывайте цели и контекст, тогда не будет казаться смешным.

Заупирать перл можно по множеству направлений, вроде отсутствия поддержки объектного, функционального программирования и прочего. Ну нету там статической проверки типов. Она и не нужна была, когда его задумывали как язык для обработки текстов! Перл подходит для своей задачи, пыхпых для своей. ОНИ НЕ КОНКУРЕНТЫ!!! Как пила не конкурент топору.

dr_dobermann
()
Ответ на: комментарий от Stanson

Во бредятина-то. А выключить или там включить в php.ini, в зависимости от потребности - не судьба, да? Это вообще как такое может быть?

Ты по-русски понимаешь, или тебе на перле написать? «в зависимости от потребности» - это и есть:

2. требуют отслеживать состояние опции и корректировать алгоритмы преобразования для обеспечения однозначного поведения написанного кода (то есть, приходится городит кучу костылей)

Надо объяснить, почему лишние костыли - это плохо? И как ты собрался править php.ini на произвольно взятом хостинге? Ты не поверишь, но не все хостеры дают доступ к системным настройкам клиентам своих шаредхостингов!

anonymous
()
Ответ на: комментарий от Stanson

Уродство.

$str = addslashes($str);

окэ, сделаешь короче? я начну, а ты продолжай:

$str =~ s/ / /g

в твоем распоряжении 12 символов, потом сравним читабельность.

Разве этот говноpreg удобно использовать?

Достаточно удобно, если не требуются $' $`. Иначе должен встать вопрос о соответствии инструмента (не только ЯП) задаче.

anonymous
()
Ответ на: комментарий от deb

А тот же facebook на Ruby/Python переписывать не спешат. Ибо смысла нет, один геморрой и большие расходы на облако, из-за повышенных требований к железу сервера у пистона/рубина.

lucentcode ★★★★★
()
Ответ на: комментарий от lucentcode

У PHP есть одна ниша в которой он не победим, и никогда не будет побежден. Эту нишу можно условно назвать «хостинг за 5 баксов».

В нише повыше «VPS/dedic» у него уже преемуществ меньше.

А тот же facebook на Ruby/Python переписывать не спешат.

В фейсбуке PHP кажись только в качестве шаблонизатора, и то компилируется в натив код, они сами компилятор и залабали.

Ибо смысла нет, один геморрой и большие расходы на облако, из-за повышенных требований к железу сервера у пистона/рубина.

В облаке у гуглы (GAE) питон прекрасно поживает.

mantar
()
Ответ на: комментарий от anonymous

И как ты собрался править php.ini на произвольно взятом хостинге? Ты не поверишь, но не все хостеры дают доступ к системным настройкам клиентам своих шаредхостингов!

А, нищебродствуете... Так бы сразу и сказали. А то «костыли приходится писать» и всё такое. Вот ведь, блин, ларчик просто открывался.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous

в твоем распоряжении 12 символов, потом сравним читабельность.

В моём расположении все возможные символы и их комбинации, а не только то, что в addslashes забито.

А кривость и некрасивость именно в записи вида a = func(a)

Stanson ★★★★★
()
Ответ на: комментарий от lucentcode

Нифигассе доживает, всем бы так доживать

Гвидо недавно новый API к датастору выкатил

mantar
()
Ответ на: комментарий от lucentcode

А тот же facebook на Ruby/Python переписывать не спешат. Ибо смысла нет, один геморрой и большие расходы на облако

Фейсбук просто изначально был на PHP, и развился он не благодаря этому, а вопреки - php поддерживать-то сложнее, чем проекты на нормальных фреймворках.

А сейчас фейсбук может себе позволить что угодно - даже будь он написан хоть на tcl, хоть на forth, хоть на ассемблере для КР580ВМ80А, фейсбук мог бы себе позволить и разработчиков на этом языке, и дополнительные серверы. Надо было бы на луну слетать два раза - он мог бы и это.

Он даже себе позволил транслятор php в c - пишешь на php, а умная машина выдаёт c-код. Впрочем, с ресурсами facebook можно было бы сделать транслятор в с хоть из узелкового письма, хоть из боевых там-тамов.

Потому что на данном этапе уже всё равно - и проще идти по пути наименьшего сопротивления - потому что уже вляпались в php. Вон, люди тоже не торопятся переходить с ms windows на прекрасные свободные системы, и вовсе не потому, что windows так хороша, или свободные системы так плохи.

из-за повышенных требований к железу сервера у пистона/рубина.

Хорошая шутка. Нет, правда, очень хорошая шутка. Я посмеялся.

deb
()
Ответ на: комментарий от Stanson

А, нищебродствуете... Так бы сразу и сказали. А то «костыли приходится писать» и всё такое. Вот ведь, блин, ларчик просто открывался.

Да на любом сервере. У тебя 7 приложений могут требовать такого поведения, а 7 других - обратного. И крутись, как хочешь.

deb
()
Ответ на: комментарий от deb

Да на любом сервере. У тебя 7 приложений могут требовать такого поведения, а 7 других - обратного. И крутись, как хочешь.

Такой бардак на серваке - наличие сразу нескольких PHPшных, да ещё и разномастных морд - как-то уж совсем неправильно. Особенно если сервак в инет торчит и морды не свои самописные, а что-то ширпотребное. Не через одну, так через другую сломают.

Я встречал, конечно, странных персонажей, которые без какого-нибудь PHPMyAdmin и прочих админских морд на серваке впадают в ступор и начинают откладывать кирпичи, но это ж клиника. Затачивать язык под такую клинику - себя не уважать.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Такой бардак на серваке - наличие сразу нескольких PHPшных, да ещё и разномастных морд - как-то уж совсем неправильно. Особенно если сервак в инет торчит и морды не свои самописные, а что-то ширпотребное. Не через одну, так через другую сломают.

какой-нибудь форум, какой-нибудь блог, cms, fengoffice, sugarcrm, roundcube, owncloud. плюс что-нибудь самописное. вот и накопилось. :)

зачем себя искусственно ограничивать? когда можно просто выбрать другую среду :)

deb
()
Ответ на: комментарий от deb

какой-нибудь форум, какой-нибудь блог, cms, fengoffice, sugarcrm, roundcube, owncloud. плюс что-нибудь самописное. вот и накопилось. :)

Ну я ж говорю - бардак. :)

При этом, все они, разумеется, написаны под PHP <5.4.0, т.е. под PHP с magic quotes. При обновлении будет весело.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

PHPMyAdmin удобен для работы с MySQL, быстро сделать пару запросов - самое то. Можно конечно и без него, но не на shared hosting'е. Ведь там доступ к БД по сети отрубают, и приходится по любому ставить самому PHPMyAdmin в один из подкаталогов сайта, или на поддомен(если их в наличии несколько, что не факт).

lucentcode ★★★★★
()
Ответ на: комментарий от deb

Когда есть смысл в использовании именно python, надо его использовать. Надо Ruby on Rails - делайте на нём. Если проект идеально строится на PHP-фреймворке, или CMS - надо делать на нём. Делаете что-то серьёзное и большое, лучше сразу выбрать серьёзную технологию. Задачи разные, под них и инструменты разные выбирать надо. Не стоит зацикливаться на чём-то одном, потому что оно вам нравится.

lucentcode ★★★★★
()
Ответ на: комментарий от lucentcode

Если мое предположение верно, и апплет написан на J++ то в Линухе он будет исполнен только на MS-JVM for Linux©®☺™ ^_^

JRE от Sun православна, спору нет. Про OpenJDK погуглил, вроде заслуживает доверия, ведь продукт тот же, поставщик тот же, только вид сбоку. Не понимаю только, какой в ней смысл, - сырцы официальной - теперь уже оракловской - KDE открыли, включая С++-сырцы самой машинки. Возможно, отличаются лицензии, этот вопрос не гуглил.

Csandriel
()
Ответ на: комментарий от Csandriel

Cледует читать

сырцы официальной - теперь уже оракловской - JDK открыли,

Епт. Оговорка по Фрейду. Много вопросов в голове.

Csandriel
()
Ответ на: комментарий от Stanson

Вам показали что перл на ~10 символов короче чем пых, а вы все упорото за свое. Регулярки везде страшны, регулярки везде важны.... при работе с текстом, и то если выбросить strpos ;)

funduk
()
Ответ на: комментарий от funduk

Ого, а вы из Николаева? Там тоже иного фанатиков Django/Python? Или нормальные, прагматичные PHP'шники? У нас в стране Python не очень востребован, ибо переплачивать за что-то непрактичное у нас не принято. Страна бедная, люди прагматичные...

lucentcode ★★★★★
()
Ответ на: комментарий от Stanson

А, нищебродствуете... Так бы сразу и сказали

А, одмин локалхоста... Так бы сразу и сказали.

anonymous
()
Ответ на: комментарий от mantar

У PHP есть одна ниша в которой он не победим, и никогда не будет побежден. Эту нишу можно условно назвать

легаси

anonymous
()
Ответ на: комментарий от Stanson

кривость и некрасивость именно в записи вида a = func(a)

кривость — это когда приходится парсить регексп, чтобы понять, что это всего лишь addslashes. убивал бы таких продвинутых мудаков.

В моём расположении все возможные символы и их комбинации, а не только то, что в addslashes забито.

0. в задачах, для которых оправдано применение пхп, регекспы далеко не самое главное

1. addslashes прекрасно справляется со своими обязанностями

2. как и stripslashes, функция, обратная addslashes

3. если надо больше символов и комбинаций, следует использовать preg

anonymous
()
Ответ на: комментарий от funduk

Может и есть, но не в Молдове:) Тут они не нужны. PHP, Java, C# и 1С - это практически весь спектр востребованных на местном рынке ЯП.

lucentcode ★★★★★
()
Ответ на: комментарий от funduk

У вас может и по другому, страна побольше, да и более развитая.

lucentcode ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.