PHP

индекс
206,76

Релиз PHP 5.3.3

Команда разработчиков PHP анонсировала PHP 5.3.3. Этот релиз сфокусирован на улучшении стабильности и безопасности ветки PHP 5.3.x, в нем исправлено более 100 ошибок, некоторые из которых относятся к безопасности. Всем пользователям рекомендуется обновиться до этого релиза.

Обратно несовместимые изменения:


Методы с таким же именем как и последний элемент класса в пространстве имен не будет больше восприниматься как конструктор. Это изменение не затронет классы вне пространства имен.
Copy Source | Copy HTML
  1. <?php
  2. namespace Foo;
  3. class Bar {
  4.     public function Bar() {
  5.         // treated as constructor in PHP 5.3.0-5.3.2
  6.         // treated as regular method in PHP 5.3.3
  7.     }
  8. }
  9. ?>

Здесь нет ударения на переход с PHP 5.2 так как пространства имен были представлены только в PHP 5.3.

Улучшения безопасности и исправления в PHP 5.3.3:


Переписана функция var_export() с использованием smart_str в обход output buffering, для предотвращения раскрытия данных при возникновении фатальной ошибки. (CVE-2010-2531).
Исправлена возможные проблемы уничтожения ресурса в shm_put_var().
Исправлена возможная утечка информации из-за вмешательства оператора XOR.
Исправлена возможность повреждения памяти из-за не ожидаемой передачи аргумента по ссылке в момент вызова и последующие затирания памяти через функции обратного вызова.
Исправлена возможность повреждения памяти в методе ArrayObject::uasort().
Исправлена возможность повреждения памяти в функции parse_str().
Исправлена возможность повреждения памяти в функции pack().
Исправлена возможность повреждения памяти в функции substr_replace().
Исправлена возможность повреждения памяти в функции addcslashes().
Исправлена возможность переполнения стека внутри функции fnmatch().
Исправлена возможность переполнения буфера dechunking filter.
Исправлена возможность произвольного доступа к памяти внутри расширения sqlite.
Исправлен формат валидации строк внутри расширения phar.
Исправлена обработка сериализации сессионных переменных с определенными префиксными символами.
Исправлено удаление ссылки на нулевой указатель при обработке невалидных запросов XML-RPC.
Исправлены проблемы десериализации класса SplObjectStorage.
Исправлены возможные переполнения буфера в mysqlnd_list_fields, mysqlnd_change_user.
Исправлены возможные переполнения буфера при обработки пакетов с ошибками в mysqlnd.

Ключевые улучшения в PHP 5.3.3 включают в себя:


Обновлен входящий в установочный пакет sqlite, до версии 3.6.23.1
Обновлен входящий в установочный пакет PCRE, до версии 8.02
Менеджер процессов FastCGI (FPM) добавлен в SAPI.
Добавлены фильтры потоков расширения mcrypt (портированы из mcrypt_filter).
Добавлен фильтр full_special_chars в расширение ext/filter.
Исправлено возможность ошибки из-за рекурсивной активации сборщика мусора.
Исправлена ошибка №52238 (Падение при выкидывании исключения во время работы функции iterator_to_array).
Исправлена ошибка №52041 (Утечка памяти при записи в не инициализированную при возврате из функции).
Исправлена ошибка №52060 (Утечка памяти при передаче замыкания в функцию method_exists()).
Исправлена ошибка №52001 (Ошибка выделения памяти после использования переменных переменных).
Исправлена ошибка №51723 (Заголовок Content-length ограничен 32-битным целым в Apache2 на платформе Windows).
Исправлена ошибка №48930 (__COMPILER_HALT_OFFSET__ не корректно работает в PHP >= 5.3).

Полный changelog:


— Обновлен входящий в установочный пакет sqlite, до версии 3.6.23.1
— Обновлен входящий в установочный пакет PCRE, до версии 8.02

