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

Declarar todos los atributos como private en el modelo Usuario, es bueno ??

Estas en el tema de Declarar todos los atributos como private en el modelo Usuario, es bueno ?? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos, Realmente no soy experto en POO con PHP. Ya que vengo de programación estructurada. Tengo en mi modelo usuario una clase llamada ...
  #1 (permalink)  
Antiguo 05/07/2010, 19:36
Avatar de richicasas  
Fecha de Ingreso: abril-2007
Ubicación: Colombia
Mensajes: 692
Antigüedad: 17 años, 7 meses
Puntos: 13
De acuerdo Declarar todos los atributos como private en el modelo Usuario, es bueno ??

Hola a todos,

Realmente no soy experto en POO con PHP. Ya que vengo de programación estructurada.

Tengo en mi modelo usuario una clase llamada Usuario y quiero declarar todos sus atributos como private para usarlo de la siguiente forma en un sistema de login.

Usuario.php (modelo )
Código PHP:
<?php
    
class Usuario {
        private 
$id;
        private 
$user;
        private 
$clave;
        private 
$name;
        private 
$tipo;

        public function 
__construct($name$user$clave)
                {
                 
$this->id NULL;
                     
$this->user $user;
                     
$this->clave $clave;
                     
$this->name $name;
                     
$this->tipo 1;    
                 }
        
/*
 He visto en varias clases de login que en verificar() pasan los parametros que vienen por POST, y yo quiero saber si hacerlo asi como yo lo estoy haciendo mejora un poco la seguridad del sistema o si incumplo alguna regla del MVC o del POO.

NOTA: La pregunta es solo esa, mas no como brindar mas seguridad, pues aqui solo muestro lo basico de la clase, mas no las diferentes validaciones o metodos de seguridad.
*/
        
public function verificar(){
            
$result $db->query("SELECT * FROM usuario WHERE nombre_usuario = '$this->user' AND contrasena = '$this->clave'");
            if(
$db->numero_result($result)>0)
                            return 
true;
                        else
                            return 
false;
                       
        }
        
        
    }
?>
controlador.php ( masomenos lo usaria asi )

Código PHP:
       $usuario = new usuario(null$_POST['user'], $_POST['clave']);
       if(
$usuario->verificar())
          echo 
"logueo exitoso";
      else
          echo 
"error"
Muchas gracias por la ayuda.
__________________
Juguetes Sexuales
  #2 (permalink)  
Antiguo 05/07/2010, 22:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Declarar todos los atributos como private en el modelo Usuario, es bueno ?

Pero si ya lo hiciste, el de colocarlo private, entonces ¿cuál es la duda?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 05/07/2010, 22:49
Avatar de richicasas  
Fecha de Ingreso: abril-2007
Ubicación: Colombia
Mensajes: 692
Antigüedad: 17 años, 7 meses
Puntos: 13
De acuerdo Respuesta: Declarar todos los atributos como private en el modelo Usuario, es bueno ?

Aunque no he verificado si funciona debido al problema con el PDO (el otro POST) La duda en si es la siguiente:
Normalmente uno cuando llame el controlador para loguearse seria asi:
Código PHP:
$login = new usuario();
if(
$login->verificar($_POST['usuario'], $POST['clave']))
    echo 
"bien";
else
    echo 
"mal"
Pero CREO, mas no estoy seguro, si declarando los atributos como privados se podria acceder a ellos con ese verificar ??, por eso lo cambie por:

Código PHP:
$login = new usuario(null$_POST['usuario'], $POST['clave'], 0);
if(
$login->verificar()) // Aqui ya no paso parametros.
    
echo "bien";
else
    echo 
"mal"
En pocas palabras, lo que quiero es evitar al maximo no pasar parametros a traves de los metodos sino solamente por el constructor. Quisiera saber si hay algo de malo en ello o al contrario es mucho mejor para el sistema.

Gracias por responder.
__________________
Juguetes Sexuales
  #4 (permalink)  
Antiguo 05/07/2010, 23:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Declarar todos los atributos como private en el modelo Usuario, es bueno ?

La misma palabra te lo dice constructor. Mira este aporte para que tengas una idea más clara http://www.forosdelweb.com/3445304-post4.html
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: atributos, declarar, modelo, private, buenos, usuarios
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 16:42.