Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/10/2010, 13:29
Avatar de maturano
maturano
 
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 10 meses
Puntos: 36
Respuesta: [APORTE]toma los datos del visitante (ip navegador lenguaje so )

Cita:
Iniciado por mcun Ver Mensaje
lo de la redundancia echo return es solo para mi prueba se me paso....
Cuidado con ello, igual busca mejores maneras de hacer pruebas ... tan simple como el hecho de imprimir el valor retornado, que es lo que te interesa saber; total, es exactamente el mismo valor.

Cita:
Iniciado por mcun Ver Mensaje
lo del mail si definitivamente debería llamar a un clase para ello o hacerlo de forma inversa mmm tal vez heredar de esta clase desde una case mail.......
¿Herencia?; ERROR.

La programación orientada a objetos no es solo la utilización de clases. No pienses en tu código, en tu algoritmo, en una clase para lograr tu objetivo como ahora lo haces. Tienes que leer los conceptos, básico ...

Cita:
Iniciado por mcun Ver Mensaje
que doy por echo que existen x sistemas operativos y x navegadores .... te refieres a que no los liste todos o que debería tratarlos de modo mas abstracto
Código como este:
Código PHP:
Ver original
  1. public function get_so_v(){
  2.             if (@strpos($this->user_agent_conv_so, $this->so[0]) !== false){
  3.                 $so= "linux";
  4.             }
  5.             if (@strpos($this->user_agent_conv_so, $this->so[1]) !== false){
  6.                 $so= "windows";
  7.             }
  8.             echo $so;
  9.             return $so;
  10.         }// end functionget_so_v
Tema aparte de tu metodología (que igual habría que comentar), lo único que haces es comparar si un valor obtenido para el SO es "linux" o "windows". Viéndolo como código, en el caso que ninguna de las condiciones se cumpla tienes una variable no definida --error--, viéndolo como función de una clase, ese método no cumple su función de decirme qué SO se está utilizando, solo me dice si es Windows o Linux; ¿es esta tu intención?, entonces no crees que sería mejor crear métodos isWindows() e isLinux() que te retornen un booleano?.

Y no es solo caso de añadir "Mac" a tu lista, menos ahora con tanto "gadget" que sale a cada rato; Android --y variantes--, Moblin, Symbian, Palm OS, iPhone OS, Darwin, BSD, etc., etc., etc. ... no vas a enlistar todos los SOs, ¿o sí?


Cita:
Iniciado por mcun Ver Mensaje
y destructor ( no entiendo por que no destruye nada)
De nuevo: tu destructor está eliminando variables locales a ese método, variables que no están definidas, por ende, no está haciendo nada. Sigue tu propia metodología e imprime esas variables antes de eliminarlas ...

Además, si se destruye un objeto se va con todo y sus propiedades. Si tu intención es limpiar las propiedades del objeto --que así se entiende--, no tiene ningún caso. De nuevo, conceptos ...


Mi sugerencia:
Ve la función que te dejó GatorV, extrae toda la información que puedas o necesites, todo dentro del constructor y seteando a variables privadas por cada dato, luego entonces, solo necesitas getters para los valores que vayas a necesitas o métodos propios que puedan corresponder a tu objeto, como quizá un esLinux() como mencioné, quizá un esDispositivoMovil() que quizá podría interesar a quien utilize tu clase ... etc. etc. etc.


Saludos
__________________
I ♥ The Music!