PHP 6 на подходе

Вы уже, наверное, в курсе, что группа разработчиков ядра PHP 6 встречалась в ноябре 2005 года в Париже. Это была захватывающая встреча, на которой разработчики обсудили развитие PHP со своей точки зрения. Прежде чем я начну свой рассказ о принятых решениях, вынужден предупредить – все что здесь перечислено, это не «100% решенные вопросы» и в окончательном релизе 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-тэги

Поделиться в соц. сетях

mailru PHP 6 на подходе
facebook PHP 6 на подходе
odnoklassniki PHP 6 на подходе
livejournal PHP 6 на подходе
googlebuzz PHP 6 на подходе

Также рекомендуем:

  1. Перекрывание селектов в IE6 Даже через абсолютно спозиционированные ДИВ-ы с максимальным zIndex-ом в ИЕ6 «проглядывают» селекты. Задача: подобрать HTML/CSS-способы перекрывания селектов.. Реализация селектов в браузере Internet Explorer 6 такова, что перекрыть их обычными блочными элементами (ДИВ-ы, таблицы) даже при максимальном zIndex-е у последних не получится. Выглядит этот эффект вот так (у ДИВа z-index:10000): Экспериментальным путем было выявлено, что единственный [...]...
  2. Текст из воды Step 1Создайте документ и напишите любой текст. Растеризуйте слой.. Используя кисть, добавьте несколько капель и подтеков к тексту. Объедините оба слоя Layer > Flatten Image. Step 2Идем в палитру каналов и создаем маску канала путем перетаскивания любого слоя Red, Green или Blue на иконку New Channel внизу палитры каналов. Называем его water. Далее инвертируем канал [...]...
  3. Реалистичный огонь Создайте новое изображение 200×200 пикселей. Заполните его белым цветом. Примените Filter > Render > Difference clouds два-три раза. Затем подгоните контрастность изображения примерно так как на нижерасположенном рисунке.. Теперь примените Filter > Render > Lighting effects с такимим параметрами: Применим фильтр Filter > Brush strokes> Accented edges с параметрами: Получившийся слой можно накладывать на ваши [...]...
  4. Ловушка для спам-бота Многие спам-боты, чтобы скрыть свои реальные имена (названия), которые легко отследить по записи user_agent, изменяют эту запись, меняя её на записи разных браузеров (например: «mozilla/4.0 (compatible; msie 5.5; windows nt 5.0)» и так далее). Также эти боты игнорируют стандарты записей для файла robots.txt (описание стандарта Вы можете прочесть здесь http://www.robotstxt.org/wc/exclusion.html robots.txt standard).. Можно, конечно, пойти [...]...
  5. Преимущества локальной оптимизации Займитесь локальной оптимизацией. Зачастую оптимизации локального поиска не уделяется достаточно внимания, а между тем это отличный способ привлечения на ваш сайт местного трафика. Включив локальную информации в свои тэги и страницы, вы можете потенциальным клиентам найти специальную информацию по району и сфере деятельности, какие их интересует.. Что такое оптимизация локального поиска? Оптимизация локального поиска – [...]...
  6. PHP и формы Ни для кого не является секретом, что наиболее распространенным способом взаимодействия html-страницы с сайтом является форма. Форма (то есть html-элемент образуемый тегом form) используется и бесплатными почтовыми службами, электронными магазинами и многими другими типами сайтов.. Обработка простых форм посредством PHP не представляет никакого труда. Однако время от времени возникает потребность обработать форму, содержащую несколько однотипных [...]...
  7. Правила хорошего поведения при обмене ссылками Обмен ссылками – один из самых распространенных способов привлечения посетителей на новый сайт.. Некоторые менеджеры сайта, самостоятельно занимающиеся раскруткой и продвижением сайтов, игнорируют данный способ раскрутки, мотивируя это тем, что подобный вид продвижения не принесет на сайт большое количество посетителей, и затраты времени на обмен ссылками с сайтами не принесут ожидаемой качественной и количественной отдачи, [...]...
  8. Несколько советов по созданию эффективного сайта! Для чего нужен вам сайт и его основные задачи. . Вы сначала должны определиться, для чего нужен вам сайт и на какую тематику он будет.Образно говоря сайты делятся на некоторые категории, к примеру – не коммерческие сайты и коммерческие. Не коммерческий сайт. Такой сайт может быть посвящен чему угодно. Вашему хобби или же он будет [...]...
  9. Как создать 1000 статей за полчаса 1. Качайте SEO Generator2. Пройдите режим обучения программы 3. Работаете со статьей также как с длиным описанием4. Генерируете статью в файлыПодсказка: используйте для отладки фишку: если строка начинаеться с символа #, то эта строка и последующие не будут генериться.Не переусердствуйте с синтаксисом не мучайте программу и свой мозг.Качаете SEO Generator http://www.altalabs.ru/files/SEOGENDEMO.rar. Так-же будет полезна прога [...]...
  10. GlassBox Описание Недавно обнаружили весьма интересную javascript библиотеку Glassbox.С ее помощью можно создавать прозрачные рамки, цветные полупрозрачные слои и различные визуальные эффекты, такие как плавное появление и исчезновение слоев.. Эта библиотека весьма компактна и включает в себя библиотеки Prototype и Script.aculo.us. К основным плюсам библиотеки можно отнести: * Легкость использования; * Кроссбраузерность (Работает в IE6+ , [...]...
  11. Переплетающиеся кольца Не так давно один из посетителей сайта спросил меня, как создать переплетающиеся кольца наподобие эмблемы Олимпийских Игр. Его просьба была реализована в Corel DRAW8, однако я не мог остановиться на достигнутом, поэтому здесь я познакомлю вас с вариантом того же урока для Corel DRAW9. Различие между уроками в том, что здесь были использованы Artistic Media [...]...
  12. Трехмерные здания 1. Инструментом Rectangle Tool (F6) нарисуйте три прямоугольника. Для удобства работы с ними залейте каждый разным оттенком.. 2. Сгруппируйте объекты (выделите их и нажмите ctrl+G). Примените перспективу: Effects > Add Perspective. 3. Чтобы сделать здания разной высоты, разгруппируйте объекты и передвиньте прямоугольники вверх или вниз в зависимости от того, ниже или выше здание вы хотите [...]...
  13. Уязвимость в капче Made-Cat Откроем страницу регистрации в каталоге. Просмотрим ее код и обнаружим что-то вроде:. img src=»http://made-cat.com/md/image.php?ct=11010121101102110100211010021100102 Это значит, что код на картинке 56442. 11010121101102110100211010021100102 Удалин двойки первые две единицы, и 2 единицы после каждой двойки. Получим: 0101 0110 0100 0100 0010Это если перевести из двоичной системы в десятичную получим 0101 = 0* 2^3 + 1 * 2^2 [...]...
  14. Обнаружение фальшивого PR при покупке ссылок Скупой платит дважды При покупке ссылок, а так же при обмене, любой SEO специалист, особенно человек, совсем недавно занявшийся SEO, должен быть по крайне мере достаточно осторожным. Используя совершенно простые советы в этой статье, Вы сможете избежать ошибок, которые против Вас могут использовать не совсем порядочные SEO мастера. . И так покупка или обмен ссылками [...]...
  15. Ruby on Rails: Making Programmers Happy David Heinemeier Hansson, the creator of the increasingly popular Ruby on Rails Web application framework, answered a few questions about his creation earlier this week for eWEEK Senior Editor Darryl K. Taft.. What’s the allure of Ruby on Rails? Why do folks love it so? The author of Ruby, Yukihiro Matsumoto, tells us that he [...]...

Комментарии запрещены.