PHP 5.3.4 et PHP 5.2.16 nouvelles versions de PHP
Se concentrent sur la sécurité et la stabilité

Le , par Celira, Modératrice
Nouvelle version de PHP 5.2 : PHP 5.2.15
Comme indiqué lors de la précédente version, cette version se concentre sur la correction de bugs de sécurité et la stabilité/ Notamment :
  • Correction de crash sur l'extraction de zip
  • Correction du comportement de la fonction extract avec l'option EXTR_OVERWRITE
  • Correction d'une faille dans la fonction open_basedir
  • Correction de la fonction array_diff (l'exécution était 3000 fois plus lente que dans PHP 5.2.4)

La liste complète des changements dans cette version
Cette version est la dernière version de PHP 5.2, le support de maintenance étant maintenant terminé. Les utilisateurs de PHP 5.2 sont vivement encouragés à migrer vers PHP 5.3. (guide de migration disponible sur PHP.net )

Nouvelle version de PHP 5.3 : 5.3.4
Cette version est une version de maintenance et corrige un nombre important de bugs. Notamment :
  • Correction de crash sur l'extraction de zip
  • Correction du comportement de la fonction extract avec l'option EXTR_OVERWRITE
  • Correction d'une faille dans la fonction open_basedir
  • Ajout d'un 3e paramètre à la fonction get_html_translation_table, pour le choix de l'encodage

La liste complète des changements dans la version 5.3.4


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de Celira Celira - Modératrice https://www.developpez.com
le 16/12/2010 à 18:39
Nouvelle version de PHP 5.2 : 5.2.16
Moins d'une semaine après la sortie de PHP 5.2.15, sortie d'une nouvelle version de PHP 5.2.
Le but de cette version est essentiellement de corriger une régression sur la fonction open_basedir, introduite dans la version 5.2.15, ainsi qu'une correction sur PDO::pgsql.

Celles et ceux qui ont déjà migrés leur serveur vers 5.2.15 et qui utilisent la fonction open_basedir sont très fortement encouragés à mettre en place la nouvelle version 5.2.16 (ou bien sûr à passer à PHP 5.3, étant donné que le support de PHP 5.2 est terminé)
Avatar de ratomms ratomms - Membre actif https://www.developpez.com
le 17/12/2010 à 10:00
Citation Envoyé par Celira Voir le message


Attention, si vous utilisiez déjà PHP 5.3.x, dans un espace de nom, la méthode d'une classe portant le même nom que cette classe ne sera plus considérée comme constructeur.

Où est le concept d'OOP alors?
Avatar de Celira Celira - Modératrice https://www.developpez.com
le 17/12/2010 à 10:11
Lorsque tu définis ta classe en PHP 5.2+, le constructeur s'appelle __construct (on parle là de la méthode appelée lors de l'instanciation d'un objet, autrement dit un new MonObjet())
On a bien le concept objet, avec le constructeur, les méthodes, les attributs et tout, juste le constructeur ne porte pas le nom de la classe...
Avatar de stealth35 stealth35 - Expert éminent sénior https://www.developpez.com
le 17/12/2010 à 10:32
l'arrivé de la 5.2.16, c'est surtout l'arrêt du support de la branche 5.2.
Avatar de Seb33300 Seb33300 - Membre émérite https://www.developpez.com
le 20/12/2010 à 16:10
Quelqu'un sait il quand va arriver PHP 5.3 en stable dans Debian via les paquets ?
Ou combien de temps ça prend en moyenne. ça fait déjà un bn moment que php 5.3 est arrivé et il n'est toujours pas la :/
Avatar de Celira Celira - Modératrice https://www.developpez.com
le 07/01/2011 à 9:45
Nouvelles versions de PHP : 5.3.5 et 5.2.17
Suite à la découverte d'un bug majeur permettant les attaques par Déni de Service, PHP vient de sortir une version corrigeant ce bug. Tous les utilisateurs sont vivement invités à migrer leurs serveurs PHP vers ces nouvelles versions. Pour tester si votre système est sensible à ce bug, PHP.net propose le script de test suivant :
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
/*
  +----------------------------------------------------------------------+
  | PHP Version 5                                                        |
  +----------------------------------------------------------------------+
  | Copyright (c) 2011 The PHP Group                                     |
  +----------------------------------------------------------------------+
  | This source file is subject to version 3.01 of the PHP license,      |
  | that is bundled with this package in the file LICENSE, and is        |
  | available through the world-wide-web at the following url:           |
  | http://www.php.net/license/3_01.txt                                  |
  | If you did not receive a copy of the PHP license and are unable to   |
  | obtain it through the world-wide-web, please send a note to          |
  | license@php.net so we can mail you a copy immediately.               |
  +----------------------------------------------------------------------+
  | Author: Johannes Schlueter <johannes@php.net>                        |
  +----------------------------------------------------------------------+
*/

if (PHP_SAPI != 'cli') {
    die("Please run this test from CLI!\n");
}

ini_set('display_errors', 1);
ini_set('output_buffering', 0);
error_reporting(-1);
if (!ini_get('safe_mode')) {
    set_time_limit(1);
}

echo "Testing float behaviour. If this script hangs or terminates with an error ".
     "message due to maximum execution time limit being reached, you should ".
     "update your PHP installation asap!\n";
echo "For more information refer to <http://bugs.php.net/53632>.\n";
$d = (double)"2.2250738585072011e-308";
echo "Your system seems to be safe.\n";
?>
Le principe est simple : si le script s'exécute jusqu'à la fin, votre système est protégé. Il est évidemment recommandé de fermer toutes les applications critiques avant de lancer ce script, histoire d'éviter de tout faire planter si il s'avère que votre système est sensible au bug.

On notera au passage que, bien que le support de PHP 5.2 soit théoriquement théoriquement, une version de correction est également disponible pour PHP 5.2 pour des raisons sécuritaires.
Avatar de stealth35 stealth35 - Expert éminent sénior https://www.developpez.com
le 20/06/2011 à 15:57
Après la mise en ligne de nouvelle branche 5.4, voici la première alpha

au menu :

http://svn.php.net/repository/php/ph...4_0alpha1/NEWS

PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
20 Jun 2011, PHP 5.4.0 Alpha 1
- autoconf 2.59+ is now supported (and required) for generating the
configure script with ./buildconf. Autoconf 2.60+ is desirable
otherwise the configure help order may be incorrect. (Rasmus, Chris Jones)

- Removed legacy features:
. break/continue $var syntax. (Dmitry)
. Safe mode and all related ini options. (Kalle)
. register_globals and register_long_arrays ini options. (Kalle)
. import_request_variables(). (Kalle)
. allow_call_time_pass_reference. (Pierrick)
. define_syslog_variables ini option and its associated function. (Kalle)
. highlight.bg ini option. (Kalle)
. Session bug compatibility mode (session.bug_compat42 and
session.bug_compat_warn ini options). (Kalle)
. session_is_registered(), session_register() and session_unregister()
functions. (Kalle)
. y2k_compliance ini option. (Kalle)

- Moved extensions to PECL: (Johannes)
. ext/sqlite.

- Changed $_SERVER['REQUEST_TIME'] to include microsecond precision. (Ilia)
- Changed default value of "default_charset" php.ini option from ISO-8859-1 to
UTF-8. (Rasmus)
- Changed array_combine() to return empty array instead of FALSE when both
parameter arrays are empty. FR #34857. (joel.perras@gmail.com)
- Changed third parameter of preg_match_all() to optional. FR #53238. (Adam)
- Changed silent casting of null/''/false into an Object when adding
a property into a warning. (Scott)
- <?= is now always available regardless of the short_tags setting (Rasmus)

- General improvements:
. Added multibyte support by default. Previously php had to be compiled
with --enable-zend-multibyte. Now it can be enabled or disabled through
zend.multibyte directive in php.ini. (Dmitry)
. Removed compile time dependency from ext/mbstring (Dmitry)
. Added support for Traits. (Stefan)
. Added closure $this support back. (Stas)
. Added array dereferencing support. (Felipe)
. Added indirect method call through array. FR #47160. (Felipe)
. Added support for object references in recursive serialize() calls.
FR #36424. (Mike)
. Added http_response_code() function. FR #52555. (Paul Dragoonis, Kalle)
. Added header_register_callback() which is invoked immediately
prior to the sending of headers and after default headers have
been added. (Scott)
. Added DTrace support. (David Soria Parra)
. Improved output layer, see README.NEW-OUTPUT-API for internals. (Mike)
. Improved unserialize() performance.
(galaxy dot mipt at gmail dot com, Kalle)
. Improved unix build system to allow building multiple PHP binary SAPIs and
one SAPI module the same time. FR #53271, FR #52410. (Jani)
. Added optional argument to debug_backtrace() and debug_print_backtrace()
to limit the amount of stack frames returned. (Sebastian, Patrick)
. Added stream metadata API support and stream_metadata() stream class
handler. (Stas)

- Improved Zend Engine memory usage: (Dmitry)
. Replaced zend_function.pass_rest_by_reference by
ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags.
. Replaced zend_function.return_reference by ZEND_ACC_RETURN_REFERENCE
in zend_function.fn_flags.
. Removed zend_arg_info.required_num_args as it was only needed for internal
functions. Now the first arg_info for internal functions (which has special
meaning) is represented by zend_internal_function_info structure.
. Moved zend_op_array.size, size_var, size_literal, current_brk_cont,
backpatch_count into CG(context) as they are used only during compilation.
. Moved zend_op_array.start_op into EG(start_op) as it's used only for
'interactive' execution of single top-level op-array.
. Replaced zend_op_array.done_pass_two by ZEND_ACC_DONE_PASS_TWO in
zend_op_array.fn_flags.
. op_array.vars array is trimmed (reallocated) during pass_two.
. Replaced zend_class_entry.constants_updated by ZEND_ACC_CONSTANTS_UPDATED
in zend_class_entry.ce_flags.
. Reduced the size of zend_class_entry by sharing the same memory space
by different information for internal and user classes.
See zend_class_entry.info union.
. Reduced size of temp_variable.

- Changed the structure of op_array.opcodes. The constant values are moved from
opcode operands into a separate literal table. (Dmitry)

- Improved Zend Engine, performance tweaks and optimizations: (Dmitry)
. Inlined most probable code-paths for arithmetic operations directly into
executor.
. Eliminated unnecessary iterations during request startup/shutdown.
. Changed $GLOBALS into a JIT autoglobal, so it's initialized only if used.
(this may affect opcode caches!)
. Improved performance of @ (silence) operator.
. Simplified string offset reading. $str[1][0] is now a legal construct.
. Added caches to eliminate repeatable run-time bindings of functions,
classes, constants, methods and properties.
. Added concept of interned strings. All strings constants known at compile
time are allocated in a single copy and never changed.
. Added an optimization which saves memory and emalloc/efree calls for empty
HashTables. (Stas, Dmitry)
. ZEND_RECV now always has IS_CV as its result.
. ZEND_CATCH now has to be used only with constant class names.
. ZEND_FETCH_DIM_? may fetch array and dimension operands in different order.
. Simplified ZEND_FETCH_*_R operations. They can't be used with the
EXT_TYPE_UNUSED flag any more. This is a very rare and useless case.
ZEND_FREE might be required after them instead.
. Split ZEND_RETURN into two new instructions ZEND_RETURN and
ZEND_RETURN_BY_REF.
. Optimized access to global constants using values with pre-calculated
hash_values from the literals table.
. Optimized access to static properties using executor specialization.
A constant class name may be used as a direct operand of ZEND_FETCH_*
instruction without previous ZEND_FETCH_CLASS.
. zend_stack and zend_ptr_stack allocation is delayed until actual usage.

- Improved CLI SAPI: (Johannes)
. Added command line option --rz <name> which shows information of the
named Zend extension.
. Interactive readline shell improvements:
. Added "cli.pager" php.ini setting to set a pager for output.
. Added "cli.prompt" php.ini setting to configure the shell prompt.
. Added shortcut #inisetting=value to change ini settings at run-time.
. Changed shell not to terminate on fatal errors.
. Interactive shell works with shared readline extension. FR #53878.

- Improved FastCGI SAPI: (Dmitry)
. Added apache compatible functions: apache_child_terminate(),
getallheaders(), apache_request_headers() and apache_response_headers()
. Improved performance of FastCGI request parsing.

- Improved core functions:
. number_format() no longer truncates multibyte decimal points and thousand
separators to the first byte. FR #53457. (Adam)
. Added hex2bin() function. (Scott)

- Improved CURL extension:
. Added support for CURLOPT_MAX_RECV_SPEED_LARGE and
CURLOPT_MAX_SEND_SPEED_LARGE. FR #51815. (Pierrick)

- Improved Date extension:
. Added the + modifier to parseFromFormat to allow trailing text in the
string to parse without throwing an error. (Stas, Derick)

- Improved DBA extension:
. Added Tokyo Cabinet abstract DB support. (Michael Maclean)
. Added Berkeley DB 5 support. (Johannes, Chris Jones)

- Improved filesystem functions:
. scandir() now accepts SCANDIR_SORT_NONE as a possible sorting_order value.
FR #53407. (Adam)

- Improved HASH extension:
. Added Jenkins's one-at-a-time hash support. (Martin Jansen)
. Added FNV-1 hash support. (Michael Maclean)
. Made Adler32 algorithm faster. FR #53213. (zavasek at yandex dot ru)

- Improved intl extension:
. Added Spoofchecker, allows checking for visibly confusable characters and
other security issues. (Scott)

- Improved JSON extension:
. Added JsonSerializable interface. (Sara)
. Added JSON_BIGINT_AS_STRING, extended json_decode() sig with $options.
(Sara)
. Added support for JSON_NUMERIC_CHECK option in json_encode() that converts
numeric strings to integers. (Ilia)
. Added new json_encode() option JSON_PRETTY_PRINT. FR #44331. (Adam)
. Added new json_encode() option JSON_UNESCAPED_SLASHES. FR #49366. (Adam)

- Improved LDAP extension:
. Added paged results support. FR #42060. (ando@OpenLDAP.org,
iarenuno@eteo.mondragon.edu, jeanseb@au-fil-du.net, remy.saissy@gmail.com)

