autoload et .htaccess
This commit is contained in:
parent
c964e6efc6
commit
41e1a58107
7
.htaccess
Normal file
7
.htaccess
Normal file
@ -0,0 +1,7 @@
|
||||
RewriteEngine On
|
||||
|
||||
# Empêcher la réécriture des fichiers existants
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
|
||||
# Si le fichier n'existe pas, rediriger vers public/index.php avec l'URL dans le paramètre "url"
|
||||
RewriteRule ^(.*)$ public/index.php?url=$1 [QSA,L]
|
@ -1 +1,36 @@
|
||||
<?php
|
||||
|
||||
spl_autoload_register(function ($className) {
|
||||
// Définir les mappings des namespaces vers leurs répertoires de base
|
||||
$namespaceMap = [
|
||||
'App\\Configure\\Routing\\' => __DIR__ . '/../routing/',
|
||||
];
|
||||
|
||||
// Parcourir les namespaces définis pour trouver une correspondance
|
||||
foreach ($namespaceMap as $namespacePrefix => $baseDir) {
|
||||
// Vérifier si la classe utilise le préfixe du namespace
|
||||
if (strpos($className, $namespacePrefix) !== 0) {
|
||||
continue; // Passer à la prochaine itération si aucun préfixe de namespace ne correspond
|
||||
}
|
||||
|
||||
// Retirer le préfixe du namespace pour obtenir le chemin relatif de la classe
|
||||
$relativeClass = substr($className, strlen($namespacePrefix));
|
||||
|
||||
// Convertir le chemin relatif en chemin de fichier
|
||||
$file = $baseDir . str_replace('\\', DIRECTORY_SEPARATOR, $relativeClass) . '.php';
|
||||
|
||||
// Vérifier si le fichier existe et l'inclure
|
||||
if (file_exists($file)) {
|
||||
require_once $file;
|
||||
return; // Sortir de la fonction dès que la classe est chargée
|
||||
}
|
||||
|
||||
// Si le fichier n'existe pas, lever une exception immédiatement
|
||||
error_log("Autoloader: Impossible de charger la classe '$className' - Fichier non trouvé : $file");
|
||||
throw new Exception("Autoloader: Fichier introuvable pour la classe '$className'.");
|
||||
}
|
||||
|
||||
// Si aucun namespace ne correspond, lever une exception
|
||||
error_log("Autoloader: Aucun mapping trouvé pour la classe '$className'.");
|
||||
throw new Exception("Autoloader: Aucun mapping de namespace trouvé pour la classe '$className'.");
|
||||
});
|
@ -1,35 +1,3 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Mon Portfolio</title>
|
||||
<link rel="stylesheet" href="../css/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div id="logo">
|
||||
<h1>SERMAND Maxim</h1>
|
||||
</div>
|
||||
<button id="menu-toggle" aria-expanded="false">☰</button>
|
||||
<nav id="navbar">
|
||||
<ul>
|
||||
<li><a href="index.php" class="active">Accueil</a></li>
|
||||
<li><a href="about.php">À propos</a></li>
|
||||
<li><a href="project.php">Projets</a></li>
|
||||
<li><a href="experience.php">Expériences</a></li>
|
||||
<li><a href="tech.php">Veilles technologiques</a></li>
|
||||
<li><a href="contact.php">Contacts</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<section>
|
||||
<h1>Bienvenue sur mon portfolio !</h1>
|
||||
<p>Découvrez mes compétences, mes projets et mon parcours.</p>
|
||||
</section>
|
||||
<footer>
|
||||
<p>© SERMAND Maxim, 2025. Tous droits réservés.</p>
|
||||
</footer>
|
||||
<script src="../js/script.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
|
||||
echo "Salut";
|
Loading…
x
Reference in New Issue
Block a user