Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:phpdoc

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Both sides previous revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
php:phpdoc [2018/04/16 07:26]
webproducer Tabelle um "@method" ergänzt
php:phpdoc [2022/07/06 16:24] (aktuell)
webproducer PHPDoc mit PHP auslesen
Zeile 15: Zeile 15:
 | @var Typ 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 | | @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 38: 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.1523856363.txt.gz · Zuletzt geändert: 2018/04/16 00:00 (Externe Bearbeitung)