Неустранимая ошибка: необученная ошибка: класс 'todo \ views \ DataBase' не найден - PullRequest
0 голосов
/ 26 апреля 2020

Я использую composer до autoload моих классов.

Структура моей папки:

mytodo
     - src
        -app
            IDb.php
        -views
            db.php
            todos.php
     - web
         index.php
     -composer.json

Пытается унаследовать Database класс от todos.php __constructor(). Но с этой ошибкой !!!

задач. php

<?php
namespace todo\views;
use todo\app\IDb;

class Todo extends DataBase implements IDb{

    public function __construct() 
    {
         $newdb = new DataBase();
         $connection = $newdb->connect();
    }
}

composer. json

{
    "name": "todo/website",
    "description": "This is a TODO App",
    "minimum-stability": "stable",
    "autoload": {
        "psr-4": {
            "todo\\": "src/"
        }
    },
    "require": {
        "php": ">=7.2.0"
    }
}

дБ. php

<?php
namespace todo\views;
use todo\app\IDb;

abstract class DataBase implements IDb{

    private $user;
    private $host;
    private $pass;
    private $db;
    protected $connection;

    public function __construct()
    {
        $this->user = "root";
        $this->host = "localhost";
        $this->pass = "";
        $this->db = "db_todos";
    }

    public function connect()
    {
        $connection = mysqli_connect($this->host, $this->user, $this->pass, $this->db);
        return $connection;
    }
}
?>

Интерфейс БД:

<?php
namespace todo\app;

interface IDb {
    public function connect() : string;
}

Не удалось выяснить проблему. Пожалуйста, помогите мне заранее.

1 Ответ

2 голосов
/ 27 апреля 2020

Это происходит из-за неправильного именования. Автозагрузка PSR-4 подразумевает, что имя файла соответствует имени класса.

Решение: переименуйте файлы в соответствии с именами классов: todos.php становится ToDo.php, db.php становится DataBase.php.

...