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;
}