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 [2022/06/16 16:39]
webproducer @inheritDoc
php:phpdoc [2022/07/06 16:24] (aktuell)
webproducer PHPDoc mit PHP auslesen
Zeile 39: 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.1655390359.txt.gz · Zuletzt geändert: 2022/06/16 16:39 von webproducer