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

duda sobre clases

Estas en el tema de duda sobre clases en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola a todos, me preguntaba que tan seguro y correcto es hacer esto, tengo una clase para conectar a una base de datos en la ...
  #1 (permalink)  
Antiguo 25/11/2009, 08:09
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
duda sobre clases

hola a todos, me preguntaba que tan seguro y correcto es hacer esto, tengo una clase para conectar a una base de datos en la cual se pone los datos de conexion en un archivo de configuracion de esta manera
Código PHP:
//Datos de configuración de la conexión a la base de datos 
 
//Servidor 
$host='localhost'
 
//Usuario 
$user='user'
 
//Password 
$password='test'
 
//Base de datos a utilizar 
$db='testDB'
y luego la clase de esta manera
Código PHP:
Class Conf
   private 
$_domain
   private 
$_userdb
   private 
$_passdb
   private 
$_hostdb
   private 
$_db
 
   static 
$_instance
 
   private function 
__construct(){ 
      require 
'config.php'
      
$this->_domain=$domain
      
$this->_userdb=$user
      
$this->_passdb=$password
      
$this->_hostdb=$host
      
$this->_db=$db
   } 
 
   private function 
__clone(){ } 
 
   public static function 
getInstance(){ 
      if (!(
self::$_instance instanceof self)){ 
         
self::$_instance=new self(); 
      } 
      return 
self::$_instance
   } 
 
   public function 
getUserDB(){ 
      
$var=$this->_userdb
      return 
$var
   } 
 
   public function 
getHostDB(){ 
      
$var=$this->_hostdb
      return 
$var
   } 
 
   public function 
getPassDB(){ 
      
$var=$this->_passdb
      return 
$var
   } 
 
   public function 
getDB(){ 
      
$var=$this->_db
      return 
$var
   } 
 

esta clase no la desarrolle yo, la encontre en un tutorial en la web, mis dudas son las siguiente, que tan correcto si lo es o no hacer un require o un include dentro de la clase, si tiene ventajas o problemas de seguridad etc, y si es correcto ponerlo en el constructor hablando desde el punto de vista de la prolijidad en la programacion.
La otra duda es, en caso de usar archivos de configuracion de esta forma, donde conviene ponerlos en la estructura de mi web, supongo que fuera del public_html seria lo optimo pero espero aclarar esta duda tambien

gracias a todos
Saludos
  #2 (permalink)  
Antiguo 25/11/2009, 08:17
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: duda sobre clases

sin dudas no es lo mas correcto hacer un include dentro de la clase para obtener los datos, lo mejor seria que el constructor reciba un array con los datos de configuracion

por otro lado si, seria bueno que los archivos de configuracion los tengas fuera del public_html
  #3 (permalink)  
Antiguo 25/11/2009, 08:23
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: duda sobre clases

claro eso pense, por otro lado es mas comodo logicamente tener un archivo de configuracion para manejar datos, que es preferible hacer un fopen de un archivo php y leer los datos o quizas tambien seria posible parsear un xml, lo que no me convence por ahi es tener que hacer todo ese trabajo dentro de la definicion de lña clase, no se si es tan correcto a la hora de hacer una programacion mas prolija y legible teniendo en cuenta que probablemente ese codigo sea reutilizado por muchas personas, la idea de este post es mas que nada intentar establecer que es lo mas correcto a la hora de programar prolijo

espero mas ideas
saludos
  #4 (permalink)  
Antiguo 25/11/2009, 08:26
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: duda sobre clases

no tienes que parsear nada

Código PHP:
// archivo de configuracion, config.php
return array('user' => 'root''pass' => '''db' => 'mi_db''host' => 'localhost'); 
Código PHP:
// levanto el archivo y creo el objeto db
$config = include('config.php');
$db = new Db($config); 
y listo =)
  #5 (permalink)  
Antiguo 25/11/2009, 08:35
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
buena idea, no lo habia pensado asi ;)

saludos

una cosa mas de la cual imagino la respuesta, es no es correcto colocar consultas mysql dentro de una clase no?

saludos

Última edición por GatorV; 30/11/2009 a las 10:10
  #6 (permalink)  
Antiguo 25/11/2009, 14:14
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: duda sobre clases

el 99,9% de las veces no es correcto :P salvo que tu clase sea un modelo :P

pero si quieras cuenta cual es tu caso y opinamos mejor ^^

saludos
  #7 (permalink)  
Antiguo 25/11/2009, 14:29
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: duda sobre clases

claro eso pense, estaba pensando solo por curiosidad en la forma de hacer algo como lo que utiliza el framework symfony, este framework lo que hace es crear metodos getter y setter para cada campo de la base de datos, claro que esto lo hace a partir de un esquema, estaba pensando en una forma de crear un metodo que me identifique los campos existentes de una tabla y a partir de ellos poder conseguir crear nuevos metodos para insertar o actualizar datos para cada campo individual de la base, se que son cosas que frameworks como symfony lo manejan a la perfeccion pero tan solo por curiosidad y para aprender mas queria hacer un metodo que haga eso.
pensaba obtener los nombres de los campos de la tabla a partir de la consulta SHOW, espero haber sido claro

saludos
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:59.