Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Pablo Videla

#121
Cita de: moikano→@ en 11 Septiembre 2015, 20:39 PM
Si teneis todos razón y estáis todos equivocados?
Cabe la posibilidad de que sea un policía minusválido.

Entonces
Código (php) [Seleccionar]
throw new PoliciaException();
#122
Si bien la policia es una autoridad, deben comportarse como tal, no saltarse las reglas porque son la autoridad, en caso de que fuera una urgencia perfecto a cualquiera le podrìa pasar.

Pero no me digas que porque son la policia puede hacer y deshacer como se le plazca, porque eso es abuso de poder.


Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
#123
Cita de: MinusFour en  9 Septiembre 2015, 20:16 PM
Si, una opción valida. Aunque sin duda pone en cuestión el uso de private en tu clase. A lo mejor con protected puedes obtener los valores de la clase padre con una sola llamada a get_object_vars.
Buen punto, definitivamente deberìa ser protected los atributos de la clase padre. (Como dije al principio, php me ha hecho mal XD)




Perfecto MinusFour, con protected bastaba y sobraba pense al principio que querias que dejara como public los atributos por eso lo descarte altiro, pero con protected funciona perfecto. Algo basico en herencia y se me habia olvidado. Muchas gracias por la ayuda a todos!.

Mod: No hacer doble post
#124
Cita de: MinusFour en  9 Septiembre 2015, 19:53 PM
No necesitas usar get_class_vars una vez que moviste eso al constructor. Usas lo que hiciste al principio:

Código (php) [Seleccionar]
$properties = $this->getProperties();

Ahh y no me habia dado cuenta de otra cosa, las propiedades de la clase padre son private, es por eso que quizas no puedas verlas con get_class_vars.

Los atributos tienen que ser privados, para eso estan los getters. E hice lo que me dijiste en el constructor pero no tiene ningun efecto.




Encontre la solucion!  :D :D :D

Código (php) [Seleccionar]
        $properties = array_merge(parent::getProperties(),$this->getProperties());



Mod: No hacer doble post
#125
Cita de: MinusFour en  9 Septiembre 2015, 17:48 PM...

Hice lo que me dijiste

Código (php) [Seleccionar]
$properties = get_class_vars(get_class());

y puse en el constructor de persona

Código (php) [Seleccionar]
public function __construct() {
     $this->idPersona = '';
     $this->strNombres = '';
     $this->strApellidoPaterno = '';
     $this->strApellidoMaterno = '';
     $this->strRut = '';
     $this->strDv = '';
     $this->Empresa = '';
     $this->strImagenPersona = '';
   }


Pero ahora solo me arroja el nombre de la clase sin las propiedades, y ojo que seteo las propiedades como corresponde, con los setter y todo lo que eso significa.




Cita de: moikano→@ en  9 Septiembre 2015, 17:46 PM...

Lo probe y solo me arroja el nombre de la clase.


Mod: No hacer doble post.
#126
Cita de: MinusFour en  9 Septiembre 2015, 17:48 PM...

probaré lo que me dices. Acabo de salir a comer ajjaj gracias. Te digo cualquier cosa!




Cita de: moikano→@ en  9 Septiembre 2015, 17:46 PM...
lo pruebo apenas llegue, gracias !


Mod: No hacer doble post.

#127
Cita de: MinusFour en  9 Septiembre 2015, 17:38 PM
Quizás:

Código (php) [Seleccionar]

$properties = get_class_vars(get_class($this));


¿Sea mas apropiado? No estoy muy seguro pero creo que get_obj_vars() solo regresa propiedades que el objeto tiene inicializadas.

Eso solo me retorna las propiedades de la clase UsuarioTO y en nulo, en cambio en la version original solo me entrega las propiedades del UsuarioTO pero con los valores seteados como corresponde.
#128
Sorry por el doble post, dejare las definciones de las clases
Clase usuario
Código (php) [Seleccionar]

<?php


namespace octavius\controlador\intranet\usuario;

/**
 * Clase que representa a un usuario.
 * Extiende persona porque un usuario es una persona.
 * 
 * author : Pablo Videla .
 * @email : pablovidelayanez@gmail.com
 * 
 */
