所以我有一个名为 Engine.php 的库,它的作用基本上是在运行
example.com/controller/method/value
所以例如,如果我有
example.com/category/images
它运行称为“图像”的方法。但我不想为每个类别添加代码。我希望该方法是一个变量(以便稍后我将使其与 db 一起使用)。
如何在不更改引擎的情况下实现这一目标?问题是 - 有些页面根本没有类别。而且我不想重写引擎本身。
我可以在控制器中以某种方式做到这一点吗?例如:
我正在输入名为“类别”的控制器,如果设置了方法,它会在控制器中搜索此方法(“类别”)。
这就是我的 Engine.php 的一部分:
if (isset($url_output[1])) {
if (isset($url_output[2])) {
if (method_exists($controller,$url_output[1])) {
$controller->{$url_output[1]}($url_output[2]);
} else {
$this->error();
}
} else {
if (method_exists($controller,$url_output[1])) {
$controller->{$url_output[1]}();
} else {
$this->error();
}
}
}
所以基本上,如您所见:
$controller->{$url_output[1]}();
$url_output[1] = 控制器中名为 $url_output[0] 的方法的名称。
我想要的是:
public function $category() {
echo $category
}
你知道我的意思?