Yupp Framework PHP

Controladores

Los controladores se encargan de procesar los pedidos de que los usuarios realizan desde un navegador, generar, modificar u obtener datos del modelo, y en general muestran una vista (página) con datos. Los controladores contienen acciones que son ejecutadas dependiendo de las URLs a las que se hacen los pedidos. Aquí se pueden encontrar ejemplos de urls según las convensiones de Yupp.

Los controladores de una aplicación se ubican en el subdirectorio "controllers" de la aplicación. Por ejemplo, en la aplicación "blog", los controladores se ubican en el directorio /components/blog/controllers.

Un controlador debe extender la clase YuppController. A continuación se muestra un ejemplo:

/*
 * components/blog/controllers/components.blog.controllers.EntradaBlogController.class.php
 */
class EntradaBlogController extends YuppController {

   public function showAction()
   {
      /*
       * Ejecuta alguna lógica
       */
      $id = $this->params['id'];          // Parámetro de la URL, ejemplo: blog/entradaBlog/show?id=5
      $entrada = EntradaBlog::get( $id ); // Obtiene la entrada desde la base de datos

      /*
       * Coloca modelo para ser accedido por la vista (página)
       */
      $this->params['entrada'] = $entrada;

      /*
       * Por defecto muestra la vista blog/views/entradaBlog/show.view.php
       */
      return;
   }
}

Y la vista que muesta la información de la entrada (show.view.php), puede tener el siguiente aspecto:

<?php

// Donde está el modelo que el controlador le pasó a la vista,
// más todos los parámetros que vienen en el pedido (como id=5).
$m = Model::getInstance();

?>
<html>
   <head>
      /*
       * Incluir Javascript
       */
      <?php echo h("js",  array("name" => "prototype-1.6.0.2") ); ?>

      /*
       * Incluir CSS
       */
      <?php echo h("css", array("name" => "main") ); ?>
   </head>
   <body>
      <h1>Detalles de la entrada</h1>

      <!-- Recordar el "$this->params['entrada'] = $entrada;" en el controlador. -->
      <?php $entrada = $m->get('entrada'); ?>

      <!-- Muestra datos de la entrada -->
      <div class="entrada">
        <?php echo $entrada->getId(); ?>
        <?php echo $entrada->getTitulo(); ?>
        <?php echo $entrada->getFecha(); ?>
        <?php echo $entrada->getTexto(); ?>
      </div>
   </body>
</html>
Por consultas o comentarios ir al grupo:
Grupos de Google
Suscribirte a Yupp Framework PHP
Correo electrónico:
Consultar este grupo