Bonsoir
Actuellement, j'ai mis au point un script awk et un script en Bourne Shell, capables de migrer pratiquement automatiquement, les fonctions type ereg ( ereg(), ereg_replace(), split() , mais pas spliti() ni cette toute dernière fonction dont le nom m'échappe... ;( ) vers les fonctions correspondantes de type PCRE ( preg_match(), et preg_split() ). Cà a l'air de fonctionner suffisamment pour mes besoins.
Je fais cela, pour rendre mon site ( local et remote sur mon ordinateur ), et aussi mon site partenaire ( sa copie sur mon ordinateur ), compatibles PHP 6. Actuellement, il sont seulement compatibles PHP 5.
Je vais bientôt passer à l'étape suivante : Migration des fonctions mysql_*() , vers l'interface objet PDO d'accès à MySQL.
J'utiliserai pour celà la même approche que pour la migration précédente : Un script en Bourne Shell récursif pour se positionner sur les sous-répertoires, et un script awk pour lire les lignes suivant certains patterns des fonctions à migrer, et remplaçant ces fonctions par leur équivalent en mode objet PDO, pour l'accès à la base de données MySQL.
Pour celà, j'ai besoin d'une information sur php, php 6 en particulier.
Tout d'abord, je n'utilise pas la classe PDO, mais une classe MyPDO surchargeant la fonction rowCount(), de manière à donner la possibilité de compter le nombre de lignes d'un résultat données par une fonction MyPDO::query()
Cette fonction rowCount() est la seule fonction surchargée, les autres fonctions sont donc héritées telles quelles, de la classe PDO.
Je cherche à garder la logique de modularisation du site partenaire à migrer.
Supposons une classe ( mettons de type MyPDO extends PDO ), instanciée en objet $conn donnant la référence avec laquelle on construit les requêtes ( $conn->query($sql) , $conn->exec($sql) ).
Les connexions à MySQL se font mettons avec la fonction aconnect(), et un objet ( la variable ) $conn, la fonction aconnect() est définie dans un script script_connexion.php inclus au début des scripts php, et contient l'instruction classique de connexion à MySQL façon PDO. ( $conn = new MyPDO( etc... ); , avec classique traitement d'erreur.
Cette fonction aconnect(void), instancifie donc l'objet $conn de type MyPDO, qui est global, et est utilisé dans les scripts, simplement en le déclarant global.
On a donc :
... Et à ce moment-là, l'objet $conn sera-t-il effectivement disponible pour des requêtes genre $conn->query($sql) ou $conn->exec($sql) ?
C'est ma première question.
Ma deuxième question, c'est de savoir si l'objet $conn, instancifié dans le corps du script php ( aconnect(); ) sera aussi disponible dans une fonction ou $conn est délaré global ?
Par exemple :
Ma question : $conn sera-t-il disponible pour des requêtes
de type $conn->query($sql) ou $conn->exec($sql) ?
}
Enfin, ma dernière question, c'est de savoir si c'est aussi le cas ( $conn disponible pour des requêtes ) si la fonction example() est déclarée avant le déclenchement de aconnect(); , mais que la fonction aconnect() est déclenchée avant l'appel à la fonction example()?
Merci beaucoup de vos réponses.
Bien à vous.
Amicalement.
Jean-François Ortolo
Actuellement, j'ai mis au point un script awk et un script en Bourne Shell, capables de migrer pratiquement automatiquement, les fonctions type ereg ( ereg(), ereg_replace(), split() , mais pas spliti() ni cette toute dernière fonction dont le nom m'échappe... ;( ) vers les fonctions correspondantes de type PCRE ( preg_match(), et preg_split() ). Cà a l'air de fonctionner suffisamment pour mes besoins.
Je fais cela, pour rendre mon site ( local et remote sur mon ordinateur ), et aussi mon site partenaire ( sa copie sur mon ordinateur ), compatibles PHP 6. Actuellement, il sont seulement compatibles PHP 5.
Je vais bientôt passer à l'étape suivante : Migration des fonctions mysql_*() , vers l'interface objet PDO d'accès à MySQL.
J'utiliserai pour celà la même approche que pour la migration précédente : Un script en Bourne Shell récursif pour se positionner sur les sous-répertoires, et un script awk pour lire les lignes suivant certains patterns des fonctions à migrer, et remplaçant ces fonctions par leur équivalent en mode objet PDO, pour l'accès à la base de données MySQL.
Pour celà, j'ai besoin d'une information sur php, php 6 en particulier.
Tout d'abord, je n'utilise pas la classe PDO, mais une classe MyPDO surchargeant la fonction rowCount(), de manière à donner la possibilité de compter le nombre de lignes d'un résultat données par une fonction MyPDO::query()
Cette fonction rowCount() est la seule fonction surchargée, les autres fonctions sont donc héritées telles quelles, de la classe PDO.
Je cherche à garder la logique de modularisation du site partenaire à migrer.
Supposons une classe ( mettons de type MyPDO extends PDO ), instanciée en objet $conn donnant la référence avec laquelle on construit les requêtes ( $conn->query($sql) , $conn->exec($sql) ).
Les connexions à MySQL se font mettons avec la fonction aconnect(), et un objet ( la variable ) $conn, la fonction aconnect() est définie dans un script script_connexion.php inclus au début des scripts php, et contient l'instruction classique de connexion à MySQL façon PDO. ( $conn = new MyPDO( etc... ); , avec classique traitement d'erreur.
Cette fonction aconnect(void), instancifie donc l'objet $conn de type MyPDO, qui est global, et est utilisé dans les scripts, simplement en le déclarant global.
On a donc :
Code:
<?php
include("script_connexion.php");
global $conn;
aconnect();
... Et à ce moment-là, l'objet $conn sera-t-il effectivement disponible pour des requêtes genre $conn->query($sql) ou $conn->exec($sql) ?
C'est ma première question.
Ma deuxième question, c'est de savoir si l'objet $conn, instancifié dans le corps du script php ( aconnect(); ) sera aussi disponible dans une fonction ou $conn est délaré global ?
Par exemple :
Code:
<?php
include("script_connexion.php");
global $conn;
aconnect();
function example() {
global $conn;
Ma question : $conn sera-t-il disponible pour des requêtes
de type $conn->query($sql) ou $conn->exec($sql) ?
}
Enfin, ma dernière question, c'est de savoir si c'est aussi le cas ( $conn disponible pour des requêtes ) si la fonction example() est déclarée avant le déclenchement de aconnect(); , mais que la fonction aconnect() est déclenchée avant l'appel à la fonction example()?
Merci beaucoup de vos réponses.
Bien à vous.
Amicalement.
Jean-François Ortolo