Commit f110639b authored by Julien Ait azzouzene's avatar Julien Ait azzouzene
Browse files

🚧 ajout des fichiers du modèle pour les recettes

parent f338837e
Loading
Loading
Loading
Loading

.env

0 → 100644
+7 −0
Original line number Diff line number Diff line
# Informations de connection
DB_TYPE=<oracle/mysql>
DB_HOST=<hôte>
DB_PORT=<port>
DB_USER=<utilisateurSGBD>
DB_PASS=<motDePasseSGBD>
DB_NAME=<nomBaseDeDonnées>
+0 −2
Original line number Diff line number Diff line
#Variables d'environnement
.env
 No newline at end of file

src/lib/database.php

0 → 100644
+41 −0
Original line number Diff line number Diff line
<?php

declare(strict_types=1);

function chargerDotenv($path)
{
    $lignes = file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    foreach ($lignes as $line) {
        if (strpos($line, '=') !== false) {
            list($key, $value) = explode('=', $line, 2);
            $_ENV[$key] = $value;
            putenv("$key=$value");
        }
    }
}

abstract class ConnectionBdd {
    private static ?PDO $instance = null;

    public static function getInstance(): PDO{
        if (self::$instance === null) {
            self::$instance = self::connecterBdd();
        }

        return self::$instance;
    }

    private static function connecterBdd(): PDO{
        chargerDotenv('.env');

        $type = getenv('DB_TYPE');
        $host = getenv('DB_HOST');
        $port = getenv('DB_PORT');
        $user = getenv('DB_USER');
        $password = getenv('DB_PASS');
        $db_name = getenv('DB_NAME');
        $charset = "utf8";

        return new PDO("$type:host=$host;port=$port;dbname=$db_name;charset=$charset", $user, $password);
    }
}
 No newline at end of file

src/model/manager.php

0 → 100644
+34 −0
Original line number Diff line number Diff line
<?php

declare(strict_types=1);

require_once 'src/lib/database.php';

abstract class Manager{
    protected PDO $bdd;

    public function __construct(){
        $this->bdd = ConnectionBdd::getInstance();
    }

    public function projectionBdd(string $requete): array{
        $lignes = [];

        $statement =  $this->bdd->query($requete);

        var_dump($statement);

        while($ligne = $statement->fetch()){
            $lignes[] = $ligne;
        }

        return $lignes;
    }

    public function requetePrepare(string $requete, array $parametres): int{
        $statement = $this->bdd->prepare($requete);
        $statement->execute($parametres);

        return $statement->rowCount();
    }
}
 No newline at end of file

src/model/model.php

deleted100644 → 0
+0 −8
Original line number Diff line number Diff line
<?php

// Un modèle se charge du CRUD (Create Read Update Delete).

// On mettra ici des classes pour représenter les données (entités)
// et des classes qui se charge des requêtes SQL (les Manager)

// Ici il y a rien car on a pas encore de données...
 No newline at end of file
Loading