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)

А как же бредни их разработчиков, что короткая запись массивов уменьшает читабельность и не нужна? xD

d9d9 ★★★★
()

Разработчики PHP рады...

Остальные устало делают фэйспалм и ждут, когда уже похапэ закопают! Вместе с его говнокодерами.

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

а другие делают фейспалм и ждут, когда уже закопают говноедов, кричащих, что все вокруг говнокодеры

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

Это они спионерили миксины из руби (там тоже единичное наследование) и дали им странное название

Ну, в программинге много чё «странно названного»... Например, «assembler» - это с чистого английского «рабочий-сборщик», т.е. как бы финальная стадия сборки всех модулей воедино. Тем не менее, «сборка» в программинге делается при помощи link. Polymorphism - множество форм, какое это имеет отношение к перезаписыванию виртуальных функций - х/з. Static - тоже сбоку-припёку, куда логичнее члены класса объявлять class/type member (в противовес instance member). Mixin - примесь, и вроде бы немного по смыслу подходит, но технически более грамотно как plugin, injector. Т.е. код миксина не «растворяется» в классе, а вставляется как доп. фишка. Потому traits тоже левый термин - он означает «особенность, черта», хотя у класса и так есть properties. А больше всего бесят дебилы-словоблуды со своими «marshalling» и «serialization»! Хотя означают одно и то же и оба термина - говно.

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

ждут, когда уже похапэ закопают! Вместе с его говнокодерами.

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

Говноеды - это учать похапастов, увы. Неосиляторы Перла, они всю жизнь кодят на говноязыке свои говносайтики, ужасая посетителей своими «poxape_connect_DB(): unable to open MySQL database» - бугагашка ещё та! :)
После Перла смотреть на похапэ без слёз нельзя. Жалко вас, неандертальцы с дубиной! Хоть бы арбалет взяли штоле...

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

Perl - это язык программный код которого одинаков даже после применения base64_encode() к тесту.

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

Plugin уже занято другим смыслом, не?

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

Зачем следить за их удалением? Есть и есть - разница-то? В теории можно представить, что ты потом используешь её без предварительной инициализации (считая её по умолчанию нулём), но это какое-то фентези уже.

Короче, ты какую-то странную претензию предьявляешь пхп, питону, октаве, джаваскрипту и куче других языков.

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

Будет ли доступен $s в плагинах?

Говнокодерство какое-то. При более-менее внятном стиле программирования это не важно абсолютно. Плагины должны быть чистыми функциями, а не говнокодом, на который вляет код до и после них.

ForwardToMars
()
Ответ на: комментарий от helios
function bootstrap()
{    ....
        include PLUGINS . $file;
    ....
}

ололо! на говнокод!

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

При более-менее внятном стиле программирования

... Можно программировать на brainfuck'е :)

К сожалению, подобный код приходится видеть регулярно. Тот же phpbb3 - сборище подобного.

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

Perl 6 перевернёт мировую историю

Под управлением GNU Hurd, ага.

shimon ★★★★★
()

Улучшена производительность и уменьшено потребление ОЗУ

Теперь я смогу смотреть интернеты на старом ПК с 512МБ ОЗУ?

fero ★★★★
()

А magic quotes - то чем помешали?

Это ж теперь во-первых, куча дыр появится, после обновления, а во-вторых, какого хрена вообще из язычка убирают одну из немногих полезных штуковин?

Лучше бы нормальную поддержку 64-bit int/uint переменных сделали, разобрались бы с signed/unsigned и всякое гуано типа ip2long/long2ip в нормальный вид привели.

Блин, был маленький лёгонький говноязычок для быстренького написания веб-страничек. Стало какое-то монстрище-убожище.

Народ, а есть какой-нибудь скриптовый язычок, чтоб был маленький, шустренький, умел искаропки обращаться со всем HTTP барахлом от кук и реквестов до хедеров и чтобы можно было системные С библиотеки без бубна пользовать прямо в коде скриптиков. Ну что-то типа

use libbluetooth.so;
$session = sdp_connect( BDADDR_ANY, BDADDR_LOCAL, SDP_RETRY_IF_BUSY );

tcc не предлагать :)

Stanson ★★★★★
()

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

Так выглядело бы на много лучше

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

Теперь я смогу смотреть интернеты на старом ПК с 512МБ ОЗУ?

Если ты смотришь интернеты с помощью php - то да, наверное сможешь.

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

А magic quotes - то чем помешали?
Это ж теперь во-первых, куча дыр появится, после обновления, а во-вторых, какого хрена вообще из язычка убирают одну из немногих полезных штуковин?

Deprecated уже больше года. А слоупоки могут просто не обновляться на php5.4. php4 сколько лет жил? Вот и php5.2 проживёт.

одну из немногих полезных штуковин?

