IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Module intl installé mais non fonctionnel


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 29
    Points
    29
    Par défaut Module intl installé mais non fonctionnel
    Bnnjour !

    J'ai installé le module "intl", j'ai vérifié qu'il était bien compilé mais dès que j'essaie de l'utiliser, il me crée des NULL au lieu des objets IntlDateFormatter ce qui fait planter la suite des opérations.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    echo "<BR/>\n<BR/>\nTest IntlDateFormatter !<BR/>\n<BR/>\n";
     
    if (!extension_loaded('intl')) {
        die("intl n'est pas disponible ! Vous devez en activer le support en ajoutant cette extension et/ou en recompilant PHP.");
    } else {
        echo 'Extension intl trouvée.'."<BR/>\n<BR/>\n";
    }
     
     
    echo "La fonction 'datefmt_create' existe-t-elle ? : ";
    if (function_exists('datefmt_create')) {
    	echo "oui !<BR/>\n";
    	} else {
    	echo "non !<BR/>\n";
    	}
     
    $f = new IntlDateFormatter('fr_FR', IntlDateFormatter::FULL, IntlDateFormatter::FULL);
    echo 'type de $f : '.gettype($f)."<BR/>\n<BR/>\n";
    echo $f->format(time())."<BR/>\n<BR/>\n";
    donne pour résultat :

    Test IntlDateFormatter !

    Extension intl trouvée.

    La fonction 'datefmt_create' existe-t-elle ? : oui !
    type de $f : NULL

    Fatal error: Call to a member function format() on a non-object in /volume1/web/phpinfo.php on line 141
    Pourquoi ai-je résultat étonnant d'un module installé mais non fonctionnel ? Y a-t-il des dépendances ou des éléments à configurer pour que le module marche ?

    Merci d'avance de vos lumières.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    t'es sur quelle OS ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Je suis sur Linux installé sur une Diskstation Synology. Du coup; les modules sont pré-installés comme dans une distribution.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par aldus_85 Voir le message
    Je suis sur Linux.
    oui mais quelle distrib et quelle version ?

    montre le tableau correspondant a intl de ton phpinfo

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Voici les infos :

    PHP Logo
    PHP Version 5.3.6

    System Linux DiskStation 2.6.32.12 #1944 Mon Oct 24 18:50:26 CST 2011 armv5tel
    Build Date Oct 24 2011 18:36:04
    Configure Command './configure.syno' '--host=armle-unknown-linux' '--target=armle-unknown-linux' '--build=i686-pc-linux' '--enable-intl=shared' '--with-icu-dir=/source/icu-4.4.1' '--with-ldap=shared,/usr/syno' '--with-ldap-sasl=/usr/syno' '--prefix=/usr/syno/php' '--with-apxs2=/usr/syno/apache/bin/apxs' '--disable-cgi' '--with-config-file-path=/usr/syno/etc' '--with-config-file-scan-dir=/usr/syno/etc/php' '--with-libxml-dir=/usr/syno' '--with-bz2=/usr/local/arm-none-linux-gnueabi' '--with-zlib=shared,/usr/local/arm-none-linux-gnueabi' '--enable-bcmath=shared' '--enable-syno_compiler=shared' '--enable-calendar=shared' '--with-curl=shared,/usr/syno' '--enable-dba=shared' '--enable-exif=shared' '--enable-ftp=shared' '--with-gd=shared' '--with-jpeg-dir=/usr/local/arm-none-linux-gnueabi' '--with-png-dir=/usr/local/arm-none-linux-gnueabi' '--with-freetype-dir=/usr/syno' '--enable-gd-native-ttf' '--with-gettext=shared' '--with-iconv=shared,/usr/syno/libiconv' '--with-imap=shared,/source/imap-2007e' '--enable-mbstring=shared' '--with-mcrypt=shared,/usr/syno' '--with-mysql=shared,/usr/syno/mysql' '--with-mysqli=shared,/usr/syno/mysql/bin/mysql_config' '--with-openssl=shared,/usr/syno' '--with-pdo-mysql=shared,/usr/syno/mysql' '--with-pdo-pgsql=shared,/usr/syno/pgsql' '--with-pgsql=shared,/usr/syno/pgsql' '--disable-phar' '--enable-shmop=shared' '--enable-soap=shared' '--enable-sockets=shared' '--enable-wddx=shared' '--with-xmlrpc=shared' '--enable-zip=shared' '--with-sqlite3=static,/usr/syno/sqlite3' '--with-pdo-sqlite=static,/usr/syno/sqlite3'
    intl
    Internationalization support enabled
    version 1.1.0
    ICU version 4.4.1

    Directive Local Value Master Value
    intl.default_locale no value no value
    intl.error_level 0 0

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump(intl_get_error_message());

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    J'ai fait cela ... et j'ai un truc inquiétant, que je ne sais ni interpréter ni bien sûr corriger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    echo "Set locale_set_default()<BR/>\n";
    locale_set_default('fr');
     
    echo "intl_get_error_message() : ";
    echo var_dump(intl_get_error_message())."<BR/>\n<BR/>\n";
     
    echo '$f = new IntlDateFormatter'."<BR/>\n";
    $f = new IntlDateFormatter('fr_FR', IntlDateFormatter::FULL, IntlDateFormatter::FULL);
     
    echo "intl_get_error_message() : ";
    echo var_dump(intl_get_error_message())."<BR/>\n<BR/>\n";
    Set locale_set_default()
    intl_get_error_message() : string(12) "U_ZERO_ERROR"

    $f = new IntlDateFormatter
    intl_get_error_message() : string(73) "datefmt_create: date formatter creation failed: U_MEMORY_ALLOCATION_ERROR"

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    a part mettre a jour ta version de PHP, je vois pas

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Cela vient-il du PHP ou seulement de l'extension ?
    Je ne maitrise pas la version de PHP installée qui a l'air assez à jour.
    Pour le module "intl", y a-t-il possibilité de le changer ? en recopiant le fichier intl.so d'une autre source ou faut-il faire une installation en bonne et due forme ?

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    ça me semble possible puisque il est compiler en sharded, y'a donc moyen de le changer, chope les source de ta version sur php.net et ICU

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    J'installe (péniblement !) Pear pour installer le module ...

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Re-bonjour !

    Bon ben c'est pas simple !

    Je n'ai pas réussi à installer Pear, sûrement lié à un problème de Répertoires : le script PEAR ne trouve pas la commande qui va bien -> pas moyen de lancer PEAR

    Par ailleurs, je me suis aperçu que le petit bout de PHP plantait au niveau de la "collation" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $coll     = collator_create( 'en_RU' );
    echo var_dump(intl_get_error_message())."<BR/>\n<BR/>\n";
    //Résultat -> string(65) "collator_create: unable to open ICU collator: U_FILE_ACCESS_ERROR"
    donne:

    "collator_create: unable to open ICU collator: U_FILE_ACCESS_ERROR"
    ce qui m'oriente vers un problème de ICU pas ou mal installé. Il apparait dans le config de PHPInfo avec '--with-icu-dir=/source/icu-4.4.1' sauf que je n'arrive pas à localiser de fichiers "*ICU*" avec un find / -iname "*ICU*" ni même de répertoire "source" avec find / -iname "source" -type D.

    Bref çà progresse mais lentement ... et çà ne marche toujours pas !!

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    t'as installer ICU ?

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    ICU semble nécessaire à l'extension intl mais je ne l'ai pas installé moi-même.
    Cela apparaît dans le phpinfo et devait être présent dans la distribution installée sur le NAS Synology en même temps que PHP et tous les autres modules.

    C'est la version 4.4.1 qui semble installée.

    Source : phpinfo:
    intl
    Internationalization support enabled
    version 1.1.0
    ICU version 4.4.1

Discussions similaires

  1. timezone encodé mais non fonctionnel
    Par eki27 dans le forum Langage
    Réponses: 6
    Dernier message: 07/12/2012, 11h08
  2. Code fonctionnel sous eclipse mais non fonctionnel en jar
    Par hannibal.76 dans le forum Eclipse Java
    Réponses: 22
    Dernier message: 17/11/2011, 12h22
  3. [USB] Ports détectés mais non fonctionnels
    Par meksoft008 dans le forum Composants
    Réponses: 4
    Dernier message: 21/05/2007, 08h52
  4. IIS - Installé mais non actif ?
    Par yamadix dans le forum IIS
    Réponses: 1
    Dernier message: 26/11/2006, 21h28
  5. Disque dur installé mais "non visible"
    Par btdl79 dans le forum Composants
    Réponses: 4
    Dernier message: 12/09/2005, 20h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo