【发布时间】:2009-11-27 20:20:49
【问题描述】:
我有一个我想不通的问题。
我正在构建一个小型框架(练习),现在我正在构建 Validator 库。除非我试图修复“回调”规则,否则一切都很好。当开发者需要使用验证器库中不存在的规则时,使用回调规则。
这就是我的做法。
在控制器中:
$this->validator->check('req|callback:test', $_POST['module_name'], 'Module Name');
验证器类:
public function check($rules, $input, $fieldname='') {
$rule = explode('|', $rules);
foreach ($rule as $r) {
$request = explode(":",$r,2);
$method = array_shift($request);
$parameter = $request;
array_unshift($parameter,$input);
array_push($parameter,$fieldname);
if (method_exists($this, $method)) {
call_user_func_array(array($this,$method), $parameter);
}
}
protected function callback($input, $key, $fieldname='') {
}
我的问题是,如何使用“当前”控制器。例如,在这种情况下我需要找到:
UserController::test();
我可以在 $key 中找到正确的方法,但这是找出正在滚动的控制器的简单方法吗?
我尝试使用如下网址:
$controller = ucfirst($uri->uri[1]).'Controller';
$controller::$key();
但这根本不起作用..有什么想法吗?
【问题讨论】:
标签: php class frameworks controller