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

Duda con estructura de una clase.

Estas en el tema de Duda con estructura de una clase. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, Acabo de hacer mi primera clase, despues de leer mucho, tanto libros de php, como leyendo en este foro, y me gustaria, que vosotros, ...
  #1 (permalink)  
Antiguo 02/11/2008, 18:05
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Duda con estructura de una clase.

Hola,
Acabo de hacer mi primera clase, despues de leer mucho, tanto libros de php, como leyendo en este foro, y me gustaria, que vosotros, que sabeis de POO, me dierais vuestro consejo sobre el script que acabo de hacer.

Esta bien hecho, o mi sintaxis es muy mala?
La clase funciona, pero me gustaria saber vuestra opinion y si voy por el buen camino, ya que me quiero meter de lleno en POO.

Esta es la clase.

Código PHP:
<?php 

class SubirFiles
{

        public 
$ruta_destino "../cevit/archivos/";
        public 
$nombre;
        public 
$nombreTemp;
        public 
$tamanio;
        public 
$tipo;
        public 
$nombre_final;
        
        public  function 
CreaDir (){
        
                if ( !
is_dir ($this->ruta_destino)){
                
                
mkdir ($this->ruta_destino'0777');
                }
                
            }
    
    
        public function 
renombrar (){
             
$this->nombre_final $_FILES['fichero']['name'];
             
$this->nombre_final=  ereg_replace (" ""_"trim ($this->nombre_final));
    
              return  
$this->nombre_final;
            }
    
      
        public function 
Subir(){
       
                   
                
$this->tamanio $_FILES['fichero']['size'];
                
$this->tipo $_FILES['fichero']['type'];
                
$this->nombre $_POST ['nombre_archivo'];
                
$this->nombreTemp $_FILES['fichero']['tmp_name'];
                
                if(
move_uploaded_file($this->nombreTemp$this->ruta_destino$this->nombre_final)) {  
                             echo 
"<b>Upload exitoso!. Datos:</b><br>"
                             echo 
"Nombre: <i><a href=\"".$this->ruta_destino$this->nombre_final."\">".$this->nombre."</a></i><br>"
                             echo 
"Tipo MIME: <i>".$this->tipo."</i><br>"
                             echo 
"Peso: <i>".$this->tamanio." bytes</i><br>"
                             echo 
"<br><hr><br>"
                       }
                   }
      
    
}
//comienzo a instaciar
$a = new SubirFiles ();
$a->CreaDir();
$a->renombrar ();
$a->Subir();
?>
Gracias.

Última edición por jaronu; 02/11/2008 a las 22:04
  #2 (permalink)  
Antiguo 02/11/2008, 18:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Duda con estructura de una clase.

Hola jaronu,

Muy por encima, varias cosas:
1.- No utilices variables publicas, nunca, no es lo más recomendable.
2.- Cuida como escribes el código con tantos espacios hace difícil la lectura del código.
3.- Delega, piensa en objetos, no es necesario que la misma clase haga todo, haz clases que hagan diferentes funciones y modulariza tus objetos.

Saludos.
  #3 (permalink)  
Antiguo 02/11/2008, 18:47
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Duda con estructura de una clase.

Ok,

Lo de las variables publicas no lo tengo demasiado claro,

1.- si son publicas sepueden usar fuera de la clase y privadas solo en la clase, no?
por que es?, para evitar una sobreescritura de variables en otros codigos?

2.- Lo espaciaba tanto precisamente para hacer facil su lectura. Pero veo que me equivoco.

3.- Si hago clases dieferentes como dices, despues que hago, herencias?

Gracias por tus comentarios GatorV

Un saludo
  #4 (permalink)  
Antiguo 02/11/2008, 18:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Duda con estructura de una clase.

1.- Es por Encapsulamiento.

2.- Te recomiendo leas el Estandar de Zend para codificar.

3.- No necesariamente, necesitas pensar en objetos y como utilizarlos y como ellos utilizarse a ellos mismos. Si todavía no tienes claro este concepto te recomiendo que leas un buen libro de Programación Orientada a Objetos, aunque sea en Java o en otro lenguaje. Tienes que tener en claro como trabajar y crear los objetos para poder empezar a programar, ya que de lo contrario vas a terminar programando funcionalmente estilo orientado a objetos, y es una forma incorrecta ya que no estas ni programando funcionalmente ni orientado a objetos.

Saludos.
  #5 (permalink)  
Antiguo 02/11/2008, 19:07
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Duda con estructura de una clase.

1.- Lo del encapsulamiento, creo lo tengo claro.

2.- Es un problema grave que tengo, casi no se leer en ingles y casi toda la buena documentacion de POO esta en ingles y me es casi imposible, ni con un diccionario a lado.

3.- En mi pais y mas en la zona donde vivo, es dificil encontrar libros de PHP, y menos aun de POO. Ya lo intento pero lo unico que encontre fue un libro de desarrollo en PHP Y MySQL, y lo tuve que comprar por internet, en Madrid, a 800 Km de mi casa.

Gracias de nuevo por los consejos, seguire buscando algun libro de POO

Un saludo
  #6 (permalink)  
Antiguo 02/11/2008, 21:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Duda con estructura de una clase.

Si te es difícil encontrar un buen libro, hace poco Enriqueplace estaba dando un curso de POO a distancia en PHP5, creo sería una buena oportunidad para enrolarte y aprender.

Saludos.
  #7 (permalink)  
Antiguo 02/11/2008, 21:30
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Duda con estructura de una clase.

Cita:
1.- Lo del encapsulamiento, creo lo tengo claro.
Busca también por getter y setter

Cita:
2.- Es un problema grave que tengo, casi no se leer en ingles y casi toda la buena documentacion de POO esta en ingles y me es casi imposible, ni con un diccionario a lado.
Bueno, sigue intentando, nadie dijo que fuera fácil. El enlace que te pasó GatorV es sumamente sintético y técnico, por lo tanto no deberías tener mayores problemas... además, tienes muchos traductores en internet que te dan una mano.

Si consideras que es importante para tu profesión, estudia la posibilidad de hacer un curso.

Cita:
3.- En mi pais y mas en la zona donde vivo, es dificil encontrar libros de PHP, y menos aun de POO. Ya lo intento pero lo unico que encontre fue un libro de desarrollo en PHP Y MySQL, y lo tuve que comprar por internet, en Madrid, a 800 Km de mi casa.
Lamentablemente hay muchos libros para PHP (en cualquier idioma) y siguen siendo malos. Yo te recomendaría libros de POO que no fueran para un lenguaje específico, en el mejor de los casos que sea para Java.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #8 (permalink)  
Antiguo 02/11/2008, 21:48
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Duda con estructura de una clase.

enriqueplace, ya estuve ojeando tu blog, y hay mucha informacion, creo que empezare por alli a buscar y leer, y tambien a buscar un libro de POO aunque sea para java.

Y lo del taller de POO, ahora me va fatal, pero a ver si pronto haces mas y puedo apuntarme, el trabajo este mes es fuerte, y no precisamente programando o diseñando web's.

Un saludo, Y ya me voy dando cuenta que no es nada facil. Pero seguire en ello.
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 08:41.