Coucou,
j’ai fait quelques grep pour voir où SPIP en était dans ses contôles de version PHP.
1/ recherche des appels à phpversion()
grep -rin phpversion *
ecrire/inc/cookie.php:60: ($httponly and strnatcmp(phpversion(), ‘5.2.0’) >= 0) ?
ecrire/inc/filtres.php:4727: if (substr(phpversion(), 0, 5) == ‘5.4.0’ and !@gzinflate($env)) {
ecrire/inc/filtres_ecrire.php:454: if (version_compare(phpversion(), _PHP_MIN) == -1) {
ecrire/inc/filtres_ecrire.php:456: array(‘min’ => _PHP_MIN, ‘version’ => phpversion()));
ecrire/inc/install.php:169: $p = phpversion();
ecrire/inc/session.php:631: if (version_compare(phpversion(), ‘5.4.0’, ‘>=’)) {
ecrire/plugins/get_infos.php:128: $ret[‘procure’][‘php’] = array(‘nom’ => ‘php’, ‘version’ => phpversion());
plugins-dist/safehtml/lib/safehtml/classes/HTMLSax3/Decorators.php:75:if (version_compare(phpversion(), ‘4.3’, ‘<’) && !function_exists(‘html_entity_decode’) ) {
plugins-dist/safehtml/lib/safehtml/classes/HTMLSax3.php:223: if (version_compare(phpversion(), ‘4.3’, ‘ge’)) {
Selon moi, le test dans inc/cookie peut être supprimé.
dans inc/filtres_ecrire, je ne vois pas bien à quoi ça sert.
dans le plugin safehtml, il me semble qu’il faut plutôt chercher une alternative à cette lib.
c’est surtout dans inc/install que le boutot devrait se faire (la version minimum y est toujours 5.1.0 d’ailleurs…
2/ recherche de l’utilisation de _PHP_MIN :
grep -rn _PHP_MIN *
ecrire/inc/filtres_ecrire.php:454: if (version_compare(phpversion(), _PHP_MIN) == -1) {
ecrire/inc/filtres_ecrire.php:456: array(‘min’ => _PHP_MIN, ‘version’ => phpversion()));
ecrire/inc_version.php:36:define(’_PHP_MIN’, ‘5.3.0’);
idem pour inc/filtres-ecrire
ecrire/inc_version.php, OK.
3/ recherche de PHP_VERSION_ID :
grep -rn PHP_VERSION_ID *
ecrire/inc/flock.php:460: if (!defined(‘PHP_VERSION_ID’) || PHP_VERSION_ID < 50300) {
ecrire/inc/utils.php:2298: // PHP_VERSION_ID dispo depuis PHP 5.2.7
ecrire/inc/utils.php:2299: if (!defined(‘PHP_VERSION_ID’)) {
ecrire/inc/utils.php:2301: define(‘PHP_VERSION_ID’, ($version[0] * 10000 + $version[1] * 100 + $version[2]));
ecrire/inc/utils.php:2331: if (PHP_VERSION_ID<50300) {
les 2 tests dans in/utils ne sont plus nécessaires
dans inc/flock, c’est la fonction spip_clearstatcache qui n’est plus utile et qui pourrait être remplacée par la fonction native partout :
3bis/
grep -rn spip_clearstatcache *
ecrire/inc/filtres.php:5758: spip_clearstatcache(true, $filename); // eviter que PHP ne reserve le vieux timestamp
ecrire/inc/flock.php:459:function spip_clearstatcache($clear_realpath_cache = false, $filename = null) {
ecrire/inc/flock.php:474: spip_clearstatcache(true, $filepath);
plugins-dist/compresseur/inc/compresseur_concatener.php:139: spip_clearstatcache(true, $nom_tmp);
plugins-dist/compresseur/inc/compresseur_concatener.php:151: spip_clearstatcache(true, $nom);
plugins-dist/compresseur/inc/compresseur_minifier.php:300: spip_clearstatcache(true, $file);
4/ enfin, recherche de PHP_VERSION_ID :
grep -rn PHP_VERSION_ID *
ecrire/inc/flock.php:460: if (!defined(‘PHP_VERSION_ID’) || PHP_VERSION_ID < 50300) {
ecrire/inc/utils.php:2298: // PHP_VERSION_ID dispo depuis PHP 5.2.7
ecrire/inc/utils.php:2299: if (!defined(‘PHP_VERSION_ID’)) {
ecrire/inc/utils.php:2301: define(‘PHP_VERSION_ID’, ($version[0] * 10000 + $version[1] * 100 + $version[2]));
ecrire/inc/utils.php:2331: if (PHP_VERSION_ID<50300) {
idem que 3/
J’ai un patch tout prêt pour le core. Reste à savoir si le plugin compresseur (qui utilise spip_clearstatcache() supporterai l’appel natif dans une version antérieure à 3.2-dev
Des avis ?
Bisou,