кривой костыль - полезная штуковина? Какое забавное название.

Лучше бы нормальную поддержку

Опенсорс. Сделай, отправь патч и не ной.

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

Perl 6 перевернёт мировую историю, или сам доживёт до её окончания. А php6 - это просто версия, которая была актуальна несколько лет назад, чтобы хоть как-то сравняться с python и ruby.

Да кто Вам такое сказал? Perl 6 - главный fail perl-сообщества. Сейчас из него стараются выжать всё, что можно - используют как полигон для тестов новых фич 5ого. Так что используйте 5ый - он ещё всех переживёт.

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

Perl - это язык программный код которого одинаков даже после применения base64_encode() к тесту.

«Одинаков» и «работает» - разные вещи. Или у программистов на альтернативных языках butthurt из-за того, что на их языках плохо рисуется geekart?

helios ★★★★★
()

Изменения в 5.4 хорошие, хоть пхп как язык отстал от своих интерпритируемых конкурентов по цеху (петон, руби) в рамках веба, но засчет большой доли сайтов/сервисов которые на нем крутятся и того, что разработчики незабывают обновлять язык, ну и то что появились адекватные фреймворки типа symfony2/yii и активного развития битриксов с друпалами и вордпрессом погоняемые

ЕМУ ЖИТЬ ЕЩЕ ОЧЕНЬ ДОЛГО! хотя я сам посматриваю в сторону node.js больше..

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

кривой костыль - полезная штуковина? Какое забавное название.

А в чём же кривизна magic quotes ? Кто вообще сказал, что magic quotes - кривизна? Что, есть какой-то священный талмуд, где написано, что вот это кривизна, а вот это - прямизна?

По-моему это какое-то ничем не мотивированное желание левой пятки разраба, оно совершенно аналогично желанию Холтмана приколотить dbus и glib2 к bluez гвоздями.

Опенсорс. Сделай, отправь патч и не ной.

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

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

Сколько можно уже засорять веб PHPшечкой и десктопы СИшечкой. Уничтожить обоих и сразу в вебе станет меньше мусорных говносайтов с детскими уязвимостями и проблемами и на десктопе сразу станет намноге проще без утечек памяти и прочих глупостей.

что предлагаете взамен второму? жопную яву с оРАКлом? жопного шарпея от мелкомягких?

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

PHP ваще должен умереть. Вместе с питонами, моно и прочей ненужной фигнёй, ибо для вместо всего этого уже есть перл

дальше не читал

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

дальше не читал

И даже не думай дальше читать. Это не Ъ.

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

К первой звезде научишься отвечать вообще не читая :}

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

Что, есть какой-то священный талмуд, где написано, что вот это кривизна, а вот это - прямизна?

Слава богу, нет. Тут в соседнем топике про религию - с талмудами можешь туда перейти.

Никому не запрещают реализовывать любую фигню. А зачем убрали magic quotes - миллион раз написано уже. Мотивации вполне логичные и прямо объясняют, что прямее, а что кривее и почему. Без всяких тулмудов, которые ты ищешь.

PHP ваще должен умереть.

Кому должен? Тебе? И когда он успел тебе задолжать?

уже есть перл

Там есть magic quotes? Поздравляю вас тогда.

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

Готов

Для продакшена - вряд ли. Хотя у меня старый, т.к. из родных мандривовских реп - 2010.12. На поиграться с языком вполне пойдет. Ну и некоторые свои скрипты с перл5 на перл6 переписал, стали лаконичней и понятней, ракудо вполне с ними справляется.

быстр

Тормоз - это мягко сказано

расово чист?

Не интересовался :)

redgremlin ★★★★★
()

Годная новость. Краткая запись массивов - это хорошо. а то иногда казус получался. Забывал, что PHP не поддерживает её:)

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

А зачем убрали magic quotes - миллион раз написано уже

Ага. И аргументация на том же уровне - «это кривизна и неправильно». И ещё непонятно нахрена их вообще выносить. Ну сделали бы выключенными по умолчанию - так нет же, надо убрать вообще.

Кому должен? Тебе? И когда он успел тебе задолжать?

Вообще должен. Как искусственно введённая без реальной необходимости сущность. Оккам и всё такое. В отличии от всяких tcc, lisp, perl и пр. php не даёт ничего нового по сравнению с уже имеющимся. Просто синтаксис другой и всё.

Там есть magic quotes? Поздравляю вас тогда.

В перле нету magic quotes. Зато можно одной строчкой их сделать. Одной строчкой, едрить, а не сотней и даже не десятком.

ЗЫ: Так что там насчёт легковесного простенького скриптового язычка без типов и объявлений как в перле, который позволяет использовать функции из С либ напрямую, без всяких извращений? Вот такое бы имело право на существование, ибо добавляет принципиально новую фичу по сравнению с существующими языками.

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