- Improved MySQL extensions:
. MySQL: Deprecated mysql_list_dbs(). FR #50667. (Andrey)
. mysqlnd: Added named pipes support. FR #48082. (Andrey)
. MySQLi: Added iterator support in MySQLi. mysqli_result implements
Traversable. (Andrey, Johannes)
. PDO_mysql: Removed support for linking with MySQL client libraries older
than 4.1. (Johannes)

- Improved OpenSSL extension:
. Added AES support. FR #48632. (yonas dot y at gmail dot com, Pierre)
. Added a "no_ticket" SSL context option to disable the SessionTicket TLS
extension. FR #53447. (Adam)
. Added no padding option to openssl_encrypt()/openssl_decrypt(). (Scott)

- Improved PDO DB-LIB: (Stanley)
. Added nextRowset support.
. Fixed bug #50755 (PDO DBLIB Fails with OOM).

- Improved PostgreSQL extension:
. Added support for "extra" parameter for PGNotify().
(r dot i dot k at free dot fr, Ilia)

- Improved Reflection extension: (Johannes)
. Added ReflectionExtension::isTemporary() and
ReflectionExtension::isPersistent() methods.
. Added ReflectionZendExtension class.
. Added ReflectionClass::isCloneable(). (Felipe)

- Improved Session extension:
. Added support for storing upload progress feedback in session data. (Arnaud)
. Changed session.entropy_file to default to /dev/urandom or /dev/arandom if
either is present at compile time. (Rasmus)

