我有一个合同“ArticleStorage”,每个存储都必须订阅才能对模型有效。没错,这不是问题,我的问题是:分页......或“结果修改”,在这种情况下fetchAll,我想修改它的行为但不添加参数等
<?php
interface ArticleStorage
{
// public function insert();
// public function update();
// public function delete();
public function fetchAll();
}
class MySQLArticleStorage implements ArticleStorage
{
public function fetchAll()
{
// SELECT * FROM `articles`;
}
}
?>
我的模型是如何工作的。
class ArticlesModel
{
public function __construct(ArticleStorage $storage)
{
}
}
在这种情况下,我希望有一个“ArticleStorage”,但不知道给出了哪个“Storage”,真的……我想使用 Storage 进行分页或应用结果修改。
class MySQLArticleResultsModifier
{
public function __construct(MySQLArticleStorage $storage)
{
}
public function fetchAll()
{
// ...
}
}
在分页的情况下,我如何修改 ArticleStorage fetchAll 并应用我修改后的查询?