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

Inicicando Con Poo

Estas en el tema de Inicicando Con Poo en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola, ya llevo buen tiempo con PHP como 2n años pero nada que he podido programar en orientacion a onjetos, como inicio, para que sirev, ...
  #1 (permalink)  
Antiguo 26/05/2008, 13:38
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 18 años, 9 meses
Puntos: 3
Inicicando Con Poo

hola, ya llevo buen tiempo con PHP como 2n años pero nada que he podido programar en orientacion a onjetos, como inicio, para que sirev, un buen link gracias.
  #2 (permalink)  
Antiguo 26/05/2008, 17:12
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 6 meses
Puntos: 43
Respuesta: Inicicando Con Poo

puedes empezar buscando info en wikipedia, leer sobre MVC
  #3 (permalink)  
Antiguo 27/05/2008, 02:47
Avatar de shaggyz  
Fecha de Ingreso: mayo-2008
Mensajes: 43
Antigüedad: 16 años
Puntos: 3
Información Respuesta: Inicicando Con Poo

Hola si te sirve de algo este es mi apunte cuando empeze con poo, ejecutalo y hechale un vistazo, faltan algunas cosas, es solo lo basico:

Código PHP:
<?php
{
    
//La clase algo tiene dos metodos, si no llamo a las var con this, tomaria solo las que estan dentro del metodo
    
class Algo
    
{
        var 
$x;
        function 
setX($arg)
        {
            
$this->$arg;
        }
        
        function 
getX()
        {
            return 
$this->x;
        }
    }
    
    
//La clase Otro hereda (Extends) los metodos de Algo
    
    /* Cuando un objeto de una clase derivada es instanciado, solo su Constructor es llamado, pero no el de la clase Padre, 
    esto es una lástima porque el encadenamiento de constructores es una característica clásica de la POO. 
    Si quieres llamar al constructor de la clase base, se tiene que hacer explicitamente en el constructor de la clase derivada. 
    Esto funciona porque todos los metodos de la clase padre están disponibles en la clase derivada debido a la Herencia. */
    
    
class Otro extends Algo 
    
{
        var 
$y;
        function 
setY($arg)
        {
            
$this->$arg;
        }
        
        function 
getY()
        {
            return 
$this->y;
        }
    }
    
    
//Clase contructora, automaticamente al instanciar un objeto de esta clase se llama a la funcion Construct(arg)
    //La cual automaticamente en este caso le asigna un valor a z.
    //Si se indican valores en el argumento de la funcion constructora seran los valores por defecto que tendra esta
    //funcion al llamarse sin argumentos: function Construct($arg="3",$y="5");
    
    
class Construct
    
{
        var 
$z;
        function 
Construct($arg)
        {
            
$this->$arg;
        }
        
        function 
getZ()
        {
            return 
$this->z;
        }
    }
    
    
//Sobrecarga (EMULADA), Se llama a determinada funcion, 
    //dependiendo de la cantidad de argumentos que se le pase a la constructora
    
class MiClase
    
{
            function 
MiClase()
            {
                    
$nombre="MiClase".func_num_args();
                    
$this->$nombre();
                    
// Notar que $this->nombre(); generalmente estaría mal
                    // pero aqui $nombre es un string con el nombre del
                    // método que se va a llamar
            
}     
            function 
MiClase1($x)
            {
                    echo 
"<BR>Solo un argumento";
            }
    
            function 
MiClase2($x,$y)
            {
                    echo 
"<BR>Se llamo con dos argumentos";
            }
    }

    
    
//Clase que dirije el flujo del programa (INDICE)
    
class Programa
    
{
        var 
$opcion;
        function 
SeleccionaOpcion($arg)
        {
            
$this->opcion $arg;
        }
        function 
MuestraOpcion()
        {
            switch (
$this->opcion)
            {
                case 
0:
                    
//Flujo del programa - Instancio un nuevo objeto:
                    
$obj = new Algo();
                    
//Utilizo el metodo para insertar datos:
                    
$obj->setX(10);
                    
//Extraigo los datos de este objeto:
                    
$resultado $obj->getX();
                    echo 
$resultado."<BR><BR>";
                break;
                case 
1:
                    
//Objetos de la clase "Otra" ahora poseen todos los atributos y métodos de la clase padre (Algo) 
                    //más sus propios métodos y atributos
                    
$obj = new Otro();
                    
$obj->setX(2);
                    
$obj->setY(3);
                    
$valor1 $obj->getX();
                    
$valor2 $obj->getY();
                    echo 
$valor1 $valor2."<BR><BR>";
                break;
                case 
2:
                    
//Al instanciar el objeto inicio la clase con un valor.
                    
$obj = new Construct(6);
                    
$valor $obj->getZ();
                    echo 
$valor."<BR><BR>";
                break;
                case 
3:
                    
//Dos objetos, uno con un param otro con dos:
                    
$obj1 = new MiClase('2');
                    
$obj2 = new MiClase('2','3');
            }
        }
    }
/*
--- INDICE ---

0- Instancia de un objeto, acceso a sus datos y metodos
1- Herencia
2- Constructoras
3- Sobrecarga Emulada (Da warnings)
*/
$flujo = new Programa();
$flujo->SeleccionaOpcion(1);
$flujo->MuestraOpcion();
//Serializo al objeto y limprimo
$cadena serialize($flujo);
echo 
$cadena;
}
?>
  #4 (permalink)  
Antiguo 27/05/2008, 04:55
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Inicicando Con Poo

A modo de sugerencia: estaría bueno que actualizaras el ejemplos a PHP5, PHP4 ya está "deprecated"
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #5 (permalink)  
Antiguo 27/05/2008, 06:33
Avatar de shaggyz  
Fecha de Ingreso: mayo-2008
Mensajes: 43
Antigüedad: 16 años
Puntos: 3
De acuerdo Respuesta: Inicicando Con Poo

jejej Gracias por la sugerencia, pero bueno era la epoca cuando empece :)
  #6 (permalink)  
Antiguo 27/05/2008, 12:24
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Inicicando Con Poo

Bueno, nes24, como ejercicio, traduce el código de shaggyz de PHP4 a PHP5 y yo me encargo de corregirlo, vale?
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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 00:47.