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;
                       
        }
        
        
    }
?>    Código PHP:
          $usuario = new usuario(null, $_POST['user'], $_POST['clave']);
       if($usuario->verificar())
          echo "logueo exitoso";
      else
          echo "error"; 
    
 

