PHP 5.4 changements et configuration
Par PlaceOweb le jeudi, janvier 22 2015, 05:40 - PHP - Lien permanent
Petit tour d'horizon des modifications sur PHP 5.4 qui continue la version de PHP 5.3 et anticipe la version abandonnée de PHP6, donc la version de PHP 5.5.
PHP 5.4 stable
encoding = 'UTF-8' par défaut remplace 'ISO-8859-1' pour htmlspecialchars, htmlentities
Encoding :
- pour les versions antérieures à la version 5.4.0 de PHP, la valeur par défaut de cet argument est ISO-8859-1
- et à partir de la version 5.4.0 en UTF-8
- htmlspecialchars
- htmlentities
// PHP 5.4 echo htmlspecialchars($field, ENT_COMPAT | ENT_HTML401, 'ISO-8859-15' ); // PHP 5.3 echo htmlspecialchars($field);
Les nouveautés
- Historique des modifications
- Migration de PHP 5.3.x à PHP 5.4.x
- Évolutions incompatibles avec les versions précédentes Backward Incompatible Changes
- Safe mode n'est plus support
- Magic quotes a été supprimé
- ...
- Nouvelles fonctionalités New features
- L'extension session peut maintenant suivre la progression de l'upload des fichiers "start_time" "bytes_processed"
- PHP supporte une manière de réutiliser le code appelée Traits
- Les tableaux peuvent être créés avec la syntaxe courte [] à la place de array(). $array = [ "foo" => "bar" ]; à la place de $array = array( "foo" => "bar" );
- Fonctionnalités obsolètes en PHP 5.4.x Deprecated features in PHP 5.4.x mcrypt_generic_end() et mysql_list_dbs()
- Nouveaux paramètres Changed Functions
- Nouvelles fonctions New Functions
- Nouvelles classes New Classes and Interfaces
- Nouvelles méthodes New Methods
- Autres changements aux extensions Other changes to extensions
- Les extension MySQL mysql, mysqli et PDO_mysql utilisent désormais par défaut la librairie mysqlnd.
- Évolutions incompatibles avec les versions précédentes Backward Incompatible Changes
- Depuis PHP 5.4.0, le CLI SAPI fournit un serveur web interne prévu uniquement pour développer. Il ne doit pas être utilisé en production
- Même si l'on peut tout de même utiliser le passage par référence à l'appel de fonction en jouant avec allow_call_time_pass_reference=1 dans php.ini, c'est très fortement déconseillé car ce comportement est faux (il date de PHP4) et a été supprimé depuis PHP 5.4. Maitrise de la gestion des variables en PHP.
La configuration
- Description des directives internes du php.ini
- Depuis PHP 5.4.0, la balise courte <?= est toujours disponible quelque soit la directive short_open_tag qui définit si les balises courtes d'ouverture de PHP (<? ?>) sont autorisées ou non.
- zend.multibyte Active l'analyse lexicale des fichiers PHP dans des encodages multi-octets. Disponible depuis PHP 5.4.0
- Suppression depuis PHP 5.4 des variables $HTTP_*_VARS telles $HTTP_GET_VARS, $HTTP_POST_VARS, ... définies par la directive register_long_array
- Changement de la valeur par défaut de default_charset dans le php.ini de "ISO-8859-1" à "UTF-8"
- JSON
- Constantes pré-définies disponibles depuis PHP 5.4.0 :
- JSON_BIGINT_AS_STRING : Encode les gros entiers sous forme d'une chaîne de caractères.
- JSON_PRETTY_PRINT : Utilise des espaces dans les données retournées pour les formater. .
- JSON_UNESCAPED_SLASHES : Ne pas échapper les caractères /.
- JSON_UNESCAPED_UNICODE : Encode les caractères multi-octets Unicode littéralement (le comportement par défaut est de les échapper, i.e. \uXXXX).
- Constantes pré-définies disponibles depuis PHP 5.4.0 :
- Systèmes de fichiers - Les dossiers
- Constantes pré-définies disponibles depuis PHP 5.4.0 :
- les variables SCANDIR_SORT_ASCENDING, SCANDIR_SORT_DESCENDING et SCANDIR_SORT_NONE pour ordonner la liste les fichiers et dossiers dans un dossier avec scandir
- Constantes pré-définies disponibles depuis PHP 5.4.0 :
- Autre
- Ajout du support d'ordonnancement SORT_NATURAL et SORT_FLAG_CASE dans les fonction de tr des tableau (sort, rsort, ksort, krsort, asort, arsort and array_multisort)
Les versions
Les versions de PHP5.4.x et son avancement sur :
- PHP_5_4/NEWS ou PHP/NEWS
- upgrading guide - PHP 5.4 UPGRADE NOTES
- PHP Quality Assurance Team Web Page
- Téléchargement des dernières compilations instantanés : PHP 5.4 Snapshots
- PHP 5.4.37 est disponible depuis le 22/01/2015, voyez la liste complète des changements de PHP 5.4.37
- PHP 5.4.36 est disponible depuis le 18/12/2014, voyez la liste complète des changements de PHP 5.4.36
- PHP 5.4.35 est disponible depuis le 13/11/2014, voyez la liste complète des changements de PHP 5.4.35
- PHP 5.4.34 est disponible depuis le 16/10/2014, voyez la liste complète des changements de PHP 5.4.34
- PHP 5.4.33 est disponible depuis le 18/09/2014, voyez la liste complète des changements de PHP 5.4.33
- PHP 5.4.32 est disponible depuis le 21/08/2014, voyez la liste complète des changements de PHP 5.4.32
- PHP 5.4.31 est disponible depuis le 24/07/2014, voyez la liste complète des changements de PHP 5.4.31
- PHP 5.4.30 est disponible depuis le 29/05/2014, voyez la liste complète des changements de PHP 5.4.30
- PHP 5.4.29 est disponible depuis le 29/05/2014, voyez la liste complète des changements de PHP 5.4.29
- PHP 5.4.28 est disponible depuis le 01/05/2014, voyez la liste complète des changements de PHP 5.4.28
- PHP 5.4.27 est disponible depuis le 03/04/2014, voyez la liste complète des changements de PHP 5.4.27
- PHP 5.4.26 est disponible depuis le 07/03/2014, voyez la liste complète des changements de PHP 5.4.26
- PHP 5.4.25 est disponible depuis le 06/02/2014, voyez la liste complète des changements de PHP 5.4.25
- PHP 5.4.24 est disponible depuis le 17/10/2013, voyez la liste complète des changements de PHP 5.4.24
- PHP 5.4.21 est disponible depuis le 17/10/2013, voyez la liste complète des changements de PHP 5.4.21
- PHP 5.4.20 est disponible depuis le 19/09/2013, voyez la liste complète des changements de PHP 5.4.20
- PHP 5.4.19 est disponible depuis le 22/08/2013, voyez la liste complète des changements de PHP 5.4.19
- PHP 5.4.18 est disponible depuis le 15/08/2013, voyez la liste complète des changements de PHP 5.4.18
- PHP 5.4.17 est disponible depuis le 04/07/2013, voyez la liste complète des changements de PHP 5.4.17
- PHP 5.4.16 est disponible depuis le 06/06/2013, voyez la liste complète des changements de PHP 5.4.16
- PHP 5.4.15 est disponible depuis le 09/05/2013, voyez la liste complète des changements de PHP 5.4.15
- PHP 5.4.14 est disponible depuis le 11/04/2013, voyez la liste complète des changements de PHP 5.4.14
- PHP 5.4.13 est disponible depuis le 14/03/2013, voyez la liste complète des changements de PHP 5.4.13
- PHP 5.4.12 est disponible depuis le 21/02/2013, voyez la liste complète des changements de PHP 5.4.12
- PHP 5.4.11 est disponible depuis le 17/01/2013, voyez la liste complète des changements de PHP 5.4.11
- PHP 5.4.10 est disponible depuis le 20/12/2012, voyez la liste complète des changements de PHP 5.4.10
- PHP 5.4.9 est disponible depuis le 22/11/2012, voyez la liste complète des changements de PHP 5.4.9
- PHP 5.4.8 est disponible depuis le 18/10/2012, voyez la liste complète des changements de PHP 5.4.8
- PHP 5.4.7 est disponible depuis le 13/09/2012, voyez la liste complète des changements de PHP 5.4.7
- PHP 5.4.6 est disponible depuis le 16/08/2012, voyez la liste complète des changements de PHP 5.4.6
- PHP 5.4.5 est disponible depuis le 19/07/2012, voyez la liste complète des changements de PHP 5.4.5
- PHP 5.4.4 est disponible depuis le 14/06/2012, voyez la liste complète des changements de PHP 5.4.4
- PHP 5.4.3 est disponible depuis le 08/05/2012, voyez la liste complète des changements de PHP 5.4.3
- PHP 5.4.2 est disponible depuis le 03/05/2012, voyez la liste complète des changements de PHP 5.4.2
- PHP 5.4.1 est disponible depuis le 26/04/2012, voyez la liste complète des changements de PHP 5.4.1
- PHP 5.4.0 est disponible depuis le 01/03/2012, voyez la liste complète des changements de PHP 5.4.0
PHP 5.4.0 (beta)
PHP 5.4.0 beta 1
Disponible en "Beta Releases" depuis le 27/09/2011, PHP 5.4.0 beta1 apporte les changements suivants : list of changes : ChangeLog PHP 5.4.0 b1
- General improvements: . Removed the timezone guessing algorithm in case the timezone isn't set with date.timezone or date_default_timezone_set(). Instead of a guessed timezone, "UTC" is now used instead. - Improved MySQL extensions: . ext/mysql, mysqli and pdo_mysql now use mysqlnd by default - Improved JSON extension: . Added new json_encode() option JSON_UNESCAPED_UNICODE. FR #53946
04 Aug 2011, PHP 5.4.0 Alpha 3
- Added features: . Short array syntax, see UPGRADING guide for full details - Removed features: . Removed magic_quotes_gpc, magic_quotes_runtime and magic_quotes_sybase ini options. get_magic_quotes_gpc, get_magic_quotes_runtime are kept but always return false, set_magic_quotes_runtime raises an E_CORE_ERROR.
20 Jun 2011, PHP 5.4.0 Alpha 1
- Changed default value of "default_charset" php.ini option from ISO-8859-1 to UTF-8 - Improved LDAP extension: . Added paged results support. FR #42060 - Improved MySQL extensions:nes) . PDO_mysql: Removed support for linking with MySQL client libraries older than 4.1
Historique de l'évolution vers PHP 5.4
PHP 5.4
Les notes du 20 mai 2010 ci-dessous sont prises à la réunion développeur tek | PHP à Chicago. Aucune des choses ci-dessous sont des décisions et si les éléments pertinents seront déplacés vers les pages pertinentes todo.
- Déplacer les extensions DB non maintenues vers PECL
- Faire de PDO l'interface de base de données principal
- Laisser : mysql, mysqli, pgsql, sqlite3, oci8
- Supprimer : pdo_dblib (not supported) (MS SQL Server - Microsoft SQL Server)
- mbstring + intégration du moteur surcharge de fonction devrait être supprimé dans PHP 6. Les fonctions de l'extension restent, maintenue apr Moriyoshi.
PHP-FPM - A simple and robust FastCGI Process Manager for PHP
Up until PHP 5.3.x, PHP-FPM was a patch for PHP4/5 to greatly improve PHP's FastCGI SAPI capabilities and administration. All the information below is still related to the patch. PHP 5.3.x is now inside of PHP core using SVN (most likely will be packaged officially in 5.4)
PHP version 5.4 inclura probablement le patch PHP-FPM dans le noyau
- (PHP with nginx is about to Become a Lot Easier)
- fcgi
- mod-fcgid
Encore des améliorations de performances pour PHP futur 04/05/2010
Le patch améliore sensiblement les recherches internes dans la table des constantes, les tableaux et la comparaison de chaines PHP. On annonce tout de même du +20-30% de moyenne (ouch!), ainsi qu'une consommation mémoire revue à la baisse. La prochaine mineure de PHP devrait intégrer toutes ces améliorations (en théorie, PHP5.4).
PHP 5.3.99-dev
Au 27 avril 2010, pour ceux qui ne suivent pas le développement PHP. Nous rétroportées les sondes DTraces de l'abandon branche PHP 6.0, vers le tronc de nouveaux PHP 5.3.99-dev. Il est appelé 5.3.99 parce que la communauté dev PHP n'a pas encore décidé sur un numéro de version (5.4 ou 6.0).