par
zigz4g » 13 mars 2006, 15:56
Salut.
Quelqu'un a-t-il déjà utilisé la SPL pour les fichiers ??? J'essaye de comprendre comment les méthodes fonctionnent mais pour l'instant setInfoClass() et getFileInfo() me retournent cette erreur :
Code : Tout sélectionner
Warning: SplFileInfo::setInfoClass(): bad type specifier while parsing parameters
Dans la documentation, il demande un paramètre optionnel. Voici le prototype :
J'ai essayé de mettre le nom de la classe "SplFileObject" mais le résultat est le même.
J'ai ensuite regarder dans le code source de la SPL (le code en C). Ils font quelque chose que je ne comprend pas qui parait incohérent.
Code : Tout sélectionner
/* {{{ proto SplFileObject SplFileInfo::setInfoClass([string class_name])
Class to use in getFileInfo(), getPathInfo(), getSubPathInfo() */
SPL_METHOD(SplFileInfo, setInfoClass)
{
spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zend_class_entry *ce = spl_ce_SplFileInfo;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == FAILURE) {
return;
}
intern->file_class = ce;
}
Si l'on regarde bien ce bout de code, et surtout le if () sur le zend_parse_parameters le deuxième paramètre ("|C") n'est pas dans la documentation de PHP (dans les sources, le fichier README.PARAMETER_PARSING_API).
Je vous demande votre avis avant de me lancer dans un report de bugs.
------------------------------
Pour information : PHP version 5.1.2
------------------------------
Salut.
Quelqu'un a-t-il déjà utilisé la SPL pour les fichiers ??? J'essaye de comprendre comment les méthodes fonctionnent mais pour l'instant setInfoClass() et getFileInfo() me retournent cette erreur :
[code]
Warning: SplFileInfo::setInfoClass(): bad type specifier while parsing parameters
[/code]
Dans la documentation, il demande un paramètre optionnel. Voici le prototype :
[code]setFileClass (string class_name="SplFileObject")[/code]
J'ai essayé de mettre le nom de la classe "SplFileObject" mais le résultat est le même.
J'ai ensuite regarder dans le code source de la SPL (le code en C). Ils font quelque chose que je ne comprend pas qui parait incohérent.
[code]
/* {{{ proto SplFileObject SplFileInfo::setInfoClass([string class_name])
Class to use in getFileInfo(), getPathInfo(), getSubPathInfo() */
SPL_METHOD(SplFileInfo, setInfoClass)
{
spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zend_class_entry *ce = spl_ce_SplFileInfo;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == FAILURE) {
return;
}
intern->file_class = ce;
}
[/code]
Si l'on regarde bien ce bout de code, et surtout le if () sur le zend_parse_parameters le deuxième paramètre ("|C") n'est pas dans la documentation de PHP (dans les sources, le fichier README.PARAMETER_PARSING_API).
Je vous demande votre avis avant de me lancer dans un report de bugs.
------------------------------
Pour information : PHP version 5.1.2
------------------------------