Session BRE04 Help

Mettre en place la structure du projet

Créer le repository

Créer la base de données

Architecture de fichiers

- assets - javascript main.js - styles - sass style.scss - css style.css - controllers AbstractController.php DefaultController.php UserController.php - managers AbstractManager.php UserManager.php - models User.php - services Router.php - templates - front - errors not-found.html.twig home.html.twig layout.html.twig - admin layout.html.twig .env.example .gitignore composer.json index.php

Les contenus des fichiers

.env.example

# Database info DB_NAME="databasename" DB_USER="username" DB_PASSWORD="password" DB_CHARSET="utf8" DB_HOST="db.3wa.io"

composer.json

{ "autoload": { "classmap": [ "controllers/", "managers/", "models/", "services/" ] }, "require": { "vlucas/phpdotenv": "^5.6", "twig/twig": "^3.0" }, "require-dev": { "symfony/var-dumper": "^7.0" } }

Puis faire la commande

composer install

index.php

<?php // charge l'autoload de composer require "vendor/autoload.php"; // charge le contenu du .env dans $_ENV $dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->load();

controllers/AbstractController.php

abstract class AbstractController { private \Twig\Environment $twig; public function __construct() { $loader = new \Twig\Loader\FilesystemLoader('templates'); $twig = new \Twig\Environment($loader,[ 'debug' => true, ]); $twig->addExtension(new \Twig\Extension\DebugExtension()); $this->twig = $twig; } protected function render(string $template, array $data) : void { echo $this->twig->render($template, $data); } }

managers/AbstractManager.php

abstract class AbstractManager { protected PDO $db; public function __construct() { $connexion = "mysql:host=".$_ENV["DB_HOST"].";port=3306;charset=".$_ENV["DB_CHARSET"].";dbname=".$_ENV["DB_NAME"]; $this->db = new PDO( $connexion, $_ENV["DB_USER"], $_ENV["DB_PASSWORD"] ); } }

.gitignore

vendor/ .env composer.lock

Puis les commandes suivantes :

git add .gitignore git commit -m "add gitignore" git push

Créez ensuite un fichier .env avec les véritables informations de connexion à votre base de données :

# Database info DB_NAME="databasename" DB_USER="username" DB_PASSWORD="password" DB_CHARSET="utf8" DB_HOST="db.3wa.io"
18 August 2025