Quelles sont les possibilités d'implémenter l'aide qui soulevera un journal des erreurs avec le niveau Par exemple pour le code P> lorsque vous appelez la méthode et oui, je sais que je pourrais ajouter un avertissement à l'aide de la ligne de code e_depecated code> (
e_user_depecated code> en fait) lorsque la méthode de classe avec annotation
@depecated code> est appelé?
$ obj-> Main () code> L'avertissement obsolète serait soulevé . P>
trigger_error () code>. P> p>
5 Réponses :
En bref: mettre Long: vous devez refléter la classe, récupérer le docommande, analyser et extraire le trigger_error () code> au début de la méthode. p>
@depecated code> -tag. Le problème est que vous devez le faire sur chaque appel de méthode em>, et même s'il existe un moyen facile d'attraper chaque appel, ce serait une énorme surcharge. P>
Il ne s'agit toujours pas de solution transparente ce que je cherche.
On dirait qu'il n'y a pas de réponse pour cela, donc je marquais cela comme la meilleure réponse.
Je sais que ce n'est pas si frais (comme par exemple en Java). Le problème est que PHP ne sait pas les annotations. Tout dans / ** * / code> sont des documents et certains outils sont capables de les analyser (puis de l'appeler "Annotation" ...). Son supplémentaire n'est pas possible de "voler" l'appel de la méthode (il y a un nom pour cela, je ne me souviens pas ...). Mais gardez-vous simplement à l'esprit: vous voulez supprimer la méthode plus tard de toute façon, une ligne de code supplémentaire ne blesse personne trop :)
e_depecated code> li>
ol>
2. n'a pas beaucoup de sens. e_dePratég code> et
e_user_depecated code> devrait informer un utilisateur, que i> sera supprimé.
C'est très important qu'il se concentre dessus. 1) S'il est un utilisateur d'une bibliothèque, il veut être averti. 2) S'il est l'écrivain, il veut prévenir ses utilisateurs. L'amorce est une question suffisante importante pour qu'il /e / a besoin de se concentrer sur celui-ci sinon l'application est brisée dans une mise à niveau.de.
Addendum pourrait aider, il ajoute des annotations à PHP. P>
Le problème ne lisait pas les annotations. Le problème est de déclencher l'erreur sur l'appel de la méthode obsolète.
Si vous êtes toujours intéressé par une réponse:
$text .= "\n"; $file = fopen('log/deprecated', 'a+'); fputs($file, $text, strlen($text)); fclose($file);
Il y a une RFC pour cela, mais en discussion: # [Aperçu] Attribut . Si accepté, vous pourrez faire cela, par exemple:
Deprecated: Function explode() is deprecated, use split() instead
Je n'ai pas compris l'utilisation des tiques dans PHP ( php.net/manual/fr/... ). Peut-être que c'est ce qui pourrait aider? Bien sûr, cela serait exécuté sur l'ordinateur de développement uniquement.
Avez-vous besoin de vérifier toujours les doctages de cette balise chaque fois que vous appelez la méthode ou que vous souhaitez analyser et ajouter le déclencheur une fois? Si c'est le premier, comme @KingCrunch a dit, vous serez foutu. L'analyse est une opération intensive de mémoire. Ce dernier pourrait être réalisable en fonction de si vous pouvez écrire ou trouver un analyseur pour le faire pour vous.
Oui, je comprends cela. Comme je l'ai dit, je souhaite l'utiliser sur la machine de développement que si la performance n'est pas si importante.