Bonjour,
Voila je rencontre un petit problème avec mon code. j'ai essayé de trouvé le souci en vain.. j'ai dû raté quelque chose alors svp si quelqu'un voit ce que j'ai raté qu'il me fasse signe . merci
Décrivez ici votre code ou ce que vous cherchez à faire
Table.php
<?php
use Core\Config;
use Core\Database\MysqlDatabase;
class App
{
public $title = "Mon super site";
private static $_instance;
private $db_instance;
public static function getInstance(){
if(is_null(self::$_instance)){
self::$_instance = new App();
}
return self::$_instance;
}
public static function load(){
session_start();
require ROOT .'/App/Autoloader.php';
App\Autoloader::register();
require ROOT . '/Core/Autoloader.php';
Core\Autoloader::register();
}
public function getTable($name){
$class_name = '\\App\\Table\\' . ucfirst($name) . 'Table';
return new $class_name($this->getDb());
}
public function getDb(){
$config = Config::getInstance(ROOT . '/config/config.php');
if(is_null($this->db_instance)){
$this->db_instance = new MysqlDatabase($config->get('db_name'),$config->get('db_user'),$config->get('db_pass'),$config->get('db_host'));
}
return $this->db_instance;
}
}
Autoloader.php
~~
<?php
namespace Core;
Class Autoloader{
/**
* Enregistre notre autoloader
*/
static function register() {
spl_autoload_register(array(__CLASS__,'autoload'));
}
/**
* Inclure le fichier correspondant à notre classex /
* require 'autoloader.php'; Autoloader::register(); --> permet de lancer notre autoloader simplement.
* @param $class string le nom de la classe à charger
*/
static function autoload($class){
if(strpos($class,__NAMESPACE__. '\\') == 0){
$class = str_replace(__NAMESPACE__ . '\\','',$class);
$class = str_replace('\\','/', $class);
require __DIR__ . '/' . $class. '.php';
}
}
}
Décrivez ici ce que vous cherchez à obtenir
Warning: require(C:\xampp\htdocs\BLOG\App/core/Table.php): failed to open stream: No such file or directory in C:\xampp\htdocs\BLOG\App\Autoloader.php on line 25
Fatal error: require(): Failed opening required 'C:\xampp\htdocs\BLOG\App/core/Table.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\BLOG\App\Autoloader.php on line 25
bonjour, bonsoir
je te conseille d'utiliser la constance 'DIRECTORY_SEPARATOR' pour éviter le problème de slash.
dans ton erreur a la fin du chemin du fichier ne sont pas les mêmes.
a quoi correspond la constante
Merci Coockie_hunty pour ta réponse, mais ce code est issu du tuto la POO en PHP alors j'aimerai comprendre pourquoi est ce que j'ai cette erreur afin de la corriger..
cdt.
ton erreur vient du fait que dans ta directory tu a deux type de slache.
de plus linux utilise les séparateur / et Windows \ ou le contraire mais souvenir son Flou.
si tu utilises my\dir sur Windows sa ne fonctionnera pas. il vaut utiliser my/dir
la constante DIRECTORY_SEPARATOR te met le bon séparateur. suivant sur qu'elle os ou le code et exécuté