Foros del Web » Programando para Internet » PHP »

Para variar!!!! "clases"...... :S

Estas en el tema de Para variar!!!! "clases"...... :S en el foro de PHP en Foros del Web. Bueno para variar tengo oooootra duda sobre clases. Se que me diran que me informa mas y en eso estoy por eso pruebo y pregunto ...
  #1 (permalink)  
Antiguo 05/03/2004, 14:41
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 21 años, 5 meses
Puntos: 1
Pregunta Para variar!!!! "clases"...... :S

Bueno para variar tengo oooootra duda sobre clases.

Se que me diran que me informa mas y en eso estoy por eso pruebo y pregunto aparte de leer....

Tengo un clase , por ejemplo, para el manejo de mi BD en donde el constructor me pide los datos de esta(user,pass,dbname y host), porq obviamente se supone q la clase no sabe estos datos y los necesita para trabajar con la BD.

En otra clase "X" necesita conectarse a la BD para ejecutar ciertas acciones, todo esto dentro de la clase "X". Entonces mi duda aqui es:

¿Como instancio la clase para el manejo de la BD en la clase "X"?

es decir, como debo pasarle ciertos parametros a la clase BD, debo pasarle esos mismos parametro a la clase "X"? como... algunas ideas mias son estas (funcionan) pero no se si es correcto

Código PHP:
class X
{
  var 
$algo;

  function 
X($arg1,$arg2,$user,$pass,$dbname,$host){
        
$conex = new BD($user,$pass,$dbname,$host);
        
// Aqui utilizar los metodos de BD atraves del objeto $conex

     //// Otros metodos
  
}

bueno eso funciona pero será correcto? o debo hacerlo como
class X extends BD? pero al hacerlo asi debo pasar los parametro necesarios ara BD el constructor de "X" o como?


Espero haberme explicado bien y que me puedan ayudar

De antemano gracias

Saludos
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon

Última edición por MSDark; 05/03/2004 a las 16:30
  #2 (permalink)  
Antiguo 05/03/2004, 17:43
 
Fecha de Ingreso: diciembre-2003
Mensajes: 54
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola, hay muchas formas de hacerlo dependiendo lo que necesites.

Una forma es configurando la clase de la bdd con los datos (podes hacerlo con un archivo de configuración externo utilizando constantes) y entonces despues creas el resto de las clases exteniendo la de la bdd y solo tienes que llamar a la funcion que realiza la conexión sin parametros. Incluso puedes hacer que la clase de la bdd tenga un constructor, que automaticamente se conecte cuando es creada, entonces cuando la extiendes con otra clase, la clase hija automaticamente hereda la conexion automatica (siempre y cuando no tengas un constructor en la clase hija, en este caso tendrias que llamar a la funcion de conexión manualmente).

Otra forma es similar a la anterior, pero sin preconfigurar la clase con los datos, en este caso necesitarias mandarle los datos cada vez que crees la clase hija o que en el momento particular que realizes la conexión. (Es bastante molesto e inutil a menos que realmente lo necesites.)

En el caso particular de la conexion a la bdd (en especial con mysql, no se con otras bdd) no hace falta que extiendas la clase ya que php automaticamente utiliza una conexion abierta si es que existe o sea que con conectarte al principio del script es suficiente. Por supuesto que en proyectos complejos o modulares no es demasiado comodo, ya que si utilizas varias bdd o alguna bdd que no soporta esta funcionalidad, se complica.

Bueno, esas son las opciones que se me ocurren.

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:25.