phpday 2025 - Call For Papers

A classe Yaf_Controller_Abstract

(Yaf >=1.0.0)

Introdução

Yaf_Controller_Abstract é o coração do sustema do Yaf. MVC é o acrônimo para (Modelo-Visualizador-Controlador) e é um padrão de projeto cujo objetivo é separar a lógica da aplicação da lógica da exibição.

Todo controlador customizado deve herdar Yaf_Controller_Abstract.

A função __construct não pode ser definida no controlador customizado. Por isso, Yaf_Controller_Abstract fornece um método mágico: Yaf_Controller_Abstract::init().

Se um método init() for definido no controlador customizado, ele será chamado assim que o controlador for instanciado.

A ação pode ter argumentos, quando uma solicitação chega, se houver a variável de mesmo nome nos parâmetros da solicitação (veja Yaf_Request_Abstract::getParam()). Depois de roteada, Yaf irá passá-los para o método de ação (veja Yaf_Action_Abstract::execute()).

Nota:

Esses argumentos são obtidos diretamente sem filtragem, devem ser cuidadosamente processados ​​​​antes de serem usados.

Resumo da classe

abstract class Yaf_Controller_Abstract {
/* Propriedades */
public $actions;
protected $_module;
protected $_name;
protected $_request;
protected $_response;
protected $_invoke_args;
protected $_view;
/* Métodos */
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
}

Propriedades

actions

Um método de ação também pode ser definido em um script PHP separado usando esta propriedade e Yaf_Action_Abstract.

Exemplo #1 Definindo ação em um arquivo separado

<?php
class IndexController extends Yaf_Controller_Abstract {
protected
$actions = array(
/** agora dummyAction está definida em um arquivo separado */
"dummy" => "actions/Dummy_action.php",
);

/* o método de ação pode ter argumentos */
public function indexAction($name, $id) {
/* $name e $id são dados brutos inseguros */
assert($name == $this->getRequest()->getParam("name"));
assert($id == $this->_request->getParam("id"));
}
}
?>

Exemplo #2 Dummy_action.php

<?php
class DummyAction extends Yaf_Action_Abstract {
/* uma classe de ação deve definir este método como o ponto de entrada */
public function execute() {
}
}
?>

_module

Nome do módulo.

_name

Nome do controlador.

_request

Objeto da requisição atual.

_response

Objeto da resposta atual.

_invoke_args

_view

Objeto do mecanismo de visualização.

Índice

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top