PHP Conference Japan 2024

Yaf_Controller_Abstract 類別

(Yaf >=1.0.0)

簡介

Yaf_Controller_Abstract 類別是 Yaf 系統的核心。MVC 代表模型-視圖-控制器,是一種旨在將應用程式邏輯與顯示邏輯分離的設計模式。

每個自訂控制器都應繼承 Yaf_Controller_Abstract

您會發現您無法為自訂控制器定義 __construct 函式,因此,Yaf_Controller_Abstract 提供了一個魔術方法:Yaf_Controller_Abstract::init()

如果您在自訂控制器中定義了 init() 方法,只要控制器被實例化,它就會被呼叫。

動作可以有參數,當請求到來時,如果路由後在請求參數(參見 Yaf_Request_Abstract::getParam())中有相同名稱的變數,Yaf 會將它們傳遞給動作方法(參見 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(字串 $tpl, 陣列 $parameters = ?): 布林值
public forward(字串 $action, 陣列 $paramters = ?): 布林值
public getInvokeArg(字串 $name):
public getInvokeArgs():
public getName(): 字串
公開 init():
公開 initView(陣列 $options = ?):
公開 redirect(字串 $url): 布林值
保護 render(字串 $tpl, 陣列 $parameters = ?): 字串
公開 setViewpath(字串 $view_directory):
}

屬性

actions

您也可以使用此屬性和 Yaf_Action_Abstract 在單獨的 PHP 腳本中定義動作方法。

範例 #1 在單獨檔案中定義動作

<?php
class IndexController extends Yaf_Controller_Abstract {
protected
$actions = array(
/** 現在 dummyAction 定義在一個單獨的檔案中 */
"dummy" => "actions/Dummy_action.php",
);

/* 動作方法可以有參數 */
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 {
/* 一個動作類別應定義此方法作為入口點 */
public function execute() {
}
}
?>

_module

模組名稱

_name

控制器名稱

_request

目前的請求物件

_response

目前的回應物件

_invoke_args

_view

視圖引擎物件

目錄

新增註記

使用者貢獻的註記

此頁面沒有使用者貢獻的註記。
To Top