2011-05-07 6 views
33

Après avoir créé une méthode, j'utilise /**<enter> pour générer le DocBlock. Il remplit automatiquement les @param et @return pour cette fonction. Exemple:Comment personnaliser NetBeans PHP auto DocBlock pour les méthodes et les attributs?

/** 
* 
* @param type $str 
* @return type 
*/ 
public function strlen($str){ 
    return strlen($str); 
} 

Comment puis-je personnaliser le bloc généré afin qu'il remplisse également dans le @author et finissent avec ce après /**<enter>

/** 
* 
* @param type $str 
* @return type 
* @author John Doe <[email protected]> 
*/ 
public function strlen($str){ 
    return strlen($str); 
} 

Merci

+0

Je n'ai vu aucune option pour cela, et vous ne pouvez pas non plus l'ajouter manuellement avec des modèles de code car ils ne fonctionneront pas dans les commentaires. Je serais intéressé de savoir s'il y a un moyen de le faire. – Fanis

+6

Je n'ai aucune idée, ** MAIS ** vous pourriez, en attendant, utiliser des macros pour le faire. J'ai les macros '@ copyright' et' @ author' quand je cours les classes de docblocking. Je suggère également '@ author''ing la classe, plutôt que chaque méthode individuelle. – ShotgunToothpaste

+0

@ Shadower856 Je n'avais même pas remarqué les capacités des macros en 2 ans d'utilisation de netbeans! J'ai utilisé des modèles de code, mais ceux-ci ne fonctionneront pas en dehors des zones de code .. Astuce – Fanis

Répondre

5

Il peut y avoir un meilleur Pour ce faire, voici ce que j'ai utilisé: sous Outils> Options> Editeur> Modèles de code, il existe des combinaisons prédéfinies pour générer du code rapidement. Un des modèles par défaut dans 7.0 est:

vdoc<tab> 

Cela génère un pseudo-docblock et la définition de variable. Vous pouvez le remplacer et en ajouter de nouveaux qui s'étendront dans le texte que vous voulez, un peu comme les abréviations vim. Vous pouvez trouver plus sur ce sur le site de documentation Netbeans:

http://netbeans.org/kb/docs/php/code-templates.html#using-templates

4

Je crois que la réponse que vous cherchez sera trouvé ici: phpDocumentor Tutorial

Je pense que vous aurez envie de regarder le --customtags Commutateur de ligne de commande. Donc, très probablement, quand vous allez dans Outils -> Options -> "PHP" -> "PHPDoc", vous pouvez ajouter ce commutateur --customtags dans la ligne de script PHPDoc.

Je ne l'ai pas essayé personnellement, mais je joue avec l'idée d'utiliser NetBeans en combinaison avec docblocks et PHPDocumentor à « automagiquement » créer une bonne quantité de documentation utilisable sans être trop intense sur le reste des codeurs. ;-)

Il y a un tutoriel vidéo agréable sur la configuration NetBeans travailler avec PHPDocumentor ici: Generating PHP Documentation With NetBeans IDE 7.0

3

Pour activer une bonne étiquette @author autocomplétion, allez à: Outils-> Templates-> PHP-> PHP Classe, appuyez sur le bouton "Paramètres" et décommentez la ligne commençant par #user=. Vous pouvez maintenant modifier le nom et l'adresse électronique, qui sont transmis à votre commentaire de classe.

+0

Cela fonctionne pour la classe qui est utile, mais ne fonctionne pas pour les blocs de fonction doc qui est ce que le PO demande – icc97

0

Réponse courte de diverses sources: Non vous ne pouvez pas éditer un modèle qui pourrait l'ajouter pour vous.

  1. Si vous cherchez toujours une fonction aussi bien, vous pouvez créer une macro à faire et lier ensuite à un raccourci (par exemple « Alt + W »).

Pour créer un Macro: Outils -> Options -> Editeur -> Macros

Exemple:

Alt+W => insert-break "/**" insert-break 

Cette macro permet d'ajouter PHPDoc avec la main gauche qui le rend plus rapide.Vous pouvez générer tout ce que vous souhaitez générer, comme utiliser cette macro, puis placer le curseur au bon endroit, puis ajouter le @author YOUR_NAME à la fin du commentaire.


  1. Vous pouvez également définir le grand auteur de votre projet en allant à: Outils -> Modèles; Cliquez sur "Paramètres"

Ajouter la ligne:

user=YOUR NAME <email.prefix at domain.extension> 

Cela ajoutera le @author à toutes vos nouvelles définitions de classe/interface.

J'espère que cela va vous aider!

Questions connexes