— Добавлена опция JSON_NUMERIC_CHECK в функции json_encode(), которая переводит числа в виде строки в целые числа.
— Добавлена функция stream_set_read_buffer, позволяющая установить буфер для операций чтения из потока.
— Добавлены фильтры потоков расширения mcrypt (портированы из mcrypt_filter).
— Добавлен фильтр full_special_chars в расширение ext/filter.
— Добавлена опция числа непереданных пакетов в контексте сокета для функции stream_socket_server().
— Добавлен пятый параметр в функции openssl_encrypt()/openssl_decrypt()
(string $iv) для использования ненулевого вектора инициализации.
При неявном использовании нулевого вектора инициализации высылается warning.
— Добавлена функция openssl_cipher_iv_length().
— Менеджер процессов FastCGI (FPM) добавлен в SAPI.
— Добавлены распространенные версии Windows в функцию php_uname и исправлена поддержка неизвестных версий windows.
— Добавлена поддержка Berkeley DB 5 в расширение DBA.
— Добавлена поддержка копирования в/из массива/файла для расширения pdo_pgsql.
— В PDO добавлен метод inTransaction(), со специальной поддержкой Postgres.

— Изменены классы в пространствах имен, так что теперь конструктор может быть задан только через __construct.
— Сброс ошибочного состояния в PDO::beginTransaction().

— Реализовано FR#51295 (не существующий SQLite3::busyTimeout)
— Реализовано FR#35638 (добавлена Adding дата в результаты функции imap_fetch_overview).
— Переписана функция var_export() с использованием smart_str в обход output buffering, для предотвращения раскрытия данных при возникновении фатальной ошибки. (CVE-2010-2531).
— Исправлены возможные переполнения буфера в mysqlnd_list_fields, mysqlnd_change_user.
— Исправлены возможные переполнения буфера при обработки пакетов с ошибками в mysqlnd.
— Исправлена очень редкая утечка памяти в mysqlnd, при прикреплении тысяч столбцов.
— Исправлена ошибка при вызове несуществующего метод класса, который наследует от PDOStatement и экземпляр которого создан напрямую, в обход создания методами PDO.

— Исправлена утечка памяти по ошибке в mcrypt_create_iv на платформе Windows.
— Исправлено возможность ошибки из-за рекурсивной активации сборщика мусора.
— Исправлена возможные проблемы уничтожения ресурса в shm_put_var().
— Исправлена возможная утечка информации из-за вмешательства оператора XOR.
— Исправлена возможность повреждения памяти из-за не ожидаемой передачи аргумента по ссылке в момент вызова и последующие затирания памяти через функции обратного вызова.
— Исправлена возможность повреждения памяти в методе ArrayObject::uasort().
— Исправлена возможность повреждения памяти в функции parse_str().
— Исправлена возможность повреждения памяти в функции pack().
— Исправлена возможность повреждения памяти в функции substr_replace().
— Исправлена возможность повреждения памяти в функции addcslashes().
— Исправлена возможность переполнения стека внутри функции fnmatch().
— Исправлена возможность переполнения буфера dechunking filter.
— Исправлена возможность произвольного доступа к памяти внутри расширения sqlite.
— Исправлен формат валидации строк внутри расширения phar.
— Исправлена обработка сериализации сессионных переменных с определенными префиксными символами.
— Исправлено удаление ссылки на нулевой указатель при обработке невалидных запросов XML-RPC.
— Исправлено переполнение 64-битного целого в функции mhash_keygen_s2k().
— Исправлены проблемы десериализации класса SplObjectStorage.
— Исправлена ini настройка mail.log в случае когда не указано имя файла.