Краткая запись от старой отличается только отсутствием слова array и другими скобками - ключевое нововведение.

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

что предлагаете взамен второму? жопную яву с оРАКлом? жопного шарпея от мелкомягких?

Django / Rails. Всё открыто, свободно, удобно и быстро развивается. Выбирайте.

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

Только что поставил - for 1, 2, *** ... 32 -> $i {} не понимает. Ещё не всё реализовано. Или умножение по-другому делается?

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

К стати о magic quotes

function to_magic(&$arr) {
	foreach($arr as $gh => $v) {
		is_array($v) ? to_magic(&$arr[$gh]) :  $arr[$gh] = addslashes($v);
	}
}

to_magic($_GET);

В принципе меньше десятка строк.

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

И аргументация на том же уровне

Нет. Аргументация - смешение заэскейпленных данных от юзера и незаэскейпленных данных из базы. Очевидно же, что приходится следить, где у тебя строки с кавычками, а где без. Новичку только путаницы больше (поэтому лучше убрать опцию), а опытный вообще никогда вручную не эскейпит (поэтому у него всегда выключено и всегда автоэкскейп при вставке в базу).

Вообще должен. Как искусственно введённая без реальной необходимости сущность. Оккам и всё такое.

Должен Окамму? Не смешно и толсто.

В перле нету magic quotes.

А php хочешь, что бы было? Понятно, это попытка диверсии просто :). Ну так не прокатит, не трать время.

Одной строчкой, едрить, а не сотней и даже не десятком.

Сотней? Ты хоть попробуй по-программировать немного, что ли. Прежде чем троллить на лоре. Не смешно же даже. Если ты не знаешь, как сделать простейшие вещи, типа эскейпа кавычек на каком-то языке - какой смысл вообще обсуждать этот язык? Ты просто не знаешь его вообще.

бы имело право на существование

Мда. Откуда вы такие берётесь, непонятно. Ты же понимаешь, что за тобой, кроме болтовни ничего нет? Ты не сможешь в принципе решать, что имеет право на существование, а что нет. Только на лоре потроллить.

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

«poxape_connect_DB(): unable to open MySQL database»

О да, серьезные поцаны выбирают 500 Internal Server Error

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

Django / Rails

вы написали про Си и десктопы, я спрашиваю про них, на чем писать

про веб: конкуренция сейчас в вебе определенно есть, однако про «рельсы» уже шумели года 4 назад и они так и не смогли набрать критической массы против того же гнилого пхп.. а на горизонте сейчас маячут уже новые конкуренты куда будут прыгать «недовольные» поэтому в рельсах я уже сильно сомневаюсь если честно как в инвестицию

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

Да C-like синтаксис вводит в заблуждение. Конструкции напоминают JS. Так как одновременно использую PHP и JS - часто по привычке начинаю писать без array. Видать в голове переключатель языкового контекста барахлит:) Так-что я за это нововведение. В JS ведь тоже есть форма с new Array(), но краткой все чаще пользуются.

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

а на горизонте сейчас маячут уже новые конкуренты

А что маячит-то? Просто мужики-то не знают, что они маячут и зарабатывают на рельсах:)

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

Зачем вы так - PHP-отличный язык. Не хуже пистона/Ruby. Он популярен, прост и имеет широкое комьюнити. Для него не проблема найти недорогой хостинг и т.п. Для CMS и небольших порталов, форумов и блогов, сайтов-визиток и прочего это идеальный вариант. Уязвимости же сайтов скорее зависят от качества движка, на них установленного, чем от ЯП на котором он написан.

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

Покажите как одной строкой на перле magic quotes делаются ? В перле не силен просто :(

Не знаю точно, какие символы экранируются, но будет аналогично

$ENV{$_} =~ s/(["'<>])/sprintf('&#%x', unpack('U', $1))/ge for keys %ENV;
helios ★★★★★
()
Ответ на: комментарий от umren

Совершенно верно. Попсовых движков на основе рельс не очень-то видно, хостинг с рельсами - редкое явление, и видно что рельсы не взлетят. Есть PHP для начального уровня, и Java/.NET для enterprise. Всё остальное как-то не востребовано. Надеюсь, node взлетит. Со временем. Есть в идее nodejs потенциал. Но ЯП не самый подходящий для разработки сложных проектов. Может Dart взлетит? И ноду под него портанут? Ведь на WebKit же нода основанна.

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

> хостинг с рельсами - редкое явление,

Потому что для более-менее серьезных проектов люди покупают ВПС, а не используют шаренные хостинги. Тем более цены сейчас это вполне позволяют делать.

Рельсы по архитектуре для шаренного хостинга не очень хорошо подходят, ИМХО. Это не пхп, где можно сложить файлики по пхп в папочку и радоваться.

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