- Improved SPL extension:
. Added RegexIterator::getRegex() method. (Joshua Thijssen)
. Added SplObjectStorage::getHash() hook. (Etienne)
. Added SplFileInfo::getExtension(). FR #48767. (Peter Cowburn)
. Added CallbackFilterIterator and RecursiveCallbackFilterIterator. (Arnaud)

- Improved ZLIB extension:
. Re-implemented non-file related functionality. (Mike)

- Improved SNMP extension (Boris Lytochkin):
. Added OO API. FR #53594 (php-snmp rewrite).
. Sanitized return values of existing functions. Now it returns FALSE on
failure.
. Allow ~infinite OIDs in GET/GETNEXT/SET queries. Autochunk them to max_oids
upon request.
. Introducing unit tests for extension with ~full coverage.
. Fixed bugs
. #44193 (snmp v3 noAuthNoPriv doesn't work)
. #45893 (Snmp buffer limited to 2048 char)
. #46065 (snmp_set_quick_print() persists between requests)
. #51336 (snmprealwalk (snmp v1) does not handle end of OID tree correctly)
. #53862 (snmp_set_oid_output_format does not allow returning to default)
Avatar de stealth35 stealth35 - Expert éminent sénior https://www.developpez.com
le 08/07/2011 à 15:24
Nouveau site en cours pour php.net :