— Исправлена ошибка №52317 (Ошибка сегментации при использовании функции mail() на rhel 4.x (только 64 бита)).
— Исправлена ошибка №52262 (json_decode() не отображал ошибок при декодировании невалидного UTF-8).
— Исправлена ошибка №52240 (функция hash_copy() не копировала HMAC ключ, что вызывало неправильные результаты и падения PHP).
— Исправлена ошибка №52238 (Падение при выкидывании исключения во время работы функции iterator_to_array).
— Исправлена ошибка №52193 (преобразование замыкания в массив приводило к пустому массиву).
— Исправлена ошибка №52183 (класс ReflectionFunction отображал неправильного количество аргументов для псевдонимов функций).
— Исправлена ошибка №52162 (убраны установленные пользователем переменные заголовков запроса с номерами).
— Исправлена ошибка №52160 (Неправильная ошибка уровня E_STRICT при переопределении конструктора).
— Исправлена ошибка №52138 (Константы парсящиеся в ini файле как имена секций).
— Исправлена ошибка №52115 (mysqli_result::fetch_all возвращает null, а не пустой массив).
— Исправлена ошибка №52101 (мусор возвращаемый dns_get_record() в поле 'ipv6' на платформе Windows).
— Исправлена ошибка №52082 (сброс character_set_client и character_set_connection после вызова mysqli_change_user())
— Исправлена ошибка №52043 (GD не распознавал последние версии библиотеки libJPEG).
— Исправлена ошибка №52041 (Утечка памяти при записи в не инициализированную при возврате из функции).
— Исправлена ошибка №52060 (Утечка памяти при передаче замыкания в функцию method_exists()).
— Исправлена ошибка №52057 (ReflectionClass не мог обработать класс Closure).
— Исправлена ошибка №52051 (обработка регистрозависимости конструкторов старого стиля изменена в 5.3+).
— Исправлена ошибка №52037 (Ошибка конкурентная сборки в инсталляционных программах).
— Исправлена ошибка №52019 (lcov больше не поддерживает переменную TESTS).
— Исправлена ошибка №52010 (Ошибка ограничений open_basedir при команде vacuum).
— Исправлена ошибка №52001 (Ошибка выделения памяти после использования переменных переменных).
— Исправлена ошибка №51991 (spl_autoload и поддержка *nix с пространствами имен).
— Исправлена ошибка №51943 (AIX: несколько файлов выходили за рамки спецификации ANSI).
— Исправлена ошибка №51911 (Утечки памяти при вызове ReflectionParameter::getDefaultValue() константного массива).
— Исправлена ошибка №51905 (ReflectionParameter не срабатывал если значение по-умолчанию массив с доступом к self::).
— Исправлена ошибка №51899 (Ошибка разбора в функции parse_ini_file() когда после пустого значения отсутствует символ перевода строки).
— Исправлена ошибка №51844 (checkdnsrr не поддерживал типы любые записей кроме MX).
— Исправлена ошибка №51827 (Неправильный warning в случае когда register_shutdown_function вызван с неправильным количеством аргументов).
— Исправлена ошибка №51822 (Ошибка сегментации со странным __destruct() для статичных переменных класса).
— Исправлена ошибка №51791 (функция constant() прерывала исполнение после неудачной попытки проверить неустановленную константу).
— Исправлена ошибка №51732 (__construct или open Fileinfo не работал с NULL).
— Исправлена ошибка №51725 (xmlrpc_get_type() возвращал true на некорректные даты).
— Исправлена ошибка №51723 (Заголовок Content-length ограничен 32-битным целым в Apache2 на платформе Windows).
— Исправлена ошибка №51721 (DOMNodeList и DOMNamedNodeMap помечены как Traversable).
— Исправлена ошибка №51712 (Проверка mysql_mysqlnd_read_timeout_long не должна срабатывать на MySQL4).
— Исправлена ошибка №51697 (Небезопасные операции в free_storage итераторов SPL вызывали падение во время завершения работы).
— Исправлена ошибка №51690 (Phar::setStub проверял регистрозависимый __HALT_COMPILER()).
— Исправлена ошибка №51688 (ini per dir падал при неправильном указании document root).
— Исправлена ошибка №51671 (некорректная работа imagefill с маленькими изображениями).
— Исправлена ошибка №51670 (getColumnMeta вызывал ошибка сегментации при повторном исполнении запроса после вызова nextRowset).
— Исправлена ошибка №51647 (Файл сертификата без приватного ключа (приватный ключ в другом файле) не работал).
— Исправлена ошибка №51629 (Вводящая в заблуждение сообщение об ошибке CURLOPT_FOLLOWLOCATION).
— Исправлена ошибка №51627 (script path не корректно воспринимался).
— Исправлена ошибка №51624 (Падение при вызове mysqli_options()).
— Исправлена ошибка №51615 (PHP падал при передачи неправильного HTML в SimpleXML).
— Исправлена ошибка №51609 (pg_copy_to: неправильные результаты при использовании четвертого аргумента).
— Исправлена ошибка №51608 (pg_copy_to: ПРЕДУПРЕЖДЕНИЕ: нестандартное использование \\ в строковом литерале).
— Исправлена ошибка №51607 (pg_copy_from не позволял указание схемы в аргументе имени таблицы).
— Исправлена ошибка №51605 (Mysqli — зомби ссылки).
— Исправлена ошибка №51604 (перенос строки в конце заголовка отображался в начале сообщения).
— Исправлена ошибка №51590 (неустановленная константа JSON_ERROR_UTF8).
— Исправлена ошибка №51583 (Ошибка шины из-за неправильного расположения в mysqlnd).
— Исправлена ошибка №51582 (Не допускайте что UINT64_C когда-либо будет доступен).
— Исправлена ошибка №51577 (Неинициализированная ссылка на память в oci_bind_array_by_name).
— Исправлена ошибка №51562 (Таймаут запроса в mssql не может быть изменен под отдельный запрос).
— Исправлена ошибка №51552 (debug_backtrace() вызывал ошибку сегментации и/или проблемы с памятью).
— Исправлена ошибка №51445 (неправильное/медленное определение *RECURSION* в var_dump()).
— Исправлена ошибка №51435 (Отсутствующие ifdef / ошибки логики в шифрующем коде могут вызвать ошибки компиляции).
— Исправлена ошибка №51424 (функция crypt() зависает после 3-го вызова).
— Исправлена ошибка №51394 (Строка ошибки определяется некорректно если обработчик ошибок высылает исключение).
— Исправлена ошибка №51393 (DateTime::createFromFormat() не срабатывал если строка с форматом содержит временную зону).
— Исправлена ошибка №51347 (утечка памяти mysqli_close / connection).
— Исправлена ошибка №51338 (подстановка в URL работает даже в случае установленного параметра use_only_cookies).
— Исправлена ошибка №51291 (oci_error не сообщал о последней ошибке, в случае когда вызван дважды).
— Исправлена ошибка №51276 (php_load_extension() отсутствует когда не определена HAVE_LIBDL).
— Исправлена ошибка №51273 (Свойство Faultstring не существует когда faultstring пуст).
— Исправлена ошибка №51269 (zlib.output_compression переписывал заголовок Vary).
— Исправлена ошибка №51257 (CURL_VERSION_LARGEFILE неправильно используется после libcurl версии 7.10.1).
— Исправлена ошибка №51242 (Пустая конфигурационная настройка mysql.default_port больше не определяется по-умолчанию как 3306, а определяется как 0).
— Исправлена ошибка №51237 (падение milter SAPI при запуске).
— Исправлена ошибка №51213 (pdo_mssql обрезает значение столбца типа money).
— Исправлена ошибка №51190 (ftp_put() возвращает false при успешной передаче).
— Исправлена ошибка №51183 (ext/date/php_date.c не компилируется с помощью Sun Studio).
— Исправлена ошибка №51176 (Статические вызовы не статических методов срабатывают как $this->).
— Исправлена ошибка №51171 (curl_setopt() не выводит каких-либо ошибок или предупреждений в случае когда указана несуществующая опция).
— Исправлена ошибка №51128 (imagefill() не работает с большими изображениями).
— Исправлена ошибка №51096 ('last day' и 'first day' обрабатываются некорректно при разборе строк с датой).
— Исправлена ошибка №51086 (DBA DB4 не работает с Berkeley DB 4.8).
— Исправлена ошибка №51062 (DBA DB4 использует ошибочные заголовки и библиотеки).
— Исправлена ошибка №51026 (mysqli_ssl_set не работает).
— Исправлена ошибка №51023 (filter не поддерживает переполнение целого в GCC 4.4).
— Исправлена ошибка №50999 (доступ к нейтральной памяти в dba_fetch()).
— Исправлена ошибка №50976 (Авторизация по заголовкам Soap не разрешена).
— Исправлена ошибка №50828 (DOMNotation не является дочерним классом DOMNode).
— Исправлена ошибка №50810 (propert_exists не работает с приватными свойствами).
— Исправлена ошибка №50762 (в режиме WSDL функция обработчик заголовков Soap вызывается только если указана в WSDL).
— Исправлена ошибка №50731 (Несогласованные пространства имен отправляются функциям, зарегистрированным с помощью spl_autoload_register).
— Исправлена ошибка №50563 (Убран E_WARNING из функции parse_url).
— Исправлена ошибка №50578 (некорректная штука(?) в phar.phar).
— Исправлена ошибка №50555 (DateTime::sub() позволяет относительные модификации времени).
— Исправлена ошибка №50392 (date_create_from_format форсирует 6 чисел для символа форматирования 'u').
— Исправлена ошибка №50383 (Исключения выкинутые в __call / __callStatic не включали в себя файл и строку в трассировочной информации).
— Исправлена ошибка №50358 (Ошибка компиляции ext/phar/util.lo).
— Исправлена ошибка №50101 (Пересечение имен локальной и глобальной переменных).
— Исправлена ошибка №51002 (исправлены возможные повреждения памяти при очень длинных именах).
— Исправлена ошибка №49893 (Падение при создании экземпляра Zend_Mail_Storage_Pop3).
— Исправлена ошибка №49819 (STDOUT теряет данных с posix_isatty()).
— Исправлена ошибка №49778 (DateInterval::format("%a") всегда ноль в случае когда интервал создан из строки в формате ISO).
— Исправлена ошибка №49700 (утечки памями в php_date.c при включенном сборщике мусора).
— Исправлена ошибка №49576 (фильтру FILTER_VALIDATE_EMAIL требуется обновление).
— Исправлена ошибка №49490 (Конфликт префиксов пространств имен XPath).
— Исправлена ошибка №49429 (odbc_autocommit не работает).
— Исправлена ошибка №49320 (PDO возвращает null если подключение SQLite не удается).
— Исправлена ошибка №49234 (mysqli_ssl_set не найден).
— Исправлена ошибка №49216 (Рефлексия работает некорректно с классом mysqli).
— Исправлена ошибка №49192 (PHP падает в случае когда сборщик мусора запущен на COM object).
— Исправлена ошибка №49081 (Ошибка DateTime::diff() если начало в январе и интервал больше 28 дней).
— Исправлена ошибка №49059 (DateTime::diff() повторяет предыдущую операцию sub()).
— Исправлена ошибка №48983 (Неправильная кодировка DOMDocument:saveHTMLFile).
— Исправлена ошибка №48930 (__COMPILER_HALT_OFFSET__ не корректно работает в PHP >= 5.3).
— Исправлена ошибка №48902 (База данных переводов времени устарела).
— Исправлена ошибка №48781 (Утечка памяти циклического сборщика мусора).
— Исправлена ошибка №48601 (xpath() возвращает FALSE для легитимного запроса).
— Исправлена ошибка №48361 (SplFileInfo::getPathInfo должен возвращает родительскую директорию).
— Исправлена ошибка №48289 (схема quoted-printable функции iconv_mime_encode() сломана).
— Исправлена ошибка №47842 (sscanf() не поддерживает 64-битные значения).
— Исправлена ошибка №46111 (Некоторые идентификаторы временной зоны не могут быть обработаны).
— Исправлена ошибка №45808 (stream_socket_enable_crypto() блокирует и съедает ресурсы процессора).
— Исправлена ошибка №43233 (поддержка sasl для ldap на платформе Windows).
— Исправлена ошибка №35673 (formatOutput не работает с saveHTML).
— Исправлена ошибка №33210 (getimagesize() не удается определить ширину/высоту некоторых файлов JPEG).
+70
22 июля 2010, 21:56
17

