Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2011, 19h17   #1
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 21
Points : 15
Points : 15
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 :
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 :

Citation:
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.
aldus_85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 20h47   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
t'es sur quelle OS ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 23h13   #3
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 21
Points : 15
Points : 15
Je suis sur Linux installé sur une Diskstation Synology. Du coup; les modules sont pré-installés comme dans une distribution.
aldus_85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 23h18   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 04h31   #5
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 21
Points : 15
Points : 15
Voici les infos :

Citation:
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'
Citation:
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
aldus_85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 10h41   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
fait un
Code :
var_dump(intl_get_error_message());
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 15h36   #7
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 21
Points : 15
Points : 15
J'ai fait cela ... et j'ai un truc inquiétant, que je ne sais ni interpréter ni bien sûr corriger :

Code :
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";
Citation:
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"
aldus_85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 15h43   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
a part mettre a jour ta version de PHP, je vois pas
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 18h54   #9
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 21
Points : 15
Points : 15
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 ?
aldus_85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 18h56   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
ç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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 20h42   #11
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 21
Points : 15
Points : 15
J'installe (péniblement !) Pear pour installer le module ...
aldus_85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 11h03   #12
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 21
Points : 15
Points : 15
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 :
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:

Citation:
"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 !!
aldus_85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 11h24   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
t'as installer ICU ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 14h49   #14
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 21
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 21
Points : 15
Points : 15
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:
Citation:
intl
Internationalization support enabled
version 1.1.0
ICU version 4.4.1
aldus_85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h06.


 
 
 
 
Partenaires

Hébergement Web