2024. október 10., csütörtök

13 B- PHPdoc kommentezés

 A PHPDoc egy dokumentációs szabvány, amely lehetővé teszi a kódolók számára, hogy pontosan kommentálják a PHP kódjukat, így más fejlesztők és maga a fejlesztő is könnyebben megérthesse a kód működését. Ezenkívül az IDE-k (például PHPStorm) és a dokumentációs eszközök automatikusan feldolgozhatják ezeket a kommenteket, hogy hasznos információkat nyújtsanak.

Kommentezés szintaxisa

A PHPDoc kommentek többsora zárójelben történik:

/**
 * Ez a komment leírja, hogy mit csinál a funkció.
 * További részletek is itt jelennek meg.
 */

Főbb PHPDoc annotációk

1.     @var Használat: Egy változó típusát és célját adja meg.
Formátum: @var típus $változónév
Példa:

/** @var int $age A felhasználó életkora. */
public $age;

2.     @param Használat: Egy függvény/módszer paramétereit dokumentálja.
Formátum: @param típus $paraméterLeírás
Példa:

/**
 * Kiszámítja a felhasználó életkorát.
 *
 * @param int $yearOfBirth A születési év.
 * @return int A felhasználó életkora.
 */
public function calculateAge($yearOfBirth) {
    return date('Y') - $yearOfBirth;
}

3.     @return
Használat: Egy függvény visszatérési értékét írja le.
Formátum: @return típus Leírás
Példa:

/**
 * @return string A felhasználó teljes neve.
 */
public function getFullName() {
    return $this->firstName . ' ' . $this->lastName;
}

4.     @method Használat: Egy osztály által dinamikusan elérhető függvényeket dokumentál.
Formátum: @method típus methodName(paramétertípus $paraméterLeírás)
Példa:

/**
 * @method void prepare(string $sql)
 * @method void bind_param(string $types, mixed ...$vars)
 */

5.     @property Használat: Egy osztály olyan tulajdonságait írja le, amelyeket nem közvetlenül definiáltak, de elérhetők dinamikusan.
Formátum: @property típus $tulajdonságLeírás
Példa:

/**
 * @property string $name A felhasználó neve.
 */

6.     @throws Használat: Ha egy függvény kivételt (exception) dobhat, dokumentálja, hogy melyik típusú kivétel dobható.
Formátum: @throws ExceptionTípus Leírás
Példa:

/**
 * @throws InvalidArgumentException Ha a bemeneti adat érvénytelen.
 */
public function setAge($age) {
    if ($age < 0) {
        throw new InvalidArgumentException('Érvénytelen életkor');
    }
}

7.     @deprecated Használat: Jelzi, hogy egy függvény, metódus, vagy tulajdonság elavult, és nem ajánlott a használata.
Formátum: @deprecated Leírás
Példa:

/**
 * @deprecated Ez a metódus elavult. Használja a getNewData() függvényt.
 */
public function getData() {
    // régi logika
}

Gyakran használt PHPDoc annotációk összefoglalása

  • @var: Egy változó típusát írja le.
  • @param: Függvény vagy metódus paramétereinek leírása.
  • @return: A visszatérési érték típusát és célját dokumentálja.
  • @method: Dinamikusan elérhető metódusok leírása.
  • @property: Olyan osztály tulajdonságait írja le, amelyeket dinamikusan lehet elérni.
  • @throws: Kivétel dobásának leírása.
  • @deprecated: Elavult kód jelölése.

Gyakorlati feladatok

1.     Annotációk azonosítása és helyes használata:

    • Írj egy egyszerű PHP osztályt, amely egy adatbázis csatlakozást és egy select() függvényt tartalmaz.
    • Kommentezd az osztályt PHPDoc annotációkkal, például @var, @param, @return és @throws.

2.     Dokumentáció generálása:

    • Használj eszközt (pl. phpDocumentor), hogy automatikusan generálj dokumentációt a kommentjeid alapján.

<?php

 

/**

 * Adatbázis kapcsolatot kezelő osztály.

 *

 * Ez az osztály kapcsolatot létesít egy MySQL adatbázissal,

 * és lehetővé teszi az SQL utasítások végrehajtását.

 */

class DatabaseConnection {

    /**

     * @var mysqli $connection A MySQL adatbázis kapcsolat objektuma.

     */

    private $connection;

 

    /**

     * Létrehozza az adatbázis kapcsolatot.

     *

     * @param string $host Az adatbázis kiszolgáló neve.

     * @param string $user Az adatbázis felhasználóneve.

     * @param string $password Az adatbázis felhasználó jelszava.

     * @param string $database Az adatbázis neve.

     *

     * @throws Exception Ha nem sikerül a kapcsolat létrehozása.

     */

    public function __construct($host, $user, $password, $database) {

        $this->connection = new mysqli($host, $user, $password, $database);

 

        if ($this->connection->connect_error) {

            throw new Exception('Kapcsolódási hiba: ' . $this->connection->connect_error);

        }

    }

 

    /**

     * Végrehajt egy SELECT lekérdezést és visszaadja az eredményt.

     *

     * @param string $sql A végrehajtandó SQL lekérdezés.

     * @param int $id A lekérdezésben használt azonosító.

     *

     * @return array A lekérdezés eredménye tömbként.

     */

    public function select($sql, $id) {

        $stmt = $this->connection->prepare($sql);

        $stmt->bind_param('i', $id);

        $stmt->execute();

        $result = $stmt->get_result();

 

        return $result->fetch_all(MYSQLI_ASSOC);

    }

    /**

     * Bezárja az adatbázis kapcsolatot.

     */

    public function close() {

        $this->connection->close();

    }

}

?>

  1. PHPDoc dokumentáció generálása

Ehhez a kódhoz használhatod a phpDocumentor nevű eszközt, amely automatikusan feldolgozza a PHPDoc stílusú kommenteket, és HTML alapú dokumentációt készít belőlük.

  • Telepítsd a phpDocumentor eszközt:

composer require --dev phpdocumentor/phpdocumentor

  • Futtasd a phpDocumentor-t a projekt könyvtárában:

./vendor/bin/phpdoc

Ez generál egy HTML fájlt, ahol a fenti kód dokumentációját szépen formázva megtekintheted.

Nincsenek megjegyzések:

Megjegyzés küldése

Norway_info Laravel REST API Jetstreammel (Livewire + MySQL)

Készítsünk egy olyan Laravel REST API-t, amely egy contents nevű adatbázistábla adatait kezeli (Create, Read, Update, Delete), és amelyet P...