Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:未捕获错误:类';todo\views\DataBase';找不到_Php_Oop_Composer Php_Autoload - Fatal编程技术网

Php 致命错误:未捕获错误:类';todo\views\DataBase';找不到

Php 致命错误:未捕获错误:类';todo\views\DataBase';找不到,php,oop,composer-php,autoload,Php,Oop,Composer Php,Autoload,我正在使用composer自动加载我的类 我的文件夹结构: mytodo - src -app IDb.php -views db.php todos.php - web index.php -composer.json 正在尝试从todos.php\uu构造函数()继承数据库类。但是给这个错误 todos.php <?php names

我正在使用
composer
自动加载
我的类

我的文件夹结构:

mytodo
     - src
        -app
            IDb.php
        -views
            db.php
            todos.php
     - web
         index.php
     -composer.json
正在尝试从
todos.php
\uu构造函数()
继承
数据库
类。但是给这个错误

todos.php

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

class Todo extends DataBase implements IDb{

    public function __construct() 
    {
         $newdb = new DataBase();
         $connection = $newdb->connect();
    }
}
db.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;
}

发生这种情况是因为命名错误。PSR-4自动加载意味着文件名与类名匹配


解决方案:根据类名重命名文件:
ToDo.php
变成
ToDo.php
db.php
变成
DataBase.php

发生这种情况是因为命名错误。PSR-4自动加载意味着文件名与类名匹配


解决方案:根据类名重命名文件:
ToDo.php
变成
ToDo.php
db.php
变成
DataBase.php

你可以用另一种方法来重命名类,但不建议这样做,因为根据惯例,类名通常以大写字母开头。你可以用另一种方法来重命名类,但不建议这样做,按照惯例,类名通常以大写字母开头。您尝试过调试这个问题吗?我在您的代码中看到多个问题:
新数据库
如果没有任何名为
数据库
的非抽象类进行实例化,则会抛出错误。您尝试调试该问题的原因是什么?我在代码中看到了多个问题:
新数据库
如果没有任何名为
数据库
的非抽象类进行实例化,则会抛出错误
<?php
namespace todo\app;

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