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

Es una buena practica esto en poo ?

Estas en el tema de Es una buena practica esto en poo ? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Este es mi codigo de configuracion de un panel de adminstracion, todo el panel de adminstracion llaman a esta clsae, llamada Cpanel en ves de ...
  #1 (permalink)  
Antiguo 29/04/2010, 09:30
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Es una buena practica esto en poo ?

Este es mi codigo de configuracion de un panel de adminstracion, todo el panel de adminstracion llaman a esta clsae, llamada Cpanel en ves de poner el codigo en la parte superior de cada pagina del panel.

Ahora me falto usar el constructor y los metodos set y get, pero es vlaido ya que las variables son del tipo public.

Código PHP:
Ver original
  1. <?php
  2. //Importa la clase ConDB
  3. include_once("../config.php");
  4. class Cpanel{
  5.    
  6.     public $estado;
  7.     public $msg;
  8.    
  9.     function loadConfig(){      
  10.         //Conectarse a Mysql
  11.         $cn = new Conexion;
  12.         $cn = $cn->conDB();
  13.         //Conectarse a Mysql
  14.         $query = mysql_query("select * from mees_config",$cn) or die (mysql_error());
  15.         $row = mysql_fetch_array($query);
  16.         //Inicializar la variable estado
  17.         $this->estado = $row['estado'];
  18.         return $row;
  19.     }
  20.    
  21.     function estado(){
  22.     //Verificar estado del Mees
  23.     if($this->estado == 1)
  24.     $estado = '<b><font color="green">ACTIVO</font></b>';
  25.     else
  26.     $estado = '<b><font color="red">INACTIVO</font></b>';
  27.    
  28.     return $estado;
  29.     }
  30.    
  31.     function actualizarConfig($n,$d,$cp,$e,$m,$es){
  32.         if($cp=="")
  33.         {
  34.         $this->msg='<div class="advertenciamees">MeES necesita tener un correo padre, no puedo dejarlo sin valor !!</div>';
  35.         }
  36.         else{
  37.         //Conectarse a Mysql
  38.         $cn = new Conexion;
  39.         $cn = $cn->conDB();
  40.         //Conectarse a Mysql
  41.         $query = mysql_query("update mees_config set nombre = '$n', descripccion = '$d', correo_padre = '$cp', estado = $e, motivo = '$m', estilo = '$es';",$cn) or die (mysql_error());
  42.         $this->msg = '<div class="satisfactoriomees">Los datos de configuracion han sido actualizados correctamente !!</div>';
  43.         }
  44.     }
  45. }
  46. ?>
  #2 (permalink)  
Antiguo 29/04/2010, 09:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Es una buena practica esto en poo ?

No, nunca es buena practica tener propiedades públicas en tus clases, ya que rompes con la encapsulación de tu clase. Para eso existen los setters/getters.
  #3 (permalink)  
Antiguo 29/04/2010, 10:02
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Es una buena practica esto en poo ?

Creo q sería mejor:
Código PHP:
Ver original
  1. function estado(){
  2.     //Verificar estado del Mees
  3.     if($this->estado == 1)
  4.         return 1;
  5.     else
  6.         return 0;
  7.     }

¿Cual es el sentido de dejar las propiedades públicas? Tampoco veo q las usas
¿No sería mejor que tu clase Conexion se encargara de realizar las consultas a la BD?
  #4 (permalink)  
Antiguo 29/04/2010, 12:39
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Es una buena practica esto en poo ?

Ahora, esta mejor ?

Código PHP:
Ver original
  1. <?php
  2. //Importa la clase ConDB
  3. include_once("../config.php");
  4. class Cpanel{
  5.    
  6.     private $estado;
  7.     private $msg;
  8.    
  9.     function loadConfig(){      
  10.         //Conectarse a Mysql
  11.         $cn = new Conexion;
  12.         $cn = $cn->conDB();
  13.         //Conectarse a Mysql
  14.         $query = mysql_query("select * from mees_config",$cn) or die (mysql_error());
  15.         $row = mysql_fetch_array($query);
  16.         //Inicializar la variable estado
  17.         $this->estado = $row['estado'];
  18.         return $row;
  19.     }
  20.    
  21.     function estado(){
  22.     //Verificar estado del Mees
  23.     if($this->estado == 1)
  24.     $estado = '<b><font color="green">ACTIVO</font></b>';
  25.     else
  26.     $estado = '<b><font color="red">INACTIVO</font></b>';
  27.    
  28.     return $estado;
  29.     }
  30.    
  31.     function actualizarConfig($n,$d,$cp,$e,$m,$es){
  32.         if($cp=="")
  33.         {
  34.         $this->msg='<div class="advertenciamees">MeES necesita tener un correo padre, no puedo dejarlo sin valor !!</div>';
  35.         }
  36.         else{
  37.         //Conectarse a Mysql
  38.         $cn = new Conexion;
  39.         $cn = $cn->conDB();
  40.         //Conectarse a Mysql
  41.         $query = mysql_query("update mees_config set nombre = '$n', descripccion = '$d', correo_padre = '$cp', estado = $e, motivo = '$m', estilo = '$es';",$cn) or die (mysql_error());
  42.         $this->msg = '<div class="satisfactoriomees">Los datos de configuracion han sido actualizados correctamente !!</div>';
  43.         }
  44.     }
  45.  
  46. //Getters and Setters
  47.  
  48.     public function getEstado(){
  49.     return $this->estado;
  50.     }
  51.    
  52.     public function setEstado($estado){
  53.     $this->estado = $estado;
  54.     }
  55.  
  56.     public function getMsg(){
  57.     return $this->msg;
  58.     }
  59.    
  60.     public function setMsg($msg){
  61.     $this->msg = $msg;
  62.     }
  63. }
  64. ?>

Respecto a a los query, creo que si estaria mejor separarlo en otra clase, pero no en la clase de conexion ya que este es generado automaticamente al momento de instalar el SW, lo tendre en mente y pondre todos mis querys dentro de una clase, asi lo instancio y solo llamo a las clase query para usar sus funciones.
  #5 (permalink)  
Antiguo 29/04/2010, 14:50
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Es una buena practica esto en poo ?

Lo de imprimir los errores, si no vas a usar exepciones, sepáralo tambiénm en otras clases. Yo q tu lo haría. El ejemplo de la función estado q te puse arriba ¿lo viste?
  #6 (permalink)  
Antiguo 29/04/2010, 15:01
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Es una buena practica esto en poo ?

Cita:
Iniciado por eulloa Ver Mensaje
Lo de imprimir los errores, si no vas a usar exepciones, sepáralo tambiénm en otras clases. Yo q tu lo haría. El ejemplo de la función estado q te puse arriba ¿lo viste?
Si, pero practicamente quiero evitar usar mucho codigo php en las partes visuales.... entonces usare try catch para validar esto, ahi se podria imprimir mensajes normal ?

Etiquetas: 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 02:02.