Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/10/2009, 14:08
shock_dude
 
Fecha de Ingreso: febrero-2008
Ubicación: Bahia Blanca
Mensajes: 173
Antigüedad: 16 años, 3 meses
Puntos: 7
soy de los que hacen superclases amontonadas y me decidí a dejar las malas costumbre y empezar bien. Bueno, vi un ejemplo de una pregunta que hizo un forero acá http://www.forosdelweb.com/f68/login...clases-738229/ y basandome en las respuestas me puse a jugar un poco, dividiendo dos clases, una para manejo de consultas sql y otra para manejo de usuarios que se meten en la db.

Tengo dos clases, una llamada db, que se encarga de las consultas sql que le pasa la otra clase. La otra clase 'user' instancia a la primer clase para pasarle consultas. (lo hice así para dividir el mejor el desarrollo pero creo que es peor).

Un ejemplo

class db

Código PHP:

// acá van los atributos, metodos, constructor , etc

// bla bla bla


// éste es el método que invoco desde otra clase (ver el otro código)

public function sqlInsertUser($nombeUsuario,$password) { 

return 
// consulta SQL que ingresa el user/pass que se asigna desde la otra clase


class user


Código PHP:





<?php

class User {

    private 
$_idUser;
    private 
$_nameUser;
    private 
$_passUser;
    private 
$_db;
    
    public function 
construct($nameUser,$passUser) {
    
    
$this->_nameUser=$nameUser;
    
$this->_passUser=$passuser;
    
$this->_db= new Db();
    
    }
    

// el método InsertUser llama al método sqlInsertUser de la clase 'db' para
// pasarle los argumentos.


    
public function InsertUser(){
    
    return 
$this->_db->sqlInsertUser($this->_nameUser,$this->_passUser);
    
    }

    
    
}
creo que es desastroso.

Como sería un esquema de división de dos clases? osea una que se encargue unicamente de las consultas sql y conexiones y otra que se dedique a las acciones de los usuario.
Lo que busco es que solo la clase 'user' tenga acceso desde el exterior, las demás clases son para uso interno y reciben parámetros desde otras clases unicamente.

Me trabé.

Y agrego lo siguiente, éste método de la clase User, no recibe argumentos, sino que toma los valores del constructor.

Código PHP:
    public function InsertUser(){
    
    return 
$this->_db->sqlInsertUser($this->_nameUser,$this->_passUser);
    
    }

    
    

Y el constructor solo recibe 2 argumentos y los inicializa. Pero qué pasaría si dentro de la clase user, tengo más métodos que reciben más argumentos? los argumentos los tendría pasar directamente al método
Código PHP:
public function InsertUser($argumentos){ } 
en vez de al constructor ?



Pd: Formas de pago a los que respondan:

las gracias, karma o paypal. :P a elección.

Última edición por GatorV; 07/10/2009 a las 14:59