PHP 8.6.0 Beta 3 is available for testing

La clase Yaf_Controller_Abstract

(Yaf >=1.0.0)

Introducción

Yaf_Controller_Abstract es el corazón del sistema de Yaf. MVC significa Modelo Vista Controlador (Model-View-Controller en inglés) y es un patrón de diseño cuyo objetivo es separar la lógica de aplicación de la lógica de vista.

Cada controlador personalizado heredará de la clase Yaf_Controller_Abstract.

Dado que Yaf_Controller_Abstract::__construct() es llamado por Yaf sin argumentos, Yaf_Controller_Abstract proporciona un gancho alternativo similar al constructor: Yaf_Controller_Abstract::init().

Si se ha definido un método init() en el controlador personalizado, será llamado en cuanto el controlador se instancie.

Las acciones pueden tener argumentos. Al recibir una petición, si en los parámetros de la petición existen variables con el mismo nombre (véase Yaf_Request_Abstract::getParam()) tras el enrutamiento, Yaf los pasará al método de acción (véase Yaf_Action_Abstract::execute()).

Nota:

Estos argumentos se obtienen directamente sin filtrado; deben procesarse con cuidado antes de usarlos.

Sinopsis de la clase

abstract class Yaf_Controller_Abstract {
/* Propiedades */
public $actions;
protected $_module;
protected $_name;
protected $_request;
protected $_response;
protected $_invoke_args;
protected $_view;
/* Métodos */
public function __construct()
protected function display(string $tpl, ?array $parameters = ?): ?bool
public function forward(string $action, ?array $parameters = ?): ?bool
public function getInvokeArg(string $name): ?string
public function getInvokeArgs(): ?array
public function getModuleName(): ?string
public function getName(): ?string
public function getView(): ?Yaf_View_Interface
public function getViewpath(): ?string
public function init(): void
public function initView(?array $options = ?): ?Yaf_View_Interface
public function redirect(string $url): ?bool
protected function render(string $tpl, ?array $parameters = ?): string|bool|null
public function setViewpath(string $view_directory): ?bool
}

Propiedades

actions

También se puede definir un método de acción en un script de PHP por separado usando esta propiedad y la clase Yaf_Action_Abstract.

Ejemplo #1 Definir una acción en un fichero aparte

<?php
class IndexController extends Yaf_Controller_Abstract {
    protected $acciones = array(
        /** ahora dummyAction está definida en un fichero aparte */
        "dummy" => "actions/Dummy_action.php",
    );

    /* el método de acción puede tener argumentos */
    public function indexAction($name, $id) {
       /* $name e $id son datos no seguros sin tratar */
       assert($nombre == $this->getRequest()->getParam("nombre"));
       assert($id   == $this->_request->getParam("id"));
    }
}
?>

Ejemplo #2 Dummy_action.php

<?php
class DummyAction extends Yaf_Action_Abstract {
    /* una clase de acción definirá este método como el punto de entrada */
    public function execute() {
    }
}
?>

_module

El nombre del módulo

_name

El nombre del controlador

_request

El objeto de petición actual

_response

El objeto respuesta actual

_invoke_args

Los argumentos de invocación pasados a la acción mediante Yaf_Controller_Abstract::forward(), como un array indexado por el nombre del argumento.

_view

El objeto de motor de vistas

Tabla de contenidos

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top