public static function getInstanceBySQLRow(array $row)
 {
     $cliente = new \Cliente();
     $cliente->setNombre($row["nombre"]);
     $cliente->setEdad($row["password"]);
     $cliente->setApellido($row["usuario"]);
     $cliente->setTipoDocumento($row["tipo_doc"]);
     $cliente->setNumeroDocumento($row["documento"]);
     $cliente->setSexo($row["sexo"]);
     return $cliente;
 }
<?php

require_once '../model.business/Cliente.php';
require_once '../model.dal/ClientesDal.php';
require_once '../model.dal/LoginDal.php';
require_once '../conexion.php';
//Clases
$clientes = new Cliente();
$clientesDal = new ClientesDal();
$loginDal = new LoginDal();
if (isset($_POST["txt_nuevo_rut"])) {
    //Set Class
    $clientes->setRut($_POST["txt_nuevo_rut"]);
    $clientes->setNombre($_POST["txt_nuevo_nombre"]);
    $clientes->setApellido($_POST["txt_nuevo_apellido"]);
    $clientes->setEmail($_POST["txt_nuevo_email"]);
    $clientes->setTelefono($_POST["txt_nuevo_telefono"]);
    $clientes->setUsername($_POST["txt_nuevo_rut"]);
    $password1 = $_POST["txt_nuevo_password_1"];
    $password2 = $_POST["txt_nuevo_password_2"];
    $passwordDefinitiva = NULL;
    if ($password1 == $password2) {
        $passwordDefinitiva = $password1;
    }
    $password = $clientes->crypt_blowfish_bydinvaders($passwordDefinitiva);
    $clientes->setPassword($password);
    //Nos retornará un numero la consulta
    $resultado = $loginDal->insertLogin($clientes);
    if ($passwordDefinitiva != null) {
        switch ($resultado) {
            //Si retorna 1 todo Ok
     // no usa el layout
     $view->clientes = Cliente::getClientes();
     $view->contentTemplate = "templates/clientesGrid.php";
     // seteo el template que se va a mostrar
     break;
 case 'saveClient':
     // limpio todos los valores antes de guardarlos
     // por ls dudas venga algo raro
     $id = intval($_POST['id']);
     $nombre = cleanString($_POST['nombre']);
     $apellido = cleanString($_POST['apellido']);
     $fecha = cleanString($_POST['fecha']);
     $peso = cleanString($_POST['peso']);
     $cliente = new Cliente($id);
     $cliente->setNombre($nombre);
     $cliente->setApellido($apellido);
     $cliente->setFecha($fecha);
     $cliente->setPeso($peso);
     $cliente->save();
     break;
 case 'newClient':
     $view->client = new Cliente();
     $view->label = 'Nuevo Cliente';
     $view->disableLayout = true;
     $view->contentTemplate = "templates/clientForm.php";
     // seteo el template que se va a mostrar
     break;
 case 'editClient':
     $editId = intval($_POST['id']);
     $view->label = 'Editar Cliente';
     $view->client = new Cliente($editId);
<?php

try {
    include_once '../model.business/Cliente.php';
    include_once '../model.dal/ClientesDal.php';
    if (isset($_POST['txt_rut'])) {
        //CLASS
        $c = new Cliente();
        $cDal = new ClientesDal();
        //SET
        $c->setRut($_POST['txt_rut']);
        $c->setNombre($_POST['txt_nombre']);
        $c->setApellido($_POST['txt_apellido']);
        $c->setEmail($_POST['txt_email']);
        $c->setTelefono($_POST['txt_telefono']);
        if (isset($_POST['btn_guardar'])) {
            if ($cDal->updateCliente($c) == 1) {
                header("Location: ../intranet/redirect_index_intranet_cliente_modificado.php");
            } else {
                header("Location: ../intranet/redirect_index_intranet_error.php");
            }
        }
    } else {
        header("Location ../intranet/intranet_administrador.php");
    }
} catch (Exception $e) {
    header("Location: ../intranet/redirect_index_intranet_error.php");
}
 function buscarClienteXRut($rut)
 {
     require_once '../conexion.php';
     require_once '../model.business/Cliente.php';
     require_once '../model.business/Persona.php';
     try {
         $conexion = new conexion();
         $cliente = new Cliente();
         $sql = "SELECT c.nombre, c.apellido,c.rut,c.telefono, c.email FROM clientes c " . "INNER JOIN login l ON c.username = l.username " . "WHERE c.rut = " . $rut . ";";
         $conn = $conexion->conn();
         $query = $conn->query($sql);
         $rows = $query->fetchAll();
         foreach ($rows as $row) {
             $cliente->setNombre($row["nombre"]);
             $cliente->setApellido($row["apellido"]);
             $cliente->setRut($row["rut"]);
             $cliente->setTelefono($row["telefono"]);
             $cliente->setEmail($row["email"]);
             return $cliente;
         }
         return null;
     } catch (Exception $ex) {
         $ex->getTraceAsString();
     }
 }