【发布时间】:2020-04-26 18:27:02
【问题描述】:
我正在使用composer 到autoload 我的课程。
我的文件夹结构:
mytodo
- src
-app
IDb.php
-views
db.php
todos.php
- web
index.php
-composer.json
试图从todos.php__constructor()继承Database类。但是给出这个错误!!!
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();
}
}
composer.json
{
"name": "todo/website",
"description": "This is a TODO App",
"minimum-stability": "stable",
"autoload": {
"psr-4": {
"todo\\": "src/"
}
},
"require": {
"php": ">=7.2.0"
}
}
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;
}
无法找出问题所在。请提前帮助我。
【问题讨论】:
-
您尝试过什么调试问题?我在您的代码中发现了多个问题:如果您没有要实例化名为
DataBase的任何非抽象类,new DataBase将引发错误
标签: php oop composer-php autoload