Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/08/2010, 09:42
dumpmail
 
Fecha de Ingreso: julio-2010
Mensajes: 19
Antigüedad: 13 años, 9 meses
Puntos: 0
Una Clase dentro de otra Clase. Ayuda

Hola amigos, tengo una duda, yo apenas comienzo en PHP, y la verdad hay muchas cosas que no se... Y yo quisiera saber si puedo digamos: "meter una clase en otra" Estuve leyendo sobre la herencia en PHP... Pero aun asi no me dio resultado... Tal vez ustedes me puedan explicar mas y ayudar... Notese que soy novato.

Este es mi archivo conexion.class.php
Código PHP:
Ver original
  1. <?php
  2. class DBManager{
  3.     var $conect;
  4.  
  5.     var $BaseDatos;
  6.     var $Servidor;
  7.     var $Usuario;
  8.     var $Clave;
  9.     function DBManager(){
  10.         $this->BaseDatos = "nombre";
  11.         $this->Servidor = "localhost";
  12.         $this->Usuario = "usuario";
  13.         $this->Clave = "clave";
  14.     }
  15.  
  16.      function conectar() {
  17.         if(!($con=@mysql_connect($this->Servidor,$this->Usuario,$this->Clave))){
  18.             echo"<h1> [:(] Error al conectar a la base de datos</h1>"; 
  19.             exit();
  20.         }
  21.         if (!@mysql_select_db($this->BaseDatos,$con)){
  22.             echo "<h1> [:(] Error al seleccionar la base de datos</h1>";  
  23.             exit();
  24.         }
  25.         $this->conect=$con;
  26.         return true;   
  27.     }
  28. }
  29. ?>



Ese es el de conexion, donde puse "nombre", "localhost", "usuario", "clave" ... Alli van mis valores

Este es mi archivo empleado.class.php
Código PHP:
Ver original
  1. <?php
  2. include_once("conexion.class.php");
  3.  
  4. class Empleado{
  5.  //constructor 
  6.     var $con;
  7.     function Empleado(){
  8.         $this->con=new DBManager;
  9.     }
  10.  
  11.     function insertar($campos){
  12.         if($this->con->conectar()==true){
  13.             //print_r($campos);
  14.             //echo "INSERT INTO configuracion (nombre, apellido, salario) VALUES ('".$campos[0]."','".$campos[1]."','".$campos[2]."')");
  15.             return mysql_query("INSERT INTO configuracion (nombre, apellido, salario) VALUES ('".$campos[0]."','".$campos[1]."','".$campos[2]."')");
  16.         }
  17.     }
  18.    
  19.     function actualizar($campos,$id){
  20.         if($this->con->conectar()==true){
  21.             //print_r($campos);
  22.             return mysql_query("UPDATE configuracion SET nombre = '".$campos[0]."', apellido = '".$campos[1]."', salario = '".$campos[2]."', afp = '".$campos[3]."', isss = '".$campos[4]."' WHERE id = ".$id);
  23.         }
  24.     }
  25.    
  26.     function mostrar_empleado($id){
  27.         if($this->con->conectar()==true){
  28.             return mysql_query("SELECT * FROM configuracion WHERE id=".$id);
  29.         }
  30.     }
  31.  
  32.     function mostrar_empleados(){
  33.         if($this->con->conectar()==true){
  34.             return mysql_query("SELECT * FROM configuracion ORDER BY id DESC");
  35.         }
  36.     }
  37.  
  38.     function eliminar($id){
  39.         if($this->con->conectar()==true){
  40.             return mysql_query("DELETE FROM configuracion WHERE id=".$id);
  41.         }
  42.     }
  43. }
  44. ?>


Muy bien, eso hace todo en la base de datos, acerca de los empleados... Inserta,actualiza,borra,muestra.

Ahora, mi nueva clase es esta, para hacer unos calculos en base al salario del empleado ingresado. procesos.class.php
Código PHP:
Ver original
  1. <?php class Procesos {
  2.  
  3.     var $isss_empleado = 3;
  4.     var $isss_patrono = 7.5;
  5.     var $isss_salmax = 685.71;
  6.     var $afp_empleado = 6.25;
  7.     var $afp_patrono = 6.75;
  8.     var $afp_minimo = 207.6;
  9.     var $afp_max = 5354.52;
  10.  
  11.     // constructor
  12.    
  13.  
  14.     function Procesos($isss_empleado, $isss_patrono, $isss_salmax, $afp_empleado, $afp_patrono, $afp_minimo, $afp_max) {
  15.         $this->isss_empelado = $isss_empleado;
  16.         $this->isss_patrono = $isss_patrono;
  17.         $this->isss_salmax = $isss_salmax;
  18.         $this->afp_empleado = $afp_empleado;
  19.         $this->afp_patrono = $afp_patrono;
  20.         $this->afp_minimo = $afp_minimo;
  21.         $this->afp_max = $afp_max;
  22.     }
  23.  
  24.     // metodos get
  25.  
  26.     function get_isss_empleado() {
  27.         return $this->isss_empleado;
  28.     }
  29. ............... los demas para las otras variables tambien
  30.  
  31. // metodos set
  32.  
  33.    
  34.     function set_isss_empleado($v) {
  35.         if(!is_numeric($v)) {
  36.             return false;
  37.         } else {
  38.             $this->isss_empleado = $v;
  39.         }
  40.     }
  41. ............. Los demas tambien para las otras variables


Ahora bien, yo quiero meter la clase procesos.class.php en empleado.class.php


Segun estuve investigando...

Podia usar herencia haciendo algo como:
Código PHP:
Ver original
  1. class Procesos extends Empleado {
  2.  //constructor
  3.     var $isss_empleado = 3;
  4.     var $isss_patrono = 7.5;
  5.     var $isss_salmax = 685.71;
  6.     var $afp_empleado = 6.25;
  7.     var $afp_patrono = 6.75;
  8.     var $afp_minimo = 207.6;
  9.     var $afp_max = 5354.52;
  10.    
  11.     function Procesos($isss_empleado, $isss_patrono, $isss_salmax, $afp_empleado, $afp_patrono, $afp_minimo, $afp_max) {
  12.         $this->isss_empelado = $isss_empleado;
  13.         $this->isss_patrono = $isss_patrono;
  14.         $this->isss_salmax = $isss_salmax;
  15.         $this->afp_empleado = $afp_empleado;
  16.         $this->afp_patrono = $afp_patrono;
  17.         $this->afp_minimo = $afp_minimo;
  18.         $this->afp_max = $afp_max;


O me equivoco?? Alguien me explica un poco mas?? Por favor

Lo que quiero es que esa clase este dentro de la otra, para poder recoger el salario y hacer unos descuentos! pero la verdad no tengo mucho la idea como...