Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Ejemplo POO

Estas en el tema de Ejemplo POO en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola necesito un ejemplo simple de: 1 clase que se relacione con una tabla sql que esta clase tenga como propiedad al menos un objeto ...
  #1 (permalink)  
Antiguo 08/02/2011, 10:53
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 9 años
Puntos: 288
Ejemplo POO

Hola necesito un ejemplo simple de:

1 clase que se relacione con una tabla sql
que esta clase tenga como propiedad al menos un objeto relacionado con otra tabla

esto lo hago todos los santos dias, pero utilizando URM, frameworks, etc, asi que para mi es una caja negra.

esto surge por si te presentas en un lugar y resolves un problema de esta manera queda mas elegante que hacer una query cada vez que lo necesite.
  #2 (permalink)  
Antiguo 09/02/2011, 08:41
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 10 años, 10 meses
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
  #3 (permalink)  
Antiguo 09/02/2011, 10:05
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 9 años
Puntos: 288
Respuesta: Ejemplo POO

ok muchas gracias,
repito que uso todos los santos dias toda clase de farmework
pero de ahi a que yo haga el mio propio, hay un abismo infernal (por ahi exagero)
igual gracias otra ves.

ya que esta, no encuentro tutorial alguno para realizar un miniframework de uso personal.
como para empezar a hacer el mio, aunque ya este casi todo hecho, estaria buena la experiencia
  #4 (permalink)  
Antiguo 09/02/2011, 13:09
 
Fecha de Ingreso: octubre-2009
Mensajes: 245
Antigüedad: 10 años, 3 meses
Puntos: 17
Respuesta: Ejemplo POO

Cita:
Iniciado por Patriarka Ver Mensaje
ok muchas gracias,
repito que uso todos los santos dias toda clase de farmework
pero de ahi a que yo haga el mio propio, hay un abismo infernal (por ahi exagero)
igual gracias otra ves.

ya que esta, no encuentro tutorial alguno para realizar un miniframework de uso personal.
como para empezar a hacer el mio, aunque ya este casi todo hecho, estaria buena la experiencia
Te dejo uno http://www.phpro.org/tutorials/Model...oller-MVC.html

Mi recomendación es que mejor inviertas tiempo viendo como lo han echo zend, symfony, YII u otros frameworks ya tienes el código, es cosa de que experimentes con el.
__________________
Saludos.
  #5 (permalink)  
Antiguo 09/02/2011, 13:13
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 9 años
Puntos: 288
Respuesta: Ejemplo POO

Gracias Otra ves
  #6 (permalink)  
Antiguo 11/02/2011, 07:11
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 12 años, 9 meses
Puntos: 292
Respuesta: Ejemplo POO

Cita:
Iniciado por mayid Ver Mensaje
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. ?>
De ORM no le veo nada a estas clases....... y es un ejemplo con Die() en vez de excepciones y en PHP4

Alguien tiene un ejemplo simple de un ORM en PHP5 ?
__________________
Salu2!
  #7 (permalink)  
Antiguo 11/02/2011, 09:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 8 meses
Puntos: 2135
Respuesta: Ejemplo POO

Creo que no hay ORMs simples, lo más simple que conozco es Zend_Db_Table junto con Zend_Db_Table_Rowset y Zend_Db_Table_Row, y no se puede considerar un ORM. Simplemente es la implementación del patrón de Table Gateway o Active Table.

Un ORM como tal debe de tener la capacidad de tomar un objeto simple, y poder persistirlo en algún medio físico. También poder hacer consultas y traer más objetos. Los patrones Table Gateway y Active Table son sencillos ya que imitan esta capacidad de una forma simple, pero un ORM bien va mucho más alla, creando un lenguaje SQL para poder hablar con los demás objetos (por ejemplo Doctrine con DQL, Hibernate con HQL), manejo de cache, conexiones a la base de datos.

Es por eso que no hay un ejemplo de un ORM simple, porque es un sistema muy complejo, es como si pidieras un ejemplo simple de Facebook, no lo hay es algo complejo por si solo, pero es buena practica si tu sistema es mediano a grande implementes un ORM, si el sistema es sencillo con un patrón como Active Table o Active Record debes de tener.

Saludos.
  #8 (permalink)  
Antiguo 17/02/2011, 07:41
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 9 años
Puntos: 288
Respuesta: Ejemplo POO

Nosotros usamos ORM para trabajar y por lo tanto no aplicamos mucho que digamos el MVC.
o si, pero muy por separado. modelo por aca, vista y controlador por alla.........
con una clase de persistencia y otra que devuelve una coleccion de objetos es todo el framework, que te parece? eso si, al momento de trabajar con grandes cantidades de datos se ha tenido que hacer malabares para que no decaiga el sistema.......................................

Etiquetas: ejemplo, poo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:23.