PHP:如何在最后呈现视图?
为了好玩和学习,我正在尝试创建自己的小PHP框架。 但现在我坚持这个观点PHP:如何在最后呈现视图?,php,controller,Php,Controller,为了好玩和学习,我正在尝试创建自己的小PHP框架。 但现在我坚持这个观点 class Index extends Controller { function __construct() { parent::__construct(); $this->view->msg = 'This message is sended over the view.'; $this->view->content = 'This i
class Index extends Controller {
function __construct() {
parent::__construct();
$this->view->msg = 'This message is sended over the view.';
$this->view->content = 'This is the INDEX-Content.';
$this->view->render('index/index');
}
public function something() {
// do something
// and render it
$this->view->content = 'This is the content from something.'
}
所以我能做的就是误用_析构函数并在这里呈现我的输出。但我想这与这种方法的目的背道而驰
当我将我的意图与Zend Framework或Laravel进行比较时,他们会使用after方法来渲染视图
但我不明白哪种方法可以做到这一点。构造函数是第一个,析构函数是最后一个,必须调用它之间的所有内容才能工作。
有什么神奇的方法吗?您应该处理您的HTTP I/O 这就是你能做到的 这就是请求的处理方式 这就是行动的方式
尽可能多地浏览回购协议,Kohana是一个简单但功能强大的框架。您可以学习一两件事您可以在主控制器类中执行以下操作:
public function __call($method,$arguments) {
if(method_exists($this, $method)) {
call_user_func_array(array($this,$method),$arguments); //this is where the function is called
$this->render();
}
}
您可以消除内置构造函数、析构函数和其他不希望自动渲染的函数
您还可以在主控制器类中设置一个变量,autoRender将default设置为false,并在希望生成预定义输出时将其设置为true
此外,在_call函数中,您可以使用$method变量为视图预定义名称。例如,假设框架中有一个名为Views的文件夹,其中有一个名为something.view\u extension的文件
您可以这样发送到渲染:$this->render$method.'.view_extension'
这只是一个你可以解决的大主意 请不要把观点和事实混为一谈。