我今天正在做一个项目,而且我已经工作了一段时间,而且我不知道我在这里做错了什么。有人可以给我一个正确的例子。
Thnx很多!
连接器:
class Repository
{
private $connector;
public function __construct(Config $connector)
{
$this->connector = $connector;
}
public function events()
{
$query = 'SELECT * FROM digi_gz_parties';
$dbh_query = $this->connector->getDatabase()->prepare($query);
$dbh_query->execute();
$dbh_querys = $dbh_query->fetchAll();
return $dbh_querys;
}
}
吸气剂:
class REST
{
public function getEvents()
{
require 'logic/Repository.php';
$event = new Repository();
$events = $event->events();
return $events;
}
}
错误: 传递给Repository :: __ construct()的参数1必须是Config的实例。
我知道我需要给存储库提供一个参数,但我不想要它,我只想调用存储库而不给出一些参数。
非常感谢!
答案 0 :(得分:1)
您可以将Repository::__construct()
更改为默认$connector
至null
:
public function __construct(Config $connector = null)
{
$this->connector = $connector;
}
这样,如果您在没有任何参数的情况下实例化对象,就像在此处一样,它将默认为null
。唯一的缺点是,现在,在$this->connector
类中使用Repository
并且记住它可能为空时,你必须格外小心。
例如,在这里,events()
方法的第二行不起作用,因为您缺少连接数据库的正确配置。