Tema: Ejemplo POO
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/02/2011, 08:41
Avatar de mayid
mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Ejemplo POO

Ojalá este recorte ayude:

controlador
Código PHP:
Ver original
  1. <?php
  2.  
  3. class articulos
  4. {
  5.  
  6.     var $db;
  7.  
  8.     function posts()
  9.     {
  10.         include NOVEDADES."app/bd/articulos.php";
  11.         $this->db = new novedad();
  12.     }
  13.  
  14.     function index()
  15.     {
  16.         ...
  17.         $data['articulos'] = $this->db->listar_articulos();
  18.         ...
  19.     }
  20.  
  21.     function crear()
  22.     {
  23.    
  24.     }
  25.    
  26.     function aprobar($id_articulo)
  27.     {          
  28.         if ( $this->db->aprobar_articulo($id_articulo) )
  29.                 die( "$id_articulo" );
  30.     }
  31.    
  32.      function ver($id_articulo)
  33.     {
  34.         ...
  35.         $data['articulo'] = $this->db->obtener_articulo($id_articulo);
  36.         ...
  37.     }
  38. }
  39. ?>

Modelo
Código PHP:
Ver original
  1. <?php
  2.  
  3. class articulo
  4. {
  5.     function articulos()
  6.     {
  7.         include_once(COMMONS."app/db/conexion.php");
  8.         $conexion = Conexion::getInstance(); // singleton
  9.     }
  10.    
  11.     function listar_articulos($cantidad = 9, $solo_aprobados = false)
  12.     {
  13.         ...
  14.     }
  15.    
  16.     function obtener_articulo($id_articulo)
  17.     {
  18.         ...
  19.     }
  20.    
  21.     function aprobar_articulo($id){
  22.  
  23.         $consulta = "UPDATE articulos SET estado='1' WHERE id = '$id'";
  24.         mysql_query($consulta) or die("Error en base de datos al aprobar articulo: ".mysql_error());
  25.  
  26.         return true;
  27.     }
  28.  
  29.     function eliminar_articulo($id_articulos)
  30.     {
  31.         $consulta = "DELETE FROM articulos WHERE id = '$id_articulos'";
  32.         mysql_query($consulta) or die("Error al eliminar articulo: ".mysql_error());
  33.        
  34.         return true;
  35.     }  
  36. }
  37. ?>

Por una convencion que seguí, el modelo va en singular, pero el controlador en plural.

Cita:
que esta clase tenga como propiedad al menos un objeto relacionado con otra tabla
Si no te mal interpreto, basta con algo así dentro de alguna de tus funciones:

Código PHP:
Ver original
  1. include (APP."modelos/cometarios.php");
  2. $db_comentarios = new Comentario();
  3.  
  4. $data['comentarios'] = $db_comentarios->obtener_comentarios();

Última edición por mayid; 09/02/2011 a las 08:48