1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Готовьтесь к PHP 6 или будущее PHP

Тема в разделе "Web Coding", создана пользователем roddik, 26 авг 2007.

Статус темы:
Закрыта.
Модераторы: latteo
  1. roddik

    roddik Колбаска

    Регистр.:
    26 янв 2007
    Сообщения:
    351
    Симпатии:
    289
    Вы уже, наверное, в курсе, что группа разработчиков ядра PHP 6 встречалась в ноябре 2005 года в Париже. Это была захватывающая встреча, на которой разработчики обсудили развитие PHP со своей точки зрения. Прежде чем я начну свой рассказ о принятых решениях, вынужден предупредить – все что здесь перечислено, это не «100% решенные вопросы» и в окончательном релизе PHP 6 дела могут обстоять иначе. Конечно же, все эти моменты будут обсуждаться подробнее, но уже сейчас можно говорить о перспективах.

    Окончательные релизы PHP 6 появятся не скоро, но профессиональные разработчики должны знать к чему готовиться...

    Юникод

    Поддержка юникода в настоящий момент может быть установлена только на уровне «per request», т.е. для каждого запрашиваемого файла. Это означает, что PHP придется сохранять варианты классов, имен методов и функций одновременно в таблице символов Unicode и в non-Unicode, что, конечно же, увеличивает количество потре***емых ресурсов. Разработчики решили сделать настройку юникода на уровне всего сервера, а не запроса. Отключение поддержки юникода, если таковая не требуется, может увеличить производительность строковых функций до 300% и приложений в целом до 25%. Вынос настроек в php.ini позволит снять заботу о юникоде с разработчика и переложить ее на администраторов хоста.

    Если вы самостоятельно собираете PHP и несете всю ответственность за ваши серверы, то вам будет полезно знать, что для PHP 6 потребуются библиотеки ICU (в зависимости от того, будет ли нужен Unicode или нет).

    Register Globals уйдут в прошлое

    Попрощайтесь с этой настройкой, она будет окончательно убрана. Такой настройки больше не будет в php.ini и если вы ее внесете, то получите ошибку уровня E_CORE_ERROR. Это означает, что PHP 6 наконец-то завершит эру скриптов PHP 3. Это серьезный, но очень нужный шаг.

    Magic Quotes будут исключены

    Опция magic quotes будет так же исключена из PHP и при попытке включения такой настройки, «выскочит» ошибка E_CORE_ERROR. Это повлияет на magic_quotes, magic_quotes_sybase и magic_quotes_gpc.

    Больше не будет Safe Mode

    Это понравится тем, кто хостится на серверах с обязательным включением Safe Mode. Теперь, включение опции будет вызывать ошибку E_CORE_ERROR. Причиной для этого становится механизм посыла «сигнала опасности», который делает PHP более безопасным. Сохранится лишь open_basedir.

    'var' будет полным алиасом 'public'

    Var используется в классах PHP 4. В объектном подходе PHP 5, употребление var вызывает ошибку уровня E_STRICT. В PHP 6 предупреждение об ошибке будет устранено и var станет полным синонимом public. Это вполне нормальное решение, однако, те, кто «подогнал» свои скрипты под PHP 5, сделали в этом плане лишнюю работу.

    Возврат по ссылке вызовет ошибку

    И '$foo =& new StdClass()' и 'function &foo' теперь вызовут ошибку уровня E_STRICT.

    Будет убрана совместимость с zend.ze1

    Ze1 всегда пытался поддерживать старое поведение PHP 4, но не всегда «работал на 100%», поэтому в шестой версии PHP он будет полностью исключен.

    Поддержка Freetype 1 и GD 1 будет убрана

    Поддержка обоих (очень-очень старых) библиотек будет убрана.

    dl() останется только в SAPI

    Каждую функцию SAPI нужно будет регистрировать отдельно и только CLI и embed SAPI будут работать с этого момента. В других вариантах dl() работать не будет.

    FastCGI всегда включена

    FastCGI код будет «вылизан» и станет включенным по-умолчанию для CGI SAPI. При этом, поддержку FastCGI будет невозможно отключить.

    Старые названия глобальных массивов будут удалены

    Помните старые массивы HTTP_*_VARS? Если вы еще не начали использовать $_GET и $POST, то начните делать это прямо сейчас, потому что в PHP 6 эти массивы будут вызывать E_CORE_ERROR.

    Перемещения расширений

    Расширения XMLReader и XMLWriter войдут в дистрибутив и станут доступны по умолчанию. Расширение ereg для работы с регулярными выражениями переедет в PECL (т.е. будет удалено из PHP). Это означает, что PCRE будет по умолчанию недоступно и выключено. Такой шаг делается для включения нового расширения для работы с регулярными выражениями, основанными на ICU. Чрезвычайно полезное расширение Fileinfo будет включено в дистрибутив и доступно по умолчанию.

    Дополнения к движку PHP

    64 битный целочисленный тип данных

    В движок будет добавлен новый тип данных -int64. Он будет использоваться поумолчанию для integer.

    Goto

    Никаких команд goto не будет добавлено. Однако, команда break расширится статической меткой, поэтому будет возможно написать break foo и это перекинет на метку foo: в вашем коде.

    ifsetor()

    Похоже, что мы не увидим эту функцию, что обидно. В операторе ?: можно будет опускать один параметр, что позволит писать так: "$foo = $_GET['foo'] ?: 42;" (т.е. если foo является истиной, то $foo будет равно 42). Это сэкономит немного кода, однако будет не так читаемо, как при использовании ifsetor().

    foreach для многоуровневых массивов

    Это отличное новшество – вы сможете проходить с помощью foreach по нескольким уровням массива, к примеру "foreach( $a as $k => list($a, $b))".

    {} против []

    Сейчас вы можете использовать и {} и [] для обращения к строковым индексам. Однако, запись {} уже сейчас вызовет E_STRICT в PHP 5.1 и будет полностью устранена в PHP 6. К тому же, [] частично заменят substr и array_slice и вы сможете использовать "[2,]" для получения символов от второго и до конца строки. Очень удобно.

    Изменения в объектном стиле

    Связка static

    Будет добавлено новое ключевое слово для доступа к последующей связке – static::static2(), что позволит управлять static во время выполнения.

    Пространства имен

    Этот момент остается нерешенным и по сей день. Мой совет – не задерживайте дыхание.

    Типизированные значения при возврате из функций

    Разработчики высказались против типизации, потому как это «не в стиле PHP». Однако такая возможномть будет добавлена, но не решен вопрос ее синтаксиса. В любом случае, это будет полезная возможность.

    Вызов динамческих функций как статических приведет к E_FATAL

    Сейчас вы можете вызывать статические и динамические методы не обращая внимание на то, статические они или динамические. Вызов динамической функции как статической, вызовет E_FATAL.

    Добавления в PHP

    APC войдет в ядро

    Работа APC с байткодом будет включена в основную поставку PHP в качестве стандарта, но, вероятно, не будет активизирована по-умолчанию, но результаты ее работы будут стимулировать хостеров включать эту опцию.

    Hardened PHP патч

    Этот патч выполняет большое количество дополнительных проверок на безопасность. Разработчики тщательно изучают этот патч и некоторые элементы найдут свое место в PHP: защита от разделения HTTP-запроса, allow_url_fopen будет разделена на две: allow_url_fopen и allow_url_include. Первая опция будет по-умолчанию включена, а вторая – отключена.

    E_STRICT войдет в E_ALL

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

    Прощайте asp-тэги <%

    Будет удалена поддержка ASP-тэгов, но останутся короткие PHP-тэги <? ?>.

    Заключение

    PHP 6 движется в интересном направлении – разработчики PHP начали направлять программистов на правильный путь, вместо того чтобы упреждать «так делать не надо, потому что это устарело». Категоричное искоренение таких моментов как register globals, magic quotes, long arrays, {} string indexes и call-time-pass-by-references наконец-то заставит программистов «вычистить» свой код. Плохо ли это? Я так не думаю, но все это сделает переход на PHP 6 еще более медленным, чем мы наблюдаем с PHP 5 (который итак происходит ужасно!).

    Официальная информация: http://www.php.net/~derick/meeting-notes.html
    Оригинал статьи: http://www.corephp.co.uk/archives/19-Prepare-for-PHP-6.html
    Автор: Richard Davey
    Перевод: Андрей Олищук
    Источник: http://phpclub.ru
     
    Zedus, bueno, faker666 и 5 другим нравится это.
  2. Evil1

    Evil1 Писатель

    Регистр.:
    28 июн 2007
    Сообщения:
    31
    Симпатии:
    1
    'var' будет полным алиасом 'public'

    Var используется в классах PHP 4. В объектном подходе PHP 5, употребление var вызывает ошибку уровня E_STRICT. В PHP 6 предупреждение об ошибке будет устранено и var станет полным синонимом public. Это вполне нормальное решение, однако, те, кто «подогнал» свои скрипты под PHP 5, сделали в этом плане лишнюю работу.


    чото я не понял, я всегда в 5 пхп юзал var и нету там никаких ошибок
     
  3. GNG

    GNG Создатель

    Регистр.:
    12 авг 2007
    Сообщения:
    44
    Симпатии:
    3
    А что с поддержкой XSLT 2.0? ктонибудь в курсе? Много всяких мнений слышал...Ничего конкретного..
     
  4. Ivan Zhukov

    Ivan Zhukov Создатель

    Регистр.:
    29 июн 2007
    Сообщения:
    18
    Симпатии:
    3
    А я где-то слышал что скрипты будут компилироваться и кешироваться в стандартном наборе без всяких дополнений.
     
  5. porrrtogalec

    porrrtogalec Постоялец

    Регистр.:
    10 ноя 2006
    Сообщения:
    75
    Симпатии:
    48
    ПХП 6 конечно хорошо, но как всегда большая куча хостеров будет боятся его ставить, многие досих пор пхп4 ставят, ссат ставить пятерку, а уж про шестерку...
     
  6. tempik

    tempik Создатель

    Регистр.:
    29 май 2007
    Сообщения:
    12
    Симпатии:
    2
    эт точно, но уже со всем скоро 4ке скажем пока)
     
  7. grey109

    grey109

    Регистр.:
    3 апр 2007
    Сообщения:
    176
    Симпатии:
    19
    Все равно пока не выйдет версия 6.1, ей пользоваться нельзя будет из-за обилия багов. Так что не спешите переходить на 6.0
     
  8. Nemesis

    Nemesis Прохожие

    Хорошо, что поуберают поддержку Регистр глобалс и т.п. потенциальных дыр. Хоят тема, конечно баян, писали про это уже давно.
     
  9. ost

    ost Создатель

    Регистр.:
    16 июн 2007
    Сообщения:
    13
    Симпатии:
    2
    вышло обновление php-5.2.4
     
  10. Paprikas

    Paprikas Создатель

    Регистр.:
    20 май 2006
    Сообщения:
    42
    Симпатии:
    2
    Ориентировочной даты выхода никто не знает?
     
Статус темы:
Закрыта.