The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Увидел свет релиз интерпретатора языка программирования PHP 5.3

30.06.2009 16:58

После около двух лет разработки выпущен релиз интерпретатора языка программирования PHP 5.3. Наиболее интересные изменения:

  • Значительное увеличение производительности. Например при сравнении одного из снапшотов php 5.3 и последнего стабильного релиза, было замечено увеличение производительности Drupal на 20%, Qdig на 2%, typo3 на 30%, wordpress на 15%, xoops - на 10%.
  • Namespaces - изолированные от остального кода пространства имен для классов, функций и констант.
  • "Late static binding" - привязка к вызываемому классу, вне контекста наследования (возможность получить имя класса, вызванного для выполнения статического метода);
  • Mysqlnd - новый MySQL драйвер, работающий напрямую с MySQL, без использования libmysql.
  • Из состава пакета удален модуль ext/msql, ext/ereg помечен как устаревший, ext/mhash заменен на ext/hash;
  • Реализован метод __callStatic для организации перегрузки статических методов;
  • Поддержка OpenID
  • Изменение техники округления чисел с плавающей точкой;
  • Возможность определения в ini-файле блоков конфигурации с привязкой к директории и имени хоста, для получения функциональности подобной .htaccess;
  • XSLT профайлинг
  • Многоплатформенный getopt()
  • Поддержка Sqlite3 (расширение ext/sqlite3);
  • Опционально включаемый циклический сборщик мусора;
  • Новый синтаксис для определения строковых блоков, ограниченная поддержка GOTO, оператор "?:";
  • Новые расширения: ext/phar, ext/intl, ext/fileinfo, ext/enchant;
  • Поддержка замыканий и лямбда-функций;
  • Возможность ведения подробного лога отправки почты через функцию mail(), что полезно для выявления источника спама в системах хостинга, на которых нередко пытаются рассылать спам через взломанные скрипты пользователей. Кроме ведения лога предусмотрена возможность включения в тело письма заголовка с уточнением из какого именно скрипта и от какого пользователя осуществлена отправка;
  • Более 140 исправлений ошибок.

