Bonjour,

je vais essayer d'être le plus clair possible.

Voici l'architecture de mon site: a la racine de mon site, j'ai une page pour ma connexion a ma bdd qui s'appelle "core.php"

try{
    $bdd = new PDO('mysql:host=localhost;dbname=entouteautonomie', 'root', '');
    $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
    $bdd->exec('SET NAMES utf8');
} catch (Exception $e){
    echo 'Impossible de se connecter à la base de donnée';
    echo $e->getMesage();
    die();
}
        require("model/model.php");

. Ensuite j'ai un dossier "Model" pour mes class.

Jusque la tout fonctionne.

J'ai également un dossier "Admin" pour administrer le site. A partir de la je voudrais faire appel a ma class Model mais cela ne fonctionne pas.

Bizarrement j'ai mon header qui est dupliquer 2 fois et j'ai cette erreur " Fatal error: Cannot redeclare class Model "

require'header.php';

require "../core.php";

$Newsletter = Model::load("newsletter");

Merci pour votre aide

5 réponses


iriven
Réponse acceptée

solution

if(!class_exists(Model)) require('model/model.php');

dans le fichier core.php

Il faudrait voir l'intégralité de tes fichiers, mais à coup sur c'est un "require" qui "boucle". Essaye d'utiliser plutôt un "require_once", qui évitera ce genre de redéclaration de class (que PHP n'autorise pas bien sur ^^)

Merci de votre aide

Pourquoi ne pas utiliser un require_once qui fait le taf à la place ?

T'as raison. Mais classement des inclusions par ordre de rapidité d' exécution:

include
require
include-once
require-once