use octavius\controlador\intranet\persona\PersonaTO;

class 
UsuarioTO extends PersonaTO {

    private 
$idUsuario;
    private 
$strPassword;
    private 
$Rol;
    private 
$strLoginEmail;

    public function 
__construct() {
        
parent::__construct();
    }

    public function 
__destruct() {
        
    }

    public function 
getStrPassword() {
        return 
$this->strPassword;
    }

    public function 
getRol() {
        return 
$this->Rol;
    }

    public function 
getStrLoginEmail() {
        return 
$this->strLoginEmail;
    }

    public function 
setStrPassword($strPassword) {
        
$this->strPassword md5($strPassword);
    }

    public function 
setRol($Rol) {
        
$this->Rol $Rol;
    }

    public function 
setStrLoginEmail($strLoginEmail) {
        
$this->strLoginEmail $strLoginEmail;
    }

    public function 
getIdUsuario() {
        return 
$this->idUsuario;
    }

    public function 
setIdUsuario($idUsuario) {
        
$this->idUsuario $idUsuario;
    }

    
/**
     * Metodo que nos permite obtener las propiedades
     * de toda la clase.
     * @return type
     */
    
public function getProperties() {
        return 
get_object_vars($this);
    }

    
/**
     * Nos permite obtener todos los atributos del objeto a json, de esta forma
     * podemos enviar el objeto json por ajax e interactuar con el por javascript
     * @return type JSON OBJECT
     */
    
public function _toJson() {
        
$properties $this->getProperties();
        
$object = new \StdClass();
        
$object->_class get_class($this);
        foreach (
$properties as $name => $value) {
            
$object->$name $value;
        }
        return 
json_encode($object);
    }

}

?>


clase persona

Código (php) [Seleccionar]
<?php

namespace octavius\controlador\intranet\persona;

/**
 * @author PabloV
 * @version 1.0
 * @created 07-may-2015 12:39:25
 */
class PersonaTO {

    private 
$idPersona "";
    private 
$strNombres "";
    private 
$strApellidoPaterno "";
    private 
$strApellidoMaterno "";
    private 
$strRut "";
    private 
$strDv "";
    private 
$Empresa "";
    private 
$strImagenPersona "";

    public function 
__construct() {
        
    }

    public function 
__destruct() {
        
    }

    public function 
getStrNombres() {
        return 
$this->strNombres;
    }

    public function 
getStrApellidoPaterno() {
        return 
$this->strApellidoPaterno;
    }

    public function 
getStrApellidoMaterno() {
        return 
$this->strApellidoMaterno;
    }

    public function 
getStrRut() {
        return 
$this->strRut;
    }

    public function 
getStrDv() {
        return 
$this->strDv;
    }

    
/**
     * Devuelve un objeto Empresa con todos sus atributos.
     * @return Empresa
     */
    
public function getEmpresa() {
        return 
$this->Empresa;
    }

    public function 
getStrImagenPersona() {
        return 
$this->strImagenPersona;
    }

    public function 
setStrNombres($strNombres) {
        
$this->strNombres $strNombres;
    }

    public function 
setStrApellidoPaterno($strApellidoPaterno) {
        
$this->strApellidoPaterno $strApellidoPaterno;
    }

    public function 
setStrApellidoMaterno($strApellidoMaterno) {
        
$this->strApellidoMaterno $strApellidoMaterno;
    }

