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();
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ú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.
throw new PoliciaException();
Cita de: MinusFour en 9 Septiembre 2015, 20:16 PMBuen punto, definitivamente deberìa ser protected los atributos de la clase padre. (Como dije al principio, php me ha hecho mal XD)
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.
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:$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.
$properties = array_merge(parent::getProperties(),$this->getProperties());
Cita de: MinusFour en 9 Septiembre 2015, 17:48 PM...
$properties = get_class_vars(get_class());
public function __construct() {
$this->idPersona = '';
$this->strNombres = '';
$this->strApellidoPaterno = '';
$this->strApellidoMaterno = '';
$this->strRut = '';
$this->strDv = '';
$this->Empresa = '';
$this->strImagenPersona = '';
}
Cita de: moikano→@ en 9 Septiembre 2015, 17:46 PM...
Cita de: MinusFour en 9 Septiembre 2015, 17:48 PM...
Cita de: moikano→@ en 9 Septiembre 2015, 17:46 PM...lo pruebo apenas llegue, gracias !
Cita de: MinusFour en 9 Septiembre 2015, 17:38 PM
Quizás:
$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.
<?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);
}
}
?>
<?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);
}
}
?>
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?
public function __construct() {
parent::__construct();
}