Poly controller - polymedio/polyframework GitHub Wiki

Poly_Controller

''Poly_Controller'' es la clase base para nuestros controladores, provee métodos básicos para manipular el request y renderizar vistas.

Al crear nuestros controladores, aquellas funciones que se declaren como públicas serán accesibles a través de una URL y las llamaremos "acciones".

Asi creamos el controlador Articulos en el paquete Site:

<code php>

<?php

class Site_Controller_Articulos extends Poly_Controller {

/**
  • Comprueba que exista el Articulo o genera un error 404

    */
    protected function getOr404($articulo_id = null) {
    $Articulo = new Articulo();
    if (!$Articulo->read($articulo_id)) {
    $this->error(404);
    }
    return $Articulo;
    }
    /**
  • Listar articulos

    */
    function index() {
    $Articulo = new Articulo();
    $this->set('articulos', $Articulo->findAll()); //enviar $articulos a la vista
    $this->render('home');
    }
    /**
  • Ver un articulo

    */
    function ver($articulo_id = null) {
    $Articulo = $this->getOr404($articulo_id);
    $this->set('Articulo', $Articulo); // enviar $Articulo a la vista
    $this->render('ver_articulo'); // renderizar vista
    }
    /**
  • Comentar un articulo

    */
    function comentar($articulo_id = null) {
    $Articulo = $this->getOr404($articulo_id);
    $Comentario = $Articulo->createArticulo();
    $Comentario->Usuario    = Usuario::getCurrentUser();
    $Comentario->comentario = $_POST['Comentario']['comentario'];
    $Comentario->ip         = $_SERVER['REMOTE_ADDR'];
    if ($Comentario->save()) {
    $_SESSION['message'] = array('message' => 'Su comentario se ha guardado.', 'class' => 'success');
    } else {
    $_SESSION['message'] = array('message' => 'Su comentario no se ha guardado.', 'class' => 'error');
    }
    $this->redirect("/articulos/ver/{$Articulo->id}");
    }

}

</code>

''Poly_Controller'' provee además de dos callbacks: ''beforeFilter()'', llamada antes de cada acción y ''afterFilter()'' llamada despues de cada acción.

⚠️ **GitHub.com Fallback** ⚠️