    public function 
setStrRut($strRut) {
        
$eliminarElementos "/[-][0-9]/";
        
$strRut preg_replace($eliminarElementos""$strRut);
        
$eliminarElementos "/[-][k]/";
        
$strRut preg_replace($eliminarElementos""$strRut);
        
$eliminarElementos "/[-][K]/";
        
$strRut preg_replace($eliminarElementos""$strRut);
        
$eliminarElementos "/[-]/";
        
$strRut preg_replace($eliminarElementos""$strRut);
        
$eliminarElementos "/[.]/";
        
$strRut preg_replace($eliminarElementos""$strRut);

        
$multiplicaciones = array();
        
$multiplicaciones[0] = 2;
        
$multiplicaciones[1] = 3;
        
$multiplicaciones[2] = 4;
        
$multiplicaciones[3] = 5;
        
$multiplicaciones[4] = 6;
        
$multiplicaciones[5] = 7;

        
$formula "";
        
$suma 0;
        
$contadorMultiplo 0;
        for (
$i strlen($strRut); $i >= 0$i--) {
            if (isset(
$strRut[$i])) {
                
$formula.=$strRut[$i];
            }
        }
        for (
$i 0$i strlen($strRut); $i++) {
            if (
$i == count($multiplicaciones)) {
                
$contadorMultiplo 0;
            }
            if (isset(
$strRut[$i])) {
                
$suma $suma $multiplicaciones[$contadorMultiplo] * $formula[$i];
            }
            
$contadorMultiplo++;
        }
        
$resultadoResto $suma 11;
        
$resultadoDigitoVerificador 11 $resultadoResto;
        switch (
$resultadoDigitoVerificador) {
            case 
"11":
                
$resultadoDigitoVerificador 0;
                break;
            case 
"10":
                
$resultadoDigitoVerificador "k";
                break;
        }
        
$this->setStrDv($resultadoDigitoVerificador);
        
//echo "El digito verificador es $resultadoDigitoVerificador <br/>";
        // echo "Rut invertido $formula";    
        
$this->strRut = (string) $strRut;
    }

    public function 
setStrDv($strDv) {
        
$this->strDv $strDv;
    }

    public function 
setEmpresa($Empresa) {

        
$this->Empresa $Empresa;
    }

    
/**
     * http://carluys.blogspot.cl/2013/01/codificar-imagenes-en-base64-con-php.html
     * @param type $strImagenPersona
     */
    
public function setStrImagenPersona($strImagenPersona) {
        
/**
         * $img_src = "image/sample.png";  
          $imgbinary = fread(fopen($img_src, "r"), filesize($img_src));
          $img_str = base64_encode($imgbinary);
          echo '<img src="data:image/jpg;base64,'.base64_encode($imgbinary).'" />';
         */
        
$this->strImagenPersona $strImagenPersona;
    }

    public function 
getIdPersona() {
        return 
$this->idPersona;
    }

    public function 
setIdPersona($idPersona) {
        
$this->idPersona $idPersona;
    }

    
/**
     * Metodo que nos permite obtener las propiedades
     * de toda la clase.
     * @return type
     */
    
public function getProperties() {
        return 
get_object_vars($this);
    }

    
/**
     * Nos permite obtener todos los atributos del objeto a json, de esta forma
     * podemos enviar el objeto json por ajax e interactuar con el por javascript
     * ---
     * Se agrega una validacion que nos permite identificar si el valor a  agregar es un Objeto
     * independiente, si es así, entonces esa propiedad se convierte a json de forma completa.
     * if(is_object($value)){
      $object->$name=$value->_toJSON(); <----- aqui.
      }else{
      $object->$name = $value; <--- Originalmente solo estaba esto.
      }
     * 
     * @return type JSON OBJECT
     */
    
public function _toJson() {
        
$properties $this->getProperties();
        
$object = new \StdClass();
        
$object->_class get_class($this);
        foreach (
$properties as $name => $value) {
            if (
is_object($value)) {
                
$object->$name $value->_toJson();
            } else {
                
$object->$name $value;
            }
        }
        return 
json_encode($object);
    }

}

?>


Ojo que estan en construccion xD
#129
Cita de: MinusFour en  9 Septiembre 2015, 17:32 PM
Pues poner la definición de los constructores y de las propiedades de las clases?

Ohhh.... esto de programar solo en PHP me tiene el cerebro atrofiado... gracias MinusFour!!!! (En java no me pasa esta wea ni cagando)

Un momento... pero si lo tengo!


Código (php) [Seleccionar]
  public function __construct() {
        parent::__construct();
    }
#130
Programación General / Re: Procesador x86
9 Septiembre 2015, 17:25 PM
gracias por el dato FKT