Bonsoir,

Voila je rencontre un petit problème avec mon code.

Fatal error: Class 'RedBean_SimpleModel' not found

J'ai ce probleme je sais pas pourquoi, voici mon code, fichier "app.php" :

<?php
require_once __DIR__. '/../core/bootstrap.php';

var_dump(new \Collectify\Model\Category());
?>

Fichier bootstrap.php:

<?php

require_once __DIR__. '/config.inc.php';
require_once __DIR__. '/../vendor/autoload.php';

use RedBeanPHP\Facade as R;

if(empty(R::$currentDB))
{
    $dsn = sprintf('%s:host=%s; dbname=%s', DB_TYPE, DB_HOST, DB_NAME);
    R::setup($dsn, DB_USER, DB_PASSWORD);
}
R::close();
?>

Fichier {Project_name}/src/Collectify/Model/Category.php:

<?php

namespace Collectify\Model;

class Category extends \RedBean_SimpleModel
{
    public $name;
    protected $slug;
}
?>

Fichier config.inc.php:

<?php
/**
 * Database
 */
define('DB_TYPE', 'mysql');
define('DB_HOST', 'localhost');
define('DB_NAME', 'lab_poo');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
/**
 * RedBean configuration
 */
define('REDBEAN_MODEL_PREFIX', '\\Collectify\\Model\\');

?>

Fichier composer.json:

{
  "name": "collectify",
  "licence": "Framework",
  "description":"Framework",
  "autoload": {
    "psr-4": {
      "Collectify\\": "./src/Collectify"
    }
  },
  "require" : {
    "gabordemooij/redbean": "dev-master"
  }
}

Si quelqu'un pourrait m'aider ça serait vraiment magnifique :)

PS: Après avoir lû pleins d'exemple sur le net, ainsi que la doc, je ne trouve pas ce qu'il cloche ..

3 réponses


PhiSyX
Réponse acceptée

Quand je cherche dans le code source de Readbean, je ne vois aucune classe RedBean_SimpleModel (Il s'agit d'une classe d'une ancienne version de RedBean) mais il existe une classe SimpleModel sous l'espace de nom RedBeanPHP. Donc tu dois use RedBeanPHP\SimpleModel; et class Category extends SimpleModel ^^

Merci PhiSyx ! C'est tout à fait ça tu m'as été d'une très grande utilité en plus que j'apprends la POO en même temps donc je galère haha :) Merci énormément.

Grand Merci PhiSyx, j'avais aussi le même problème.