комментарии (66)

+24
homm #
Помоему, все что нужно было написать, это: Менеджер процессов FastCGI (FPM) добавлен в SAPI.
Все остальное не так важно.
–3
N1ghtMare #
Ввел в поиске «fpm», чтобы найти в changelog`e, обнаружил ваш комментарий) FPMу цены не будет, когда стабильным станет «Dynamic number of processes, depending on the load (adaptive process spawning)»
0
mente #
С встраиванием в PHP (не патчем) он стал поддерживать эту технологию. Уже несколько месяцев стоит на серваках (еще 5.3.2-dev стянутый с свн), полет нормальный
0
mcdebugger #
Да, ожидаемый релиз. В боевом режиме уже тоже какое-то время пользую 5.3.3_rc1 и rc2. Пока полёт вполне )
+2
LoneCat #
Ну как не так важно, если почитать changelog — там ошибок связанных с одними только утечками памяти — пол changelog'а, в режиме FastCGI они бы были значительно заметнее. Ну и остальное — никогда не вчитывался в changelog'и, но сейчас прочитал пока переводит — и пришел в ужас, создается впечатление что до этой версии не работала чуть более чем половина всего php.
+1
LoneCat #
*пока переводил
+3
bolk #
В PHP всегда так. Неужели, вы ни разу его не читали?
+1
LoneCat #
Да нет, никогда как-то особо не интересовался, просматривал только ключевые моменты, которые публикуют в релизе.
0
gnomeby #
Это не далеко от истины мы тут Segmentation fault`ы второй месяц чиним для Debian x86_64 PHP 5.3.2
0
anycolor #
что показывает backtrace?
–3
gnomeby #
О чём вы, если Segmentaion fault, то никаких бектрейсов.