http://prototype.php.net
Avatar de Code62 Code62 - Membre éclairé https://www.developpez.com
le 12/07/2011 à 13:37
Citation Envoyé par stealth35 Voir le message
Nouveau site en cours pour php.net :

http://prototype.php.net
ouais, j'ai vu ça y'a quelques jours, et j'ai pleuré

en dehors du menu "documentation" qui fait peur quand on clique, je n'arrive pas à croire qu'ils aient remplacé le bleu historique par cet espece de mauve-rose...
Avatar de Thes32 Thes32 - Expert confirmé https://www.developpez.com
le 19/08/2011 à 10:27
L'équipe de développement de PHP vient d'annoncer la sortie de la version 5.3.7.

Cette nouvelle version renforce la stabilité au langage et apporte plusieurs améliorations et corrections liés sur la sécurité avec plus de 90 correctifs dont
- la correction liée à une vulnérabilité (bugs #54939) de la superglobale $_FILE['filename'] pouvant être victime d'une injection,
- l'ajout d'une nouvelle constate PHP_MANDIR indiquant l'emplacement des manpages windows
- L'ajout d'un troisième argument pour les fonctions filter_var_array() et filter_input_array() permettant la désactivation des de l'addition éléments vides
- Les versions embarqués des bibliothèques sqlite3 et PCRE et ont été mis à niveau sur les versions 3.7.7.1 et 8.12 respectivement
- et plein d'autres qui vous pouvez trouver dans le changelog.

Les utilisateurs Windows devront se rappeler que les binaires VC6 n'étant plus disponible, ils devront recourir aux exécutables Apache fournis par Apache Lounge pour utiliser le SAPI Apache.
Contacter le responsable de la rubrique PHP