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

Mi primera clase, consejos

Estas en el tema de Mi primera clase, consejos en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas, Estoy metiéndome en el mundo de la clases en PHP pero no se si voy bien o no... Por ejemplo he creado esto para ...
  #1 (permalink)  
Antiguo 01/11/2009, 13:00
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 10 meses
Puntos: 20
Mi primera clase, consejos

Buenas,

Estoy metiéndome en el mundo de la clases en PHP pero no se si voy bien o no...

Por ejemplo he creado esto para escribir mis propios ficheros de log

Código php:
Ver original
  1. <?
  2. // Clase para escribir en ficheros
  3. class RWfilelog {
  4.     function abrir ($fichero,$modo) {
  5.     $this -> abrir = fopen($fichero,$modo);
  6.     }
  7.     function escribir($texto) {
  8.     $this -> escribir = fputs($this->abrir,date('Y-m-d H:m:s').' '.$texto."\r\n");
  9.     }
  10.     function cerrar() {
  11.     $this -> cerrar = fclose($this -> abrir);
  12.     }
  13. }
  14. // Usando la clase
  15. $fichero = new RWfilelog; //instanciar
  16. $fichero -> abrir('prueba.log','a');
  17. $fichero -> escribir('Esta es una linea');
  18. $fichero -> escribir('segunda linea');
  19. $fichero -> escribir('Escribiendo la fecha');
  20. $fichero -> cerrar();
  21.  
  22. ?>

¿La veis bien? funcionar funciona.

Pero no se si estas hace falta hacerlo así
$this -> cerrar = fclose($this -> abrir);

o con esto ya vale
fclose($this -> abrir);

Y si tengo que definir variables al inicio de la clase :S

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 01/11/2009, 13:05
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 2 meses
Puntos: 265
Respuesta: Mi primera clase, consejos

Siempre que declares una clase, segun lo que hagas, te conviene guardar variables.

Aparte tenes que crear un constructor. Osea, cuando vos definis una clase, seguro que es para abrirla (fopen) y luego trabajar con ella, y cerrarlo, no? Entonces porque mejor no abrir el archivo cuando declaras la clase? Y te ahorras la linea $fichero->abrir()...

Si haces lo q vos escribiste, al cerrar el archivo lo volves a abrir, por lo que no va a hacer lo que vos quieras, aparte abrir tiene 2 parametros, por lo que te va a tirar un error de sintaxis.

Te conviene guardar la ruta del archivo en una variable, declarala dentro de la clase.

private $_nombre;

Y cuando hagas el constructor, asignasela!

Saludos.
  #3 (permalink)  
Antiguo 01/11/2009, 13:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Mi primera clase, consejos

pues, tu código esta bien...

claro, no siempre hay que asignar todo a variables, al menos si no tienen un uso posterior...

y si, definitivamente deberias definir las variables como privadas o protegidas en la clase, sería lo ideal...

suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 01/11/2009, 13:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: Mi primera clase, consejos

Por otro lado recuerda que en PHP5, que es la versión actual de PHP es necesario definir el acceso de las funciones, si no las defines se toman como publicar por defecto.
  #5 (permalink)  
Antiguo 03/11/2009, 16:25
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 10 meses
Puntos: 20
Respuesta: Mi primera clase, consejos

Cita:
Iniciado por GatorV Ver Mensaje
Por otro lado recuerda que en PHP5, que es la versión actual de PHP es necesario definir el acceso de las funciones, si no las defines se toman como publicar por defecto.
A qué se refiere cuando "es necesario definir el acceso de las funciones"

Muchas gracias
  #6 (permalink)  
Antiguo 03/11/2009, 16:28
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 2 meses
Puntos: 265
Respuesta: Mi primera clase, consejos

El se refiere a que tenes que declarar el alcance de las funciones. Pueden ser publicas (public), protegidas (protected) o privadas (private).

Vos no declaraste el alcance de las funciones, por lo que todas se asumen q son publicas, no creo q eso cause ningun problema, pero creo que deberias buscar por internet una definicion de clase simple ... porque te falta definir constructores y eso.

Saludos.
  #7 (permalink)  
Antiguo 03/11/2009, 16:43
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 10 meses
Puntos: 20
Respuesta: Mi primera clase, consejos

Cita:
Iniciado por MarioAraque Ver Mensaje
El se refiere a que tenes que declarar el alcance de las funciones. Pueden ser publicas (public), protegidas (protected) o privadas (private).

Vos no declaraste el alcance de las funciones, por lo que todas se asumen q son publicas, no creo q eso cause ningun problema, pero creo que deberias buscar por internet una definicion de clase simple ... porque te falta definir constructores y eso.

Saludos.
De acuerdo, Gracias ;)
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 03:32.