Но вообще проблема заключается в том что в 1 случае из 100 при использовании строковой функции валится Segmentation fault. Если строку предварительно склеить с пустой строкой чуть выше, то никаких ошибок. Так что дело тёмное. Кроме того в Gentoo не воспроизводится, а вот в Бебиане на нескольких тачках в одних и тех же местах.
0
anycolor #
Почему єто никаких бектрейсов? Бектрейс как раз дает информацию, где завалилось и на каком методе.
–3
gnomeby #
Потому что ошибка настолько серьёзная что бектрейс не пишется.

А на методе любом валится. Просто образуется такая черная дыра что можно одну строковую функцию заменить на любою другую и всё равно свалится. А вот если убрать, то работает.
0
anycolor #
Как может не писаться бектрейс, поясните? Я в это не верю.

Ниже уже написали, что вам надо сделать — получить кору, скормить ее gdb и получить репорт, в котором попробовать разобраться самостоятельно, либо отправить разработчикам.

httpd.apache.org/dev/debugging.html — читайте и получайте бектрейс.

Либо ткните меня куда-то, где пояснено, почему бектрейса «нету, если ошибка очень серьезная».
–4
gnomeby #
Простите, но у меня нет времени этим заниматься.
+1
anycolor #
железный аргумент :)
+1
gnomeby #
Я занимаюсь развитием OpenSource и сабмичу патчи в разные проекты. В том числе я засабмитил в PHP пять дефектов, два из которых были пофикшены.

