Clase Libros_Controller

Sucede lo mismo que con los modelos, ahora los controladores son Clases y las acciones son los métodos. La única diferencia con respecto al ejemplo anterior es el uso de la clase View para asignar variables y presentar la plantilla.

La almacenamos en la carpeta **Controllers** y la llamaremos **libros_controller.php** (controllers/libros_controller.php). El contenido de dicha clase será:

<?php
class Libros_Controller
{
   function __construct()
   {
      //Creamos una instancia de nuestro mini motor de plantillas
      $this->view = new View();
   }

   public function listar()
   {
      //Incluye el modelo que corresponde
      require 'models/Libros_Model.php';

      //Creamos una instancia de nuestro "modelo"
      $Libros_model = new Libros_Model();

      //Le pedimos al modelo todos los libros
      $libros = $Libros_model->getLibros();

      //Pasamos a la vista toda la información que se desea representar
      $variables = array();
      $variables['libros'] = $libros;

      //Finalmente presentamos nuestra plantilla
      $this->view->show("libros_listar.php", $variables);
   }

   public function ver ()
   {
      if ( !isset ( $_GET [ 'id' ] ) )
         die("No has especificado un identificador de libro.");

      $id = $_GET [ 'id' ];

      //Incluimos el modelo correspondiente
      require 'models/Libros_Model.php';

      //Creamos una instancia de nuestro "modelo"
      $Libros_model = new Libros_Model();

      //Le pide al modelo el libro con id = $id
      $libro = $libros = $Libros_model->getLibro($id);

      if ($libro === null)
         die("Identificador de libro incorrecto");

      //Pasamos a la vista toda la información que se desea representar
      $variables = array();
      $variables['libro'] = $libro;

      //Pasamos a la vista toda la información que se desea representar
      $this->view->show('libros_ver.php', $variables);
   }
}
?>

Las dos vistas: libros_listar.php y libros_ver.php no cambian:

<html>
 <head>
   <title>LIBRERIA UAZON</title>
 </head>
 <body>
  <h1>Libros dados de alta en nuestra libreria</h1>
  <table border="1">
   <tr>
    <th>TITULO</th>
    <th>PRECIO</th>
   </tr>
   <?php foreach ($libros as $libro): ?>
    <tr>
      <td><?php echo $libro['titulo']?></td>
      <td><?php echo number_format($libro['precio'],2)?></td>
    </tr>
  <?php endforeach; ?>
  </table>
</body>
</html>
<html>
   <head>
      <title>LIBRERIA UAZON</title>
   </head>
   <body>
      <h1>Ver datos de un libro</h1>
      <table border="1">
         <tr>
            <th>TITULO</th>
            <th>PRECIO</th>
         </tr>
         <tr>
            <td><?php echo $libro['titulo'] ?></td>
            <td><?php echo number_format($libro['precio'],2)?></td>
         </tr>
      </table>
   </body>
</html>

results matching ""

    No results matching ""