[mlfichadh] Non fonctionneemnt sous Windows de l'application

[ Thread Index | Date Index | More lists.tuxfamily.org/mlfichadh Archives ]


Bonjour,

Depuis quelques temps je testais le projet sous Linux et non sous Windows.
Je viens de refaire un essai sous easyPhp version 2.0b avec :
-Apache 2.2.3
-Php 5.2.0
-Mysql 5.0.27

J'ai un erreur dès le lancement sur l'appel à la fonction
posix_uname()
dans le module utility_fun.php, cette fonction ne sembla pas exister sous windows.

Message d'erreur complet :
"Fatal error
: Call to undefined function posix_uname() in E:\Web_Site\devfichadh\trunk\utility_fun.php on line 28"

Après consultation de la doc, je vous proose d'utiliser la constante  PHP_OS prévue à cet effet sous Php pour connaitre le système sous lequel tourne Php comme indiqué ci après :
function separateur() {
//    $uname = posix_uname();
    $uname = strtoupper(substr(PHP_OS, 0, 3));
//    if (strcmp($uname["sysname"], "Linux") == 0 or ! (strpos($uname["sysname"], "BSD") === False) or (strcmp($uname["sysname"], "Darwin") == 0))
    if ($uname=="WIN")
        $filesep = "\\";
    else
        $filesep = "/";
return($filesep);
 }

Après cette modif, je n'avais plus d'erreur a ce niveau, mais par contre les séparateurs de chemin posent problème car si ceux qui sont gérés par l'application sont bien convertis en fonction du besoin, ceux qui sont gérés en interne  dans la "base" (dans le cas de chemins en relatif) ne sont pas convertis.
J'ai donc remodifié la fonction separateur() pour qu'elle retourne toujours le même séparateur, et Oh miracle tout fonctionne correctement, ce qui confirme bien que l'on peut se passer de la gestion des séparateurs de fichiers, ils sont gérés en interne par APACHE.

Derniere fonction utilisée en local (sans "commit" à ce jour !)
function separateur() {
//    $uname = posix_uname();
    $uname = strtoupper(substr(PHP_OS, 0, 3));
//    if (strcmp($uname["sysname"], "Linux") == 0 or ! (strpos($uname["sysname"], "BSD") === False) or (strcmp($uname["sysname"], "Darwin") == 0))
    if ($uname==="WIN")
//        $filesep = "\\";
        $filesep = "/"; // même séparateur que dans le monde Linux ou Unix
    else
        $filesep = "/";
return($filesep);
 }

Il ne reste plus qu'a faire la modif dans toutes les branches....Je propoe de virer le branche "Bug5" devenue inutile.

A+



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/