Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Il y a 3 ans, j'avais déjà initié un topic pour porter Punbb 1.2.24 en PHP 7.
Avec l'aide des uns et des autres, mon énorme forum a pu être porté en PHP 7. La partie la plus difficile ayant été le fichier parser.php.
Aujourd'hui, je fais les modifications pour un portage en PHP7.2.
Pour identifier les fichiers à modifier, j'ai utilisé la classe PHP Deprecated Function Checker, en complétant le fichier depcheck.csv comme suit :
"png2wbmp","",7,2,
"jpeg2wbmp","",7,2,
"__autoload","",7,2,
"create_function","",7,2,
"parse_str","",7,2,
"gmp_random","",7,2,
"each","",7,2,
"assert","",7,2,
"read_exif_data","",7,2,
Ainsi, j'ai pu identifier que la quasi totalité des modifications à réaliser concerne les instructions each qui sont présentes dans plusieurs fichiers.
Quand je vois :
while (list($key, $value) = each($_POST['form']))
Je remplace par :
foreach ($_POST['form'] as $key => $value)
Quand je vois :
while (list(, $temp) = @each($languages))
Je remplace par :
foreach ($languages as $temp)
Par contre, je ne sais pas remplacer ceci :
while (list($post_id,) = @each($result_list))
Je précise que je suis un développeur PHP du dimanche... J'ai appris uniquement à force de bidouillant Punbb...
Est-ce qu'une ame charitable pour me donner l'équivalence avec un foreach ?
Merci d'avance !
Hors ligne
Par contre, je ne sais pas remplacer ceci :
while (list($post_id,) = @each($result_list))
Bonjour,
Ayant déjà procédé aux remplacements nécessaires pour que ça puisse tourner avec PHP 8.0.3, je ne retrouve pas de quel fichier provient le code ci-dessus.
Merci d'indiquer le fichier d'origine.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Bonjour,
Merci de votre intérêt.
Dans le fichier search.php :
if ($match_type == 'and' && $word_count)
{
@reset($result_list);
while (list($post_id,) = @each($result_list))
{
if (!isset($row[$post_id]))
$result_list[$post_id] = 0;
}
}
Ayant déjà procédé aux remplacements nécessaires pour que ça puisse tourner avec PHP 8.0.3
Hum... Je me suis limité à 7.2, mais effectivement, c'est encore mieux de monter jusqu'à 8.0.3.
Est-ce que le travail a été conséquent ?
Dernière modification par punbbfan (09-03-2021 11:46:43)
Hors ligne
Voilà ce que j'ai :
if ($match_type == 'and' && $word_count)
{
foreach ($keyword_results as $post_id => $topic_id)
{
if (!isset($row[$post_id]))
{
unset($keyword_results[$post_id]);
unset($sort_data[$post_id]);
}
}
}
Entre ce qui avait été effectué pour PHP 7.2 et PHP 8.0.3, il y a eu peu de choses.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Ok. Merci pour vos réponses Otomatic.
Punbb 1.2 n'est pas mort.
Hors ligne
Pages : 1