Просто я занимаюсь этим тогда, когда у меня есть время и желание, а не потому что кто-то указал мне сделать это в комментариях.
0
anycolor #
Причем тут комментарии?

Вы же сами пишите, что имеете проблему:

> мы тут Segmentation fault`ы второй месяц чиним

И тут же говорите, что «нет времени этим заниматься».

Вы уж определитесь — хотите решить проблему или отнекиваться, что мол некогда. Для себя же вроде как.

То, чем вы занимаетесь и куда сабмитите меня в целом не волнует — это никак не относиться к нашему разговору.

Скажите лучше, что просто не знали про бектрейс и на этом разговор закончим, к чему эти припирательства.
–2
develop7 #
Потому что segfault же. Значит, падает интерпретатор.
Чтобы получить «бэктрейс» (в данном случае это будет stacktrace, бесполезный для разработчика, не знакомого с внутренним устройством PHP), нужно «поставить php5-dbg» и навесить на процесс с PHP отладчик. Как-то так (поправьте меня, если ошибаюсь).
+3
galaxy #
Скормите дебагеру кору, запустите апача с ограничением в 1 дочерний процесс и приаттачтесь с gdb — варианты есть. Стек вызовов будет и без дебаг версии — символы в коде имеются.
Бектрейс отнюдь не бесполезен: в конце концов, это первое, что у вас попросят разработчики, если решите написать баг репорт. Можете покопаться сами, если и не поймете в чем дело, есть шанс, что добьетесь устойчивого репродуцирования бага.
+2
anycolor #
глупости. Segfault еще ничего не означает, причин для сегфолта может быть мульйон и больше.

Как уже выше написал — нужно получать кору и бегать по ней gdb и не нужно ничего больше ставить, главное прочитать раздел дебаггинга веб-сервера.
0
Aa1111 #
Было проходил.
Была бубунта 9.10 (в ней бере появилась)
при переходе на 10.04 бага пропала
за период ожиданий юзался фрибсд
М И С Т И К А

+ подтвердаю :: на генту и мандриве проблемы нет
0
galaxy #
5.2.14 тоже, кстати, вышел.

This release marks the end of the active support for PHP 5.2. Following this release the PHP 5.2 series will receive no further active bug maintenance. Security fixes for PHP 5.2 might be published on a case by cases basis.

что, конечно, печально. Не совсем понятно стремление разделаться с веткой 5.2, народ ведь еще ой как долго будет переползать на 5.3.
+2
MTonly #
Как раз очень понятно и правильно — незачем плодить сущности и распылять усилия. И данное предупреждение наряду с самим фактом выпуска уже третьей (и значит, уже достаточно стабильной) версии в ветке 5.3 — хороший повод для хостинг-провайдеров начать шевелиться.
+1
LoneCat #
Да давно бы уж пора, с момента первого релиза PHP 5.3 прошел уже год, а воз и ныне там.
+2
anycolor #
с момента первого релиза 5 ветки прошло года 3, пока большинство провайдеров перешло на 5 ветку по-умолчанию.

Однако до сих пор еще встречают хостинги, где по-умолчанию 4 версия, а 5 сделана через хитрые жопные извращения.
+1
komtet #
Хостеры шевелятся. Только вот так ли это надо?
Ещё в прошлом году на виртхостинге к возможности выбора версии PHP 4.4.х или 5.2.х добавили 5.3.х. И что?
Используют PHP5.3 <0,1%.
Есть как субъективные причины («не трож, раз работает») и объективные — не все требуемые продукты работают под 5.3.
+1
ColorPrint #
отсутствие ZendOptimizer под 5.3 к сожалению не позволяет шевелиться :(
под линух его уже больше года никак не выпустят, под фрибсд вроде вообще не будет :(
0
komtet #
ionCube Loader, Suhosin, eAccelerator — уже есть поддержка PHP5.3 и довольно давно.
C Zend ситуация интересная — есть поддержка PHP5.3 в Zend Server, в его состав входит ZendOptimizer+, и там тоже поддержка есть. Только это совсем не то же самое.
0
ColorPrint #
про кубик и все остальное в курсе, только к сожалению все еще многие разработчики шифруют скрипты зендом…
хотя тенденция перехода разработчиков на другие решения есть.
про zend server читал, вроде под винду кто то даже выдергивал оттуда модуль и оно работало )
0
komtet #
Под Linux — выдернуть не проблема, у нас решили проверить и тоже ставили — думали: «вот оно, счастье! ZendOptimizer под 5.3!», а вот нет. Как я говорил, эти два оптимайзера — разные вещи.
Так что остаётся ждать. Ну или без зенда.
+3
TheShock #
лучше побыстрее переполз бы этот народ. не вижу смысла сидеть на устаревшем php
0
Imenem #
Это потребует переписывания как минимум половины PEAR, что само по себе прискорбно (большое кол-во пакетов PEAR написано в ООП-стиле на PHP 4, а обратной совместимости нет). При использовании пакетов PEAR и так приходится кучу deprecated-ошибок править.
+1
TheShock #
пхп4-ооп стиль вполне совместим с пхп5.3. лично у меня что PEAR(насколько я с ним работал) что Джумла первая, что другие пережитки прошлого вполне вменяемо работают на пхп5.3
+1
Wave #
Попробовал недавно запустить джумлу под 5.3 — даже инсталятор не завёлся практически с самого начала. Не стал разбираться, ибо всё равно хостинг под этот проект заказчик на 5.2 взял.
Из известных мне проектов некоторые гордо сообщили, что ныне совместимы с 5.3. Прочие скромно молчат. В любом случае, при переводе чего угодно с 5.2 на 5.3 прийдётся усиленно тестировать.
0
Tant #
Пробовал раньше поставить 5.3.0, но сайт на основе Drupal 6.12 (по-моему) радовал ошибкой «Function ereg() is deprecated in ...».
Сейчас под 5.3.3 запустил тот же сайт, но с Drupal 6.17 — нормально работает, так и оставлю на локальном серваке.
+4
LoneCat #
Ну так разработчики сами себе злобные буратины, несмотря на то что ereg() стал deprecated только в версии 5.3 — предупреждения о том что он устаревший, медленный и т.д. и т.п. были в справке по-моему с самого появления 5-ой версии, иже уже лет этак 6, но разработчики популярных cms по-моему лучше отстрелят себе ногу, чем откажутся от этой чудо-функции, которая собственно от preg_match по функциональности ничем выдающимся не отличается.
+6
gnomeby #
Это потому что вы не админ и интегратор. В нашем деле просто так не обновляются ибо за это по шапке дают.
+1
TheShock #
ну вот чем больше будет не «просто так» — тем лучше
+2
galaxy #
Так не делается.
PHP 5.3 — это очень существенный шаг вперед, причем основные изменения касаются ядра языка (в отличие от релизов 5.1 и 5.2 — обычных security & stability релизов с апгрейдом расширений). Причем, судя по чейнжлогам, разработчики сами до конца не определились, как и что у них должно теперь работать. В таких случаях необходимо поддерживать две ветки, иначе это детский сад, а не процесс разработки в проекте, которому (в современном его виде) уже 12 лет.
0
lehha #
Когда ожидать на repo?
+2
ForhaxeD #
Поставил. Полет отличный.
+3
LoneCat #
Отпишитесь где если что подбирать черный ящик :)
+3
Murkt #
Теги записи нужно через запятые перечислять, а не просто через пробел — сейчас это один тег «php php5.3 bug feature».
+1
LoneCat #
Спасибо за подсказку.
+10
Medal #
Исправлена ошибка №51213 (pdo_mssql обрезает значение столбца типа money) — моя работа :)
+13
dohlik #
Судя по нику, Вас за это уже наградили ))
–7
anthonio #
решето…
+4
TravisBickle #
Решето это когда нету багфиксов в changelog'е ;-))
0
Aidsoid #
Интересный баг.
№50578 некорректная штука(?)
+1
LoneCat #
Вопрос там мой :) ну если так и написано — штука :) может конечно я не нашелся как корректно это перевести… но я так понимаю это все написано не на чистовую, под релиз, а взято прямо из производственного процесса, иже комментарии разработчиков, названия тикетов и т.п.
+1
LoneCat #
+4
Prophet #
Вот что такое Shebang: #!/bin/sh, например
0
kvf77 #
А gettext так и не починили?
0
Steward #
Такое впечатление что переводили Translate-ом.

«Здесь нет ударения на переход с PHP 5.2 так как пространства имен были представлены только в PHP 5.3.»

Запятые забыты напрочь!
+1
BSDaemon #
Интересно, оно теперь будет собираться с родным libiconv на Mac OS X…
Надо проверить…
+2
davinchi #
Хабровская:
— Исправлена ошибка №52001 (Ошибка выделения памяти после использования переменных переменных).
0
FlexIDK #
У меня сейчас проблема на сервере, после обновления портов, не работает GD с PNG (ОС FreeBSD 8.0) — обновлял порты месяц назад — и снова появилась ошибка не совместимости php5-gd с png_1.4 (падает пхп с Core Dump)
До этого эта ошибка был в 5.2.8, так как 5.2.8 работал с png_1.2, а как выкатили 1.4 — появился баг… Сейчас тоже самое с 1.4.1_1 (вроде такая версия последняя)
Пробовал пересобирать как png, так и php5-gd. пересобирал все зависимости =( не помогает…
Может кто то сталкивался с проблемой??? баг появился месяц назад… до этого тоже самое было в апреле-мае
0
anycolor #
если php падает с core dumped, то берите кору и колупайте ее gdb, получайте backtrace и тогда уже станет ясно, что с этим делать — отсылать разрабам или вы что-то сможете сами починить.
0
brooho #
Была такая проблема — падало и с gd и с imagemagick. Помогло что-то вроде вот этого:
portupgrade -rf png-1.4.1_1
0
Aco #
«Изменены классы в пространствах имен, так что теперь конструктор может быть задан только через __construct» это как понимать? только при
namespace dfgdg;
не будут работать конструкторы типа php4?
0
LoneCat #
Да, так и понимать.
0
Aco #
просто я обеспокоен был тем что бы в глобальном неймспейсе могло работать по старому
0
LoneCat #
Ну очевидно разработчики тоже этим обеспокоены :) Хоть мне лично и не нравится подобная некрофилия, но нельзя не согласится с тем что очень много скриптов повисло в сумеречной зоне между php 4 и php 5, и многие из них популярные, нужные, и порой пока незаменимые.
0
un1t #
Лучше бы нормальную поддержку юникода сделали (
0
LoneCat #
Ну над юникодом тоже работа ведется, я надеюсь :) сначала-же и собирались выпустить 6-ую версию php с преферансом и блудницами пространствами имен, замыканиями и юникодом, но потом под гнетом фанатов выпустили промежуточную 5.3 со всем вышеперечисленным, но без юникода.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.