Список несовместимостей и особенности миграции с прошлых версий PHP описаны в документе "Migrating from PHP 5.2.x to PHP 5.3.x". Например, из комплекта поставки удалены расширения ext/mhash (см. ext/hash), ext/msql, ext/pspell (см. ext/enchant), ext/sybase (см. ext/sybase_ct); перемещены в PECL: ext/ming, ext/fbsql, ext/ncurses, ext/fdf; удалена поддержка режима совместимости zend.ze1; у некоторых функций ужесточились требования к передаваемым параметрам.

  1. Главная ссылка к новости (http://php.net/releases/5_3_0....)
  2. OpenNews: Вышел второй кандидат в релизы PHP 5.3
  3. OpenNews: Релиз PHP 5.3 перенесен с 25 на 30 июня
  4. OpenNews: Вышел кандидат в релизы PHP 5.3
  5. OpenNews: PHP 5.3 перешел в фазу бета тестирования
  6. OpenNews: В PHP 5.3 ожидается значительное увеличение производительности.
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/22392-php
Ключевые слова: php
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (35) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 19:00, 30/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    релиз релизом, но нужно ещё ждать пока это счастье попадёт в продакшн дистрибутивы (Debian Stable, RHEL(centOS), SLES)
     
  • 1.2, Андрей К. (?), 19:12, 30/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Компилить самому.
     
     
  • 2.5, dev (??), 20:15, 30/06/2009 [^] [^^] [^^^] [ответить]  
  • –2 +/
    тестировать, нести ответственность , поддерживать тоже самому?
     
     
  • 3.33, pavlinux (ok), 20:38, 02/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >тестировать, нести ответственность , поддерживать тоже самому?

    Епть, зато халява! :)

     

  • 1.4, croster (ok), 19:56, 30/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >ограниченная поддержка GOTO

    Зачем это нужно? Наоборот, GOTO необходимо выкидывать изо всех нормальных высокоуровневых языков.

     
     
  • 2.16, дядька (?), 02:11, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    А те языки где этот оператор поддерживается как же тогда должны называться? %)
     
  • 2.31, anonymous (??), 20:26, 02/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Зачем это нужно? Наоборот, GOTO необходимо выкидывать изо всех нормальных высокоуровневых языков.
    >

    зачем? тебя ним в детстве пугали, что ли? или ты однажды прочитал, что «goto — плохо», вспомнил, какой ужас писал на гв-васике и решил, что заместо выпрямления рук надо ампутировать ногу?

     
     
  • 3.34, pavlinux (ok), 20:40, 02/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>Зачем это нужно? Наоборот, GOTO необходимо выкидывать изо всех нормальных высокоуровневых языков.
    >>
    >
    >зачем? тебя ним в детстве пугали, что ли? или ты однажды прочитал,
    >что «goto — плохо», вспомнил, какой ужас писал на гв-васике и
    >решил, что заместо выпрямления рук надо ампутировать ногу?

    Не, это одни из первых слов, которые говорят на первых уроках информатики, не на IT кафедрах :)

     
     
  • 4.35, anonymous (??), 20:46, 02/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Не, это одни из первых слов, которые говорят на первых уроках информатики,
    >не на IT кафедрах :)

    к сожалению. увы, заместо пояснить, как надо себя вести, чтобы не подхватить заразу, сразу рубят правду-матку: «будешь заниматься сексом — заразишься СПИДом!» %-)

     

  • 1.6, byteman (?), 22:48, 30/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    FastCGI снесли? Не нашел я --enable-fastcgi .
     
     
  • 2.7, byteman (?), 22:53, 30/06/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >FastCGI снесли? Не нашел я --enable-fastcgi .

    Или теперь он включен по умолчанию и впринципе не может быть отключен?

     
     
  • 3.24, anon (?), 16:26, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Именно.
     

  • 1.8, Gambler (ok), 23:04, 30/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Какая ирония - когда пользователи требовали late static binding'а, их посылали, говоря, что это никому не нужно. Стоило Zend оплошать с ActiveRecord в демонстрации, так сразу сделали.

    В общем-то, большая часть новых фишек языку просто необходима, и была необходима уже давено. Что раздражает - это все большее и большее продвижение в сторону дубово написанных приложений в стиле Java, т.е. с кучей ничего не представляющих собой классов, обязательных методов и так далее. Я имею ввиду как SPL, так и надоедливые варнинги по поводу "неправильных" типов. (О ужас, foreach для null!)

    goto вроде бы ввели для конечных автоматов. Хотя кому и для чего нужны эти автоматы в скриптовом языке - не понимаю. Парсеры писать? Устройствами управлять?

     
     
  • 2.9, croster (ok), 00:07, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >goto вроде бы ввели для конечных автоматов

    GOTO является плохим стилем программирования. И тут не важно, для чего он применяется. А автоматы можно и без goto писать.
    Как например в этой книге:
    http://is.ifmo.ru/books/_book.pdf

     
     
  • 3.10, аноним (?), 00:15, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >GOTO является плохим стилем программирования.

    значит не используйте goto.
    ладно бы поддержка этого оператора делала интерпретатор медленнее или неустойчивее. но ведь всё прекрасно. так из-за чего шум?

     
     
  • 4.12, Gambler (ok), 00:32, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>GOTO является плохим стилем программирования.
    >
    >значит не используйте goto.
    >ладно бы поддержка этого оператора делала интерпретатор медленнее или неустойчивее. но ведь
    >всё прекрасно. так из-за чего шум?

    Отчего шум понятно, и не надо сыпать фразами-клише типа "не нравится - не используй". Шум потому, что вместо поиска нормальной логической структуры программ некоторые программисты начнут писать лапшу, справленную goto. А потом другим людям в этом надо будет разбираться.

     
     
  • 5.14, аноним (?), 00:59, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >не надо сыпать фразами-клише

    простить мой плохо русский. я стараться

    >некоторые программисты начнут писать лапшу, справленную goto

    не беспокойтесь, таких программистов уволят или уже уволили

     
     
  • 6.20, pilat (ok), 12:23, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Чувак, ты никогда не правил код за индусами... В этом аспекте, разрешить в PHP goto -- очень опасная затея..
     
     
  • 7.22, Аноним (-), 14:48, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    не надо сказок про индусов,
    порадался код с Индии и довольно умно написан
     
     
  • 8.25, pilat (ok), 16:57, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Индус индусу рознь, конечно И среди русских девелоперов порой такие кадры встре... текст свёрнут, показать
     
     
  • 9.27, Ivan (??), 11:38, 02/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Ветвления, основанные на гото невозможно отлаживать модифицировать без хорошей б... текст свёрнут, показать
     
  • 6.30, Dan (??), 15:23, 02/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>не беспокойтесь, таких программистов уволят или уже уволили

    это утопия. Никуда их не уволят, потому что "увольняющие" обычно понимают еще меньше этих программистов.

     
  • 5.32, anonymous (??), 20:35, 02/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >не используй". Шум потому, что вместо поиска нормальной логической структуры программ
    >некоторые программисты начнут писать лапшу, справленную goto. А потом другим людям
    >в этом надо будет разбираться.

    ну и при чём средства языка к отсутствию мозга? гвоздь, например, можно в ухо запихать — это значит, что все гвозди должны быть такой ширины, чтобы в ухо не влазили? O_O

     
  • 3.11, Gambler (ok), 00:28, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > GOTO является плохим стилем программирования. И тут не важно, для чего он применяется.

    Вы бы лучше пробовали объяснить, _почму_ он является плохим стилем программирования.

    > А автоматы можно и без goto писать.

    goto напрямую передает суть автомата. Лейбел - сотояние, а goto - переход. Это удобно читать и писать, то есть как раз является хорошим стилем программирования. Я не говорю, что goto - великолепаня идея. Но ввели его скорее всего из-за этого.

    А _можно_ автоматы описывать хоть лямбда-выражениями. Чтобы не скучать. Только кому это нужно?

     
     
  • 4.23, croster (ok), 16:00, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Вы бы лучше пробовали объяснить, _почму_ он является плохим стилем программирования.

    Так это уже давно известно со времен Дейкстры. Почитайте:
    http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/pp/ewd215.html

    >goto напрямую передает суть автомата.
    >Я не говорю, что goto - великолепаня идея. Но ввели его скорее всего из-за этого.

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

     
     
  • 5.26, ИмяЖ (?), 04:12, 02/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    > Так это уже давно известно со времен Дейкстры.

    Кого волнует что 42 года назад думали о программировании?
    Да, goto примитивен. Но в этом его сила - он позволяет делать конкретно то что нужно, а не выдумывать как, например, выйти из стака циклов не используя заклеймённые инквизицией конструкции.

     
     
  • 6.29, Pilat (ok), 13:17, 02/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >> Так это уже давно известно со времен Дейкстры.
    >
    >Кого волнует что 42 года назад думали о программировании?
    >Да, goto примитивен. Но в этом его сила - он позволяет делать
    >конкретно то что нужно, а не выдумывать как, например, выйти из
    >стака циклов не используя заклеймённые инквизицией конструкции.

    В этом его опасность - с помощью goto мы переходим в другое пространство имён мимо объявления переменных. В Фортране пространств имён не было, и проблемы не было. В современных языках контексты видимости переменных очень разные, и проблемы появились.

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

     
  • 5.28, Ivan (??), 11:41, 02/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Причем опасности подвержены не
    >только индусы, но и студенты, абы как пишущие (без понимания) свои
    >студенческие поделки.

    Да, когда в школьные годы учил C++ и туманно представлял себе алгоритм глядя на код, помню иногда вставкой гото решались все проблемы с точки зрения решения задачи (как данные из условия на входе, правильный ответ на выходе), но я таки брал себя в руки и разбирался по-человечески...

     

  • 1.13, terr0rist (ok), 00:53, 01/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Осталось теперь искоренить идиотский механизм warning/notice, отказаться от никому не нужного знака $ перед переменными (если в перле он имел смысл, то в пхп это только лишняя трата времени на набор этого символа), сделать объект и array взиамозаменяемыми в написании ( a->x == a['x'] ), выкинуть провальную концепцию глобал переменных и ... получится javascript? хм... давно бы надо было (и было бы проще и эффективнее) взять и доделать javascript в полноценный скриптовый инструмент, а не изобретать велосипед с пирамидальными колёсами и рихтовать их в течение 15 лет.
     
  • 1.15, SkyRanger (ok), 01:52, 01/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Символ имеет смысл так как точно позволяет отделять переменную от функции и тем самым позволяет юзать что то типа:

    "Результат=$result чегото" вместо "Результат"+$result+" чегото"


     
     
  • 2.17, дядька (?), 02:20, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >"Результат=$result чегото" вместо "Результат"+$result+" чегото"

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

     
     
  • 3.19, . (?), 10:46, 01/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Как правило программа по большей части состоит из написания имен переменных и
    >функций, чем из выводов их значений в какой либо поток

    только не язык-шаблонник

     

  • 1.18, Аноним (-), 09:52, 01/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что-то в ебилдах из сорцов только 3.0.11 последний  :(
     
  • 1.21, Pilat (ok), 13:19, 01/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    PHP давно представляет из себя мешанину заимствований из других языков, так что новые фичи ни хуже, ни лучше ему уже не сделают.
     
  • 1.36, Аноним (-), 21:26, 09/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чем плох для выхода из N циклов
    break N;
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру