Avec la mise à jour 1.7, le moteur de KwsPHP est prêt pour PHP 7.
L'API MySQL de connexion à la base de données étant abandonnée, nous nous sommes orientés vers l'API MySQLi.
Vous pouvez préparer une copie locale de vos thèmes et modules personnels afin de les rendre compatibles.
Pour vos modules personnels, vous devez appliquer 3 modifications :- Préfixer les fonctions mysql_ en Kws_mysql_
- Remplacer le sélecteur optionnel de mysql_fetch_array
- Remplacer TYPE= par ENGINE= dans les fichiers install.php et/ou install.sql
1) Préfixer les fonctions mysql_ en Kws_mysql_Nous avons créé des fonctions spécifiques au portail très proches de la syntaxe mysql.
En pratique, il suffit d'utiliser le préfixe Kws_.
Par exemple :
- mysql_fetch_assoc devient Kws_mysql_fetch_assoc
- mysql_num_rows devient Kws_mysql_num_rows
A noter que la fonction reqmysql ne change pas.2) Remplacer le sélecteur optionnel de mysql_fetch_arrayCette modification vous concerne si utilisez une syntaxe telle que $result =mysql_fetch_array($requete,MYSQL_ASSOC);
// $result et $requete étant le nom de vos variables et doit être adapté à votre code
Cette ligne doit être modifiée par exemple en $result = Kws_mysql_fetch_array($requete,'ASSOC' );
Le deuxième paramètre est optionnel et peut prendre la valeur 'ASSOC' ou 'NUM'
Si 'ASSOC', le tableau ne comportera que les indices associatifs
Si 'NUM', le tableau ne comportera que les indices numériques
En cas d'omission, le tableau associatif comportera les indices associatifs et les indices numériques
3) Remplacer TYPE= par ENGINE= dans les fichiers install.php et/ou install.sqlLa syntaxe sql a été modifiée depuis plusieurs versions. Le moteur s'occupe toujours de remplacer automatiquement TYPE= par ENGINE=.
Ce ne sera plus le cas à l'avenir et pour être compatibles, vos modules ne doivent plus utiliser TYPE=
Par exemple : CREATE TABLE IF NOT EXISTS `mon_module_table` (....) ENGINE=MyISAM;
Pour adapter vos thèmes :Vous devez préfixer toutes les fonctions mysql_ en Kws_mysql_
Les fichiers concernés sont au moins le header.php et fin.php de votre thème.