Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> PHP 6 
:(
    Опции темы
Mal Hack
Дата 3.1.2007, 18:40 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Не увидел я темы для обсуждения сабжа, тем не менее, считаю нужным, привести тут статью из phpinside...
К чему надо готовиться... ИМХО, если, то, что написано будет сделано, это будет существенный плюс языку. Это многих начит программировать сразу.. Много упущений и вольностей канут в лету...

Статья "Готовьтесь к PHP 6 " (опубликована в PHPInside - http://phpinside.ru)

Автор: Richard Davey 
Перевод: Андрей Олищук 

Дополнительные ссылки:
http://www.php.net/%7Ederick/meeting-notes.html

Цитата
Окончательные релизы 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-тэги <% 

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

Заключение 

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

PM ICQ   Вверх
Vaulter
Дата 3.1.2007, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



почему же ужасно???
Цитата

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


то есть начинать писАть $foo = $_GET['foo']?null:42; где это надо???? smile
и я не понял, регулярки будут по дефолту офф или он??? smile


--------------------
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 3.1.2007, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(Vaulter @  3.1.2007,  19:06 Найти цитируемый пост)
и я не понял, регулярки будут по дефолту офф или он??? smile 

Цитата
Issue: Currently we have two extensions dealing with regular expressions, and soon there will be a third one based on ICU.

Discussion: Currently we see some problems with the bundled ereg library in some places due to people specifying --with-regex=system. We also see distributions linking against another library than our bundled one to prevent conflicts with the apache bundled regex library, or the system's one. As most people seem to prefer linking against something else than our bundled version, it seems proper to remove this bundled library. If we remove the bundled library, then we need to make the ereg functions into an extension, otherwise we can not enable them in all cases. Some functionality in the core of PHP also uses POSIX regular expressions, those should be rewritten to use PCRE then.

Conclusions:

   1. We make ereg an extension
   2. The PCRE extension will not be allowed to be disabled.
   3. The core of PHP should be made to work with PCRE so that we can safely disable ereg
   4. We unbundle the regex library

Судя по всему, это коснется только ereg.
PM ICQ   Вверх
Спец
Дата 24.1.2007, 18:14 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 79
Регистрация: 2.11.2006

Репутация: нет
Всего: -2



что вы годаете? поживём увидим, php щас хреново работает местами, а с новыми функциями/модулями воб=обще будет глюк а не php они этот глюк назовут логикой и все будут верить!)
PM MAIL   Вверх
BobiKK
Дата 24.1.2007, 18:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 655
Регистрация: 1.12.2005
Где: Essen, Deutschlan d

Репутация: нет
Всего: 16



Обоснуйте, товарищ
PM MAIL   Вверх
gta4kv
Дата 24.1.2007, 18:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



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


Ура ))))) Какая радость (:
PM MAIL   Вверх
Mal Hack
Дата 24.1.2007, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261




 ! 
Mal Hack
Предыдущий "оратор" получил "кирпич" с лишеним прав постинга за мат
Обращаюсь к предыдущему "оратору". Ваше не умение настраивать скрипт, так, чтобы он работал и днем и ночью - это ваша ошибка,  а не "кривость" языка.

PM ICQ   Вверх
smartov
Дата 25.1.2007, 00:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 1
Всего: 259



Цитата(Mal Hack @  3.1.2007,  17:40 Найти цитируемый пост)
Юникод 

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

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

Аллилуйя! Неужели в конце концов!
Жаль namespace-ов не сделают smile
PM MAIL   Вверх
Mal Hack
Дата 25.1.2007, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Я думаю, не все сразу... Хотя, если честно, мне кажется, namespace, будут для PHP лишними. Лучше бы облегчили бы ядро.
PM ICQ   Вверх
BobiKK
Дата 25.1.2007, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 655
Регистрация: 1.12.2005
Где: Essen, Deutschlan d

Репутация: нет
Всего: 16



Абидно, что mutli-threading'а не будет. На 7-ку ещё to-do list'а нету? smile
PM MAIL   Вверх
smartov
Дата 25.1.2007, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 1
Всего: 259



Цитата(BobiKK @  25.1.2007,  00:38 Найти цитируемый пост)
Абидно, что mutli-threading'а не будет.

Чёто мне кажется для скриптового языка эт перебор...
PM MAIL   Вверх
BobiKK
Дата 25.1.2007, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 655
Регистрация: 1.12.2005
Где: Essen, Deutschlan d

Репутация: нет
Всего: 16



И для Python'a и для Ruby тоже перебор?
PM MAIL   Вверх
smartov
Дата 25.1.2007, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 1
Всего: 259



BobiKK, я чёто не подумавши написал. Ночь была... Ты прав.
PM MAIL   Вверх
IZ@TOP
Дата 2.2.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Цитата(smartov @  25.1.2007,  01:01 Найти цитируемый пост)
Жаль namespace-ов не сделают smile 

Я уже было "затаил дыхание".


Ни кто не знает почему Zend Studio 5.2 подсвечивает выражение use? Я что-то не нашел для чего оно используется.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
smartov
Дата 2.2.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 1
Всего: 259



Цитата(IZ@TOP @  2.2.2007,  11:35 Найти цитируемый пост)
Ни кто не знает почему Zend Studio 5.2 подсвечивает выражение use?

Он ещё и as подсвечивает. Как будто это предполагается как конструкция use...as , вот только для чего она - остаётся наясным.
PM MAIL   Вверх
Закрытая темаСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1033 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.