После двух лет разработки началось (http://www.php.net/index.php#id2011-06-28-1) альфа-тестирование новой ветки интерпретатора языка программирования PHP 5.4, в которой добавлены новые языковые конструкции и удалены устаревшие возможности. В текущем состоянии ветка 5.4 не обеспечивает полную совместимость на уровне API и может потребовать модификации приложений (например, удалена поддержка Safe mode и register_globals). Представленная версия позиционируется для начального тестирования и ознакомления с новыми возможностями. Разработка ветки PHP 5.4 еще не завершена, а API не стабилизирован. Через 4 недели планируется второй альфа-выпуск.
Разработка PHP 5.4 ведется в рамках нового регламента подготовки релизов, подразумевающего плановую подготовку выпусков через фиксированные промежутки времени с выпуском тестовых версий в процессе разработки. В соответствии с новым регламентом, значительные релизы PHP, содержащие новшества, будут выходить раз в год, а время поддержки новой ветки со...URL: http://www.php.net/index.php#id2011-06-28-1
Новость: https://www.opennet.ru/opennews/art.shtml?num=31035
> Удаление конфигурационных опций register_globalsВсе правильно сделали
Ничего не правильно - все скрипты теперь переписывать.
кто-то еще использует эту дыру с переменными ???
Не хотите - не переписывайте :).И вообще, они что, переписали по вашему весь вордпресс чтоли?Или как они его бенчмаркали?!
Это надо было давно сделать, лет пять-семь как.
Уже лет 10 пишу на php. Ни разу не возникала необходимость в register_globals=on. Разве что с $HTTP_xxxx_VARS перешёл на $_xxxxx.
Неплохо так... Беда только что старые скрипты придется перебирать. А так.... хорошо...
s/старые/кривые/И это правильно.
не надо ля-ля
> не надо ля-ляПримеры того, чего требуется переписать можно? Только желательно не мелочи вроде $HTTP_GET_VARS, которые можно быстро заменить соответствующим софтом, а действительно серьёзные вещи. Если кодеры привыкли к всегда включенной magic_quotes_gpc и сразу пихали данные в базу без фильтрации, то это их проблемы.
http://www.php.net/manual/ru/migration53.deprecated.phpв том же split-е кучу регулярный выражений, например.
если охота посмотреть на возникающий геморрой - берите старенький друпал, например, запускайте и тренируйтесь, а как натренируетесь, так приходите сюда бить себя в грудь и писать: "s/старые/кривые/"
Всё правильно, язык прогрессирует, и с 5 ветки наметились тенденции к выкидыванию костылей и упорядочиванию синтаксиса. В любом языке так. А split - это, однако, мелочи. Вы лучше дайте пример где приходится всю архитектуру перетряхивать.Да и зачем мне старенький Друпал? Linux Kernel 0.01 найдите и попробуйте 4-м GCC скомпилировать.
>Вы лучше дайте пример где приходится всю архитектуру перетряхивать.ну так возьмите друпал под пхп5.2 и посмотрите. не нравится друпал - возьмите жумлу...
>Да и зачем мне старенький Друпал?
затем что вы желаете посмотреть на серьезные косяки.
>Linux Kernel 0.01 найдите и попробуйте 4-м GCC скомпилировать.
и чего? у меня есть скрипты на перле, которые работают уже как 7-8 лет и в которых я ничего за это время не правил для поддержки их работоспособности в новых версиях перла, единственное, что проводил оптимизации кода небольшие, например, переписывая куски кода под map, где нужно.
надо признать, что пхпшники плохие проектировщики и корявые программисты, отсюда и тонны уязвимостей и несовместимости в синтаксисе от версии к версии...
> ну так возьмите друпал под пхп5.2 и посмотрите. не нравится друпал - возьмите жумлу...А я смотрел. Написаны они именно что быдлокодерами, чего ж удивляться тому, что их приходится с каждой новой версией PHP переписывать?
> затем что вы желаете посмотреть на серьезные косяки.
Я хочу посмотреть на серьёзные косяки в современных движках написанных прямыми руками нормальными программистами, которые придётся сильно исправлять с выходом новой версией PHP. А не на совершенно протухший и неактуальный код. В этом разница.
Говорят, Битрикс до сих пор про PHP 5 не знает. И в обозримом будущем вряд ли узнает. Даже крупная компания-разработчик не может справиться с разгребанием того гoвна, которое они наворотили. Цитата с Википедии: "Битрикс версии «для разработки» (не имеет демо данных) имеет 36 350 файлов в 17 203 папках (370 таблиц баз данных) [157 мегабайт]" и ещё вот: "ещё один недостаток Битрикса, который заключается в том, что ежедневные бэкапы нужно делать не только Баз данных, но всего сайта с десятками тысяч файлов, упаковка которых в свою очередь создают реальную нагрузку на сервер".
Вот такой он - основной процент скриптов, которые имеют проблемы с переходом на новую версию PHP.
> и чего? у меня есть скрипты на перле, которые работают уже как 7-8 лет и в которых я ничего за это время не правил для поддержки их работоспособности в новых версиях перла, единственное, что проводил оптимизации кода небольшие, например, переписывая куски кода под map, где нужно.
Perl давно перестал развиваться, PHP сейчас на пике своего развития.
> надо признать, что пхпшники плохие проектировщики и корявые программисты, отсюда и тонны уязвимостей и несовместимости в синтаксисе от версии к версии...
С этим я спорить не буду, главное что эти люди умеют признавать свои ошибки и их исправлять, а вот многие PHP-кодеры этого не умеют.
>> ну так возьмите друпал под пхп5.2 и посмотрите. не нравится друпал - возьмите жумлу...
> А я смотрел. Написаны они именно что быдлокодерами, чего ж удивляться тому,
> что их приходится с каждой новой версией PHP переписывать?Ну а все на пхп такое, что не возьми: пхпбб, вордпресc, типо3, друпал, жумла - это из популярного, а сколько я видел не популярного с кучами косяков перенося с 4-ки на 5-ку и с 5.2 на 5.3, за время работы в хостинге, так этого вообще не сосчитаешь.
> Я хочу посмотреть на серьёзные косяки в современных движках написанных прямыми руками
> нормальными программистами, которые придётся сильно исправлять с выходом новой версиейНу а какие движки написаны прямыми руками, если даже самые популярные продукты на этом языке написаны быдло-кодерами?
> Говорят, Битрикс до сих пор про PHP 5 не знает.Работает он на пхп5, не работать может только если какие-то свои правки вносились. Но битрикс ужасен, страх и ужас... если у тебя куча железа которому заняться нечем - покупай битрикс он сожрет все имеющиеся мощности и попросит еще, если конечно не переписывать его части под себя. Вот так и получается, что не переписывая его - он не пригоден, а переписывая - имеем проблемы с миграцией на более новый пхп. О битрексе достаточно знать, что у 1с нет программистов, но есть маркетологи.
> Perl давно перестал развиваться, PHP сейчас на пике своего развития.Угу, после 17-ти лет существования - php достиг пика своего развития... и сколько пик развиваться еще будет продолжаться?
Почитайте чейнжлоги перловые - сразу поймете, что развитие у перла идет, при этом старое, как-то так, не сильно ломается.
> С этим я спорить не буду, главное что эти люди умеют признавать
> свои ошибки и их исправлять, а вот многие PHP-кодеры этого не
> умеют.Хорошо конечно, что ошибки, в том числе проектировочные, правятся... но мне становится как-то страшно от мысли, что вот такие же люди, могут разрабатывать АЭС, ГЭС, самолеты, ракеты, да черт возьми: дом где я живу и автомобиль на котором я езжу...
Вот врать только не надо - еще как ломается. Достаточно много пишу на перле и обновление cpan модуля (а без них перл бесполезен) которое меняет апи или логику (да или просто глючит) - видел весьма часто. Ну и в самом языке по мелочам тоже много чего меняется что способно нарушить работу программы если это что-то сложнее hello world.
"Всё правильно, язык прогрессирует, и с 5 ветки наметились тенденции к выкидыванию костылей и упорядочиванию синтаксиса."Минуточку, а "Array dereferencing" по вашему не костыль?
Да, они это сделали(крики "Ура" и воздушные шары в небо), но только для массивов. С объектами всё обстоит так же как и раньше
Традиционно для php об обратной совместимости лучше и не спрашивать :))
Разыменование массивов порадовало =)
да уж, и 20 лет не прошло)))
а интересно (new XXX)->a уже можно?... надо будет потестировать.
Будет забавно, если в версии 5.5 откажутся от $ и от старого синтаксиса управляющих структур, а в версии 5.6 придумают новый строковый оператор и заменят дебильный -> на . =)
> да уж, и 20 лет не прошло)))
> а интересно (new XXX)->a уже можно?... надо будет потестировать.
> Будет забавно, если в версии 5.5 откажутся от $ и от старого
> синтаксиса управляющих структур, а в версии 5.6 придумают новый строковый оператор
> и заменят дебильный -> на . =)Прогрес на лице :-)) в пхп наконец то открыт эниэвент ... правда до уровня POE еще пилить и пилить ... будет чем заняться следущие 20 лет :-))
Прочитав новость, сначала подумал, что traits дают гибкость на уровне JS, но, прочитав описание по ссылке, понял, что это нечто среднее между множественным наследованием и интерфейсами а-ля .NET; конкретные _объекты_ не изменяются, только их классы.
[Волнуетсо]
Что там с session_ ? А что теперь вместо них?
Вместо них уже давно $_SESSION
Поздравляю с выходом из анабиоза
> Вместо них уже давно $_SESSION
> Поздравляю с выходом из анабиозаЭто они специально чтоб программеры обновляли в памяти старый код :-))
Всё клёво, только хостеры многие всё на 5.3 не могут перейти. Даже на новые серваки ставят 5.2. Обратная совместимость, конечно должна быть. Но в пхп это всё мелочи по сравнению со многими другими языками :)
Мы лучше 5.3 поставим отдельно, кто захочет - включит в панели управления хостингом для своего аккаунта PHP 5.3
А если разом накатить 5.3 на боевые сервера с сотнями клиентов на борту - службу ТПХ порвут в клочья :)
> Мы лучше 5.3 поставим отдельно, кто захочет - включит в панели управления
> хостингом для своего аккаунта PHP 5.3
> А если разом накатить 5.3 на боевые сервера с сотнями клиентов на
> борту - службу ТПХ порвут в клочья :)да, действительно, ведь сидеть с дырявым 5.2 лучше...
>> Мы лучше 5.3 поставим отдельно, кто захочет - включит в панели управления
>> хостингом для своего аккаунта PHP 5.3
>> А если разом накатить 5.3 на боевые сервера с сотнями клиентов на
>> борту - службу ТПХ порвут в клочья :)
> да, действительно, ведь сидеть с дырявым 5.2 лучше...Дыры в студию :-))
В данный момент ветка 5.2 помечена как не поддерживаемая (http://php.net/downloads.php).Посмотрите на выпуск 5.3.6 (http://www.php.net/archive/2011.php#id2011-03-17-1), и убедитесь в том что есть улучшения и исправления безопасности.
> Мы лучше 5.3 поставим отдельно, кто захочет - включит в панели управления
> хостингом для своего аккаунта PHP 5.3
> А если разом накатить 5.3 на боевые сервера с сотнями клиентов на
> борту - службу ТПХ порвут в клочья :)PHP 5.2.15 (cli)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
with the ionCube PHP Loader v3.3.10, Copyright (c) 2002-2009, by ionCube Ltd., and
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend TechnologiesЧем плох ?
Не плох, очень даже хорошо :)
Но что делать с клиентосами, у которых неожиданно перестает работать php-gd (в принципе поправимо), какой-нибудь pecl-* (тоже не смертельно), или накрывается сайт, построенный на каком-нибудь движке - построенный на codeigniter-ском фреймворке?
Вот и вынуждены мы поддерживать какую-то статичность в используемых версиях ПО.
Тоже самое было после выхода 5-й ветки PHP - очень немногие хостеры ставили пятерку даже на новые сервера. А в итоге - найдите хоть одного хостера с PHP4 :)
Это на 99% из-за safe_mode
> Это на 99% из-за safe_modeопен_базедир.
скорее из-за лени и латентности...
Ура-ура! Осталось только юникод осилить :-)> Прекращение поддержки синтаксиса "break/continue $var"
Чем обусловлено данное решение? Иногда полезна.
> Чем обусловлено данное решение? Иногда полезна.Партия решила, что это не те роботы, которые. Теперь бесполезна, ты просто не заметил!
Зато я теперь понимаю, зачем ввели GOTO в 5.3 :-)
> Зато я теперь понимаю, зачем ввели GOTO в 5.3 :-)90% программеров php в принципе неспособны освоить казуальное (событийное) программирование ... максимум на что их хватает это обзывать его процедурным, что не совсем верно кстати.
Программистов от не программистов отличает не способность написать что то с использованием оператора GOTO, а способность отладить написанное ... :-))
А вы почитайте обсуждение: http://marc.info/?t=129009285600010&r=1&w=2
Фишка в том, что это никогда ни работало.break 5; - работает и продолжит работать
$var = 5; break $var; - работало как break 1;Столько лет не работало, вот и решили это узаконить :)
А, именно с переменной, никогда сам не пробовал.
Спасибо за объяснение :-)
я так понимаю traits это типа рубиновых модулей... или я что-то пропустил? :))
Лучше бы сделали как нибудь так чтобы не было больше зенд оптимайзера. Вот это была бы польза!
> Лучше бы сделали как нибудь так чтобы не было больше зенд оптимайзера.
> Вот это была бы польза!так сами же разработчики пхп с этого профит и ловят...
> Лучше бы сделали как нибудь так чтобы не было больше зенд оптимайзера.
> Вот это была бы польза!Да не используйте. есть же бесплатный и кошерный апц.
Насколько я знаю, Zend Optimizer нужен не только для ускорения работы скриптов, но и для их расшифровки.
протестировала на своем "полупродакшене" 5.4.0a1 SAPI: php-fpm
из акселераторов корректно собрался и работает APC 3.1.7, xcache и EAccelerator пока не готовы.Корректно и без предупреждений в лог работают Drupal 6.x, Ilohamail, Afterlogic Mailbee (Lite), Вордпресс 3.1.х выдает вот такое предупреждение:
PHP Warning: Creating default object from empty value in wp-includes/user.php on line 657
if ( !is_multisite() ) { $blog_id = get_current_blog_id();
$blogs = array();
$blogs[ $blog_id ]->userblog_id = $blog_id;
а также ругается на пару плагинов, которые впрочем работают корректно
глобалсы ещё после 3ки обещали убрать, это понятно.
а вот отмена сейфмод - это печально. с ним как то было спокойнее.
safe_mode добавлял тормозов при работе с большим количеством include() из-за вызова lstat() на каждый компонент пути + не действовал для вызываемых из пхп программ. Это вообще костыль, каких мало, и очень хорошо, что его убирают. Надёжней использовать решения типа FreeBSD jails или чего-нибудь в линуксе.
PHP без SAFE_MODE? Все на виртуалки или в chroot? PHP 5.4 - хостинг подорожает или будет дырявым? Конец shared-хостинга на PHP?
> PHP без SAFE_MODE? Все на виртуалки или в chroot? PHP 5.4 -
> хостинг подорожает или будет дырявым? Конец shared-хостинга на PHP?См. мой ответ в 56.
Не понимаю как можно сравнивать производительность и безопасность. Мотоцикл быстрее и маневренней автобуса, но в качестве общественного транспорта его использовать нельзя. Стоимость VPS, обеспечивающего необходимый уровень безопасности в отсутствии SAFE_MODE, существенно выше чем у shared-хостинга где PHP-работает в SAFE_MODE. Можно цшрутить PHP, но это по большому счету извращение.
> PHP без SAFE_MODE? Все на виртуалки или в chroot? PHP 5.4 -
> хостинг подорожает или будет дырявым? Конец shared-хостинга на PHP?Safe Mode давно уже пишется в требованиях многих приложений как несовместимый режим,
php-fpm с разными пулами для разных пользователей - неплохое решение, к тому же его можно легко и в chroot посадить, хотя для хостеров "общаг" оно конечно не очень, пусть ставят suphp, mpm-itk, а делать "песочницу" из safe mode и расчитывать на безопасность... ну как бы это уже в прошлом
> php-fpm с разными пулами для разных пользователей - неплохое решение, к тому
> же его можно легко и в chroot посадить,кстати, да