Je tiens à préciser avant d'élucider mon problème, que je commence la poo et l'architecture MVC.
Bien commençons :
J'ai essayé de créer une architecture mvc en poo, mais dès lors où je fais appel à ma database et que j'utilise ma fonction dbConnect(), je m'aperçois qu'elle est lancé à plusieurs reprises, mais je ne comprend pas pourquoi, je n'ai mis en place aucune boucle, et pourtant ma fonction est lancé 500 fois ( max connexion sur phpmyadmin).
Et dès lors où je lance ce code ma fonction show(), ce repète 500 fois..
J'aimerais de votre part un conseil un indice où quelque chose qui me permettrait de saisir mon erreur.
Voici l'erreur :
Code : Tout sélectionner
je suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemje suis la classe itemMerci de votre patience
J'ai dans un premier temps créer un index qui fait office de routeur (index.php)
Code : Tout sélectionner
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="lollywood-website">
<meta name="author" content="SniOpIBNA">
<link rel="icon" href="/docs/4.0/assets/img/favicons/favicon.ico">
<title><?= $title;?></title>
<link rel="canonical" href="https://getbootstrap.com/docs/4.0/examples/starter-template/">
<!-- Bootstrap core CSS -->
<link href="../../dist/css/bootstrap.min.css" rel="stylesheet"><link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body style="padding-top : 70px">
<?= $content;?>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery-slim.min.js"><\/script>')</script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js" integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o" crossorigin="anonymous"></script>
</body>
</html>
Code : Tout sélectionner
<?php
namespace Controller;
require "model/autoload.php";
class ItemsController {
public function listItems(){
$items = new \Model\Items();
$items->show();
include "views/itemView.php";
}
}Code : Tout sélectionner
<?php
namespace Model;
require_once "Database.php";
class Model {
protected $_pdo;
public function __construct(){
if(is_null($this->_pdo)){
$this->_pdo = Database::dbConnect();
}else {
return $this->_pdo;
}
}
}Code : Tout sélectionner
<?php
namespace Model;
require_once "model/autoload.php";
class Items extends Model{
public function show (){
echo "je suis la classe item";
}
}Code : Tout sélectionner
<?php
namespace Model;
use \PDO;
class Database {
// Méthode static qui permet de se connecter à la base de donnée
public static function dbConnect() {
$pdo = new PDO("mysql:host=localhost;dbname=lollywood;charset=utf8","root","");
return $pdo;
}
}
Code : Tout sélectionner
<?php $title = 'Articles';
require_once "model/Items.php";
require_once "controller/ItemsController.php";
$controller = new \Controller\ItemsController();
$controller->listItems();
?>
<?php ob_start(); ?>
<div class="container">
<h1>Nos articles</h1>
</div>
<?php $content = ob_get_clean(); ?>
<?php require('views/template/layout.php');