Yaf_Controller_Abstract 类

(Yaf >=1.0.0)

介绍

Yaf_Controller_Abstract 是 Yaf 系统的核心。MVC 代表模型-视图-控制器,是一种旨在将应用程序逻辑与显示逻辑分离的设计模式。

每个自定义控制器都应该继承 Yaf_Controller_Abstract

您会发现您无法为自定义控制器定义 __construct 函数,因此,Yaf_Controller_Abstract 提供了一个魔术方法:Yaf_Controller_Abstract::init()

如果您在自定义控制器中定义了 init() 方法,它将在控制器被实例化后被调用。

Action 可能有参数,当请求到来时,如果请求参数(参见 Yaf_Request_Abstract::getParam())中存在同名变量,在路由后,Yaf 会将它们传递给 Action 方法(参见 Yaf_Action_Abstract::execute())。

注意:

这些参数是直接获取的,没有经过过滤,在使用它们之前应该仔细处理。

类概要

abstract class Yaf_Controller_Abstract {
/* 属性 */
public $actions;
protected $_module;
protected $_name;
protected $_request;
protected $_response;
protected $_invoke_args;
protected $_view;
/* 方法 */
final private __construct()
protected display(string $tpl, array $parameters = ?): bool
public forward(string $action, array $paramters = ?): bool
public getInvokeArg(string $name): void
public getName(): string
public init(): void
public initView(array $options = ?): void
public redirect(string $url): bool
protected render(string $tpl, array $parameters = ?): string
public setViewpath(string $view_directory): void
}

属性

actions

您还可以使用此属性和 Yaf_Action_Abstract 在单独的 PHP 脚本中定义 Action 方法。

示例 #1 在单独的文件中定义 Action

<?php
class IndexController extends Yaf_Controller_Abstract {
protected
$actions = array(
/** 现在 dummyAction 在一个单独的文件中定义 */
"dummy" => "actions/Dummy_action.php",
);

/* Action 方法可能会有参数 */
public function indexAction($name, $id) {
/* $name 和 $id 是不安全的原始数据 */
assert($name == $this->getRequest()->getParam("name"));
assert($id == $this->_request->getParam("id"));
}
}
?>

示例 #2 Dummy_action.php

<?php
class DummyAction extends Yaf_Action_Abstract {
/* 一个 Action 类应该定义此方法作为入口点 */
public function execute() {
}
}
?>

_module

模块名称

_name

控制器名称

_request

当前请求对象

_response

当前响应对象

_invoke_args

_view

视图引擎对象

目录

添加备注

用户贡献的笔记

此页面没有用户贡献的笔记。
To Top