2009-12-22 4 views
5

Je rencontre des problèmes pour que phpdoc fonctionne correctement. Les documents sont générés pour la plupart avec succès, mais je reçois l'avertissement à plusieurs reprises suivantes:PHPDocumentor problème date warnings

Warning: date(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ' America/Los_Angeles ' for 'PST/-8.0/no DST' instead in /Users/ben/bin/PhpDocumentor/phpDocumentor/Converter.inc on line 5064

et

Warning: strftime(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ' America/Los_Angeles ' for 'PST/-8.0/no DST' instead in PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php on line 370

L'avertissement Smarty je pouvais facilement supprimer du code, car il est juste générer un horodatage en haut du modèle dans le document rendu. Pas de biggie. La première erreur dans le phpDocumentor dont je ne suis pas sûr. Il semble être juste une date à l'attribution Smarty pour le modèle:

$templ->assign("date",date("r",time())); 

Peut-être que je pourrais simplement supprimer toutes les variables « date » dans les modèles Smarty et cette ligne.

Quoi qu'il en soit, cet avertissement figure également dans les documents générés et la page d'index affiche simplement cet avertissement. Des idées ce qui se passe ici? J'utilise la version 1.4.3 et voici mes drapeaux/options:

#!/usr/bin/env bash 
phpdoc \ 
    --title 'Asra Documentation' \ 
    --directory library/Asra \ 
    --target docs \ 
    --defaultcategoryname Asra \ 
    --defaultpackagename Asra \ 
    --quiet on \ 
    --output HTML:frames:phpedit 

Répondre

7

Ceci est PHP 5.3 au travail. PHP 5.3+ exige que vous définissiez votre fuseau horaire, pour les raisons données (se fier aux paramètres du système est dangereux).

Si vous le pouvez, appelez date_default_timezone_set() dans votre fichier bootstrap/init/settings. Vous pouvez également specify it in an .htaccess file pour en faire un non-problème pour votre code, comme ceci:

php_value date.timezone America/Vancouver 
+1

Oui, c'est la raison exacte. @Typeoneerror: C'est un problème spécifique à PHP 5.3, pas le code PHP que vous utilisez actuellement. Vous pourriez avoir le même problème chaque fois que le code appelle une fonction PHP qui utilise le paramètre de fuseau horaire par défaut. – kiamlaluno

+0

Vous les gars rock. Je viens d'ajouter un appel à date_default .. dans le fichier phpdoc. Fixé. – typeoneerror

+2

Cela arrive également avec PHP 5.2, si votre error_reporting est défini sur E_ALL | E_STRICT – djn