Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:phpdoc

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
php:phpdoc [2016/07/13 08:34]
webproducer angelegt
php:phpdoc [2022/07/06 16:24] (aktuell)
webproducer PHPDoc mit PHP auslesen
Zeile 10: Zeile 10:
  
 ^ Syntax ^ Beispiel ^ Beschreibung ^ ^ Syntax ^ Beispiel ^ Beschreibung ^
 +| @deprecated Version Beschreibung | @deprecated 1.0 wird durch getCount() abgelöst | Kennzeichnet eine Methode als "​veraltet"​ |
 | @param Typ Variable Beschreibung | @param string $username Benutzername | Definiert den Parameter einer Funktion/​Methode | | @param Typ Variable Beschreibung | @param string $username Benutzername | Definiert den Parameter einer Funktion/​Methode |
 | @return Typ Beschreibung | @return PDO Datenbankverbindung | Definiert den Rückgabewert einer Funktion/​Methode | | @return Typ Beschreibung | @return PDO Datenbankverbindung | Definiert den Rückgabewert einer Funktion/​Methode |
-| @var Type Variable Beschreibung | @var int Anzahl | Legt den Typ einer Variable fest |+| @var Typ Variable Beschreibung | @var int Anzahl | Legt den Typ einer Variable fest 
 +| @method Typ Methode | @method string getRufnummer | Ergänzt eine Klasse um eine Methode, die z. B. durch die [[magische_methoden#​funktion_call|Magische Funktion "​__call"​]] aufgerufen wird | 
 +| @inheritDoc | @inheritDoc | Übernimmt die Beschreibung vom Interface oder von Elternklassen ​|
  
 Mögliche Typen Mögliche Typen
Zeile 22: Zeile 25:
   * void   * void
   * Namen einer PHP-Klasse (z. B. PDO)   * Namen einer PHP-Klasse (z. B. PDO)
 +  * null (nur als Rückgabewert bei @return möglich)
  
 Hinweise: Es ist auch die Angabe von mehreren Typen möglich. Diese werden dann durch einen senkrechten Strich "​|"​ getrennt. Durch ein nachstehendes [] wird deklariert, dass der vorangestellte Typ innerhalb eines Arrays ausgeliefert wird. Hinweise: Es ist auch die Angabe von mehreren Typen möglich. Diese werden dann durch einen senkrechten Strich "​|"​ getrennt. Durch ein nachstehendes [] wird deklariert, dass der vorangestellte Typ innerhalb eines Arrays ausgeliefert wird.
Zeile 35: Zeile 39:
  
 In diesem Beispiel wird von der Funktion die ID einer Gruppe als integer erwartet. Als Rückgabewert wird ein Array mit Objekten der Klasse "​user"​ zurückgegeben. Dank dieser Dokumentation "​weiss"​ die Entwicklungsumgebung,​ dass die Objekte in dem zurückgegebenen Array von der Klasse "​user"​ sind und stellt die Variablen und Methoden dieser Klasse bei der Autovervollständigung zur Verfügung. In diesem Beispiel wird von der Funktion die ID einer Gruppe als integer erwartet. Als Rückgabewert wird ein Array mit Objekten der Klasse "​user"​ zurückgegeben. Dank dieser Dokumentation "​weiss"​ die Entwicklungsumgebung,​ dass die Objekte in dem zurückgegebenen Array von der Klasse "​user"​ sind und stellt die Variablen und Methoden dieser Klasse bei der Autovervollständigung zur Verfügung.
 +
 +----
 +
 +==== PHPDoc mit PHP auslesen ====
 +
 +In diesem Beispiel wird die Eigenschaft "​zeichenlaenge"​ für alle definierten Variablen dieser Klasse ausgegeben.
 +
 +//​Beispiel://​
 +
 +<code php>
 +<?php
 +
 +class Auftrag
 +{
 +    /**
 +     * @var $auftragsnummer
 +     * @zeichenlaenge 25
 +     */
 +    private $auftragsnummer;​
 +
 +    /**
 +     * @param string $memo
 +     * @return array
 +     * @throws \ReflectionException
 +     */
 +    public function getProperties( $variable )
 +    {
 +        $result = [];
 +
 +        $pdpDoc = new \ReflectionClass( $this );
 +        $vars = get_object_vars( $this );
 +
 +        foreach( $vars as $property=>​$var )
 +        {
 +            $comments ​  = $pdpDoc->​getProperty( $property ) -> getDocComment();​
 +            $pattern ​   = sprintf( '/@%s ([0-9]*)/',​ $variable );
 +            $length ​    = preg_match( $pattern, $comments, $matches );
 +
 +            if( $length === 1 ) {
 +                $result[$property] = $matches[1];​
 +            }
 +        }
 +
 +        return $result;
 +    }
 +}
 +
 +$test = new Auftrag;
 +$zeichenlaengen = $test->​getProperties( '​zeichenlaenge'​ );
 +print_r( $zeichenlaengen );
 +</​code>​
php/phpdoc.1468391671.txt.gz · Zuletzt geändert: 2016/07/13 00:00 (Externe Bearbeitung)