Skip to content

Error al cargar clases con el metodo classes() #51

Closed
inkenrat opened this Issue May 27, 2012 · 1 comment

2 participants

@inkenrat

Error:
No se pueden pasar varios parametros al constructor de una clase.

Descripcion:
Cuando utilizo el metodo classes si paso varios valores en le arrary para asignarlos a varios parametros, me asigna los valores a un solo parametro (un string) y me los colca separados por comas (,) ejemplo:

Constructor de mi clase mi clase:

class MiClase extends ZP_Load {
public function __construct($param1, $param2) {
...

Carganod la clase con el metodo classes

$this->miClase = $this->classes("miclase", "MiClase", array('Valor1', 'Valor2'));

Al hacer un var_dump a los parametros de mi constructor me regresa lo siguiente:
____(array($param1, $param2));

Resultado:
array(2) {
[0]=>
string(14) "Valor1, Valor2"
[1]=>
NULL
}

Como lo resolvi:

Al revisar tus clases rastre el error hasta la clase singleton (archivo: zan/classes/singleton.php) en la linea 85 me di cuenta que pasa los parametros como una cadena ya que la colocas entre comillas dobles:
eval("self::\$instances[\$Class] = new \$Class(\"$args\");");

lo que hice fue pasar la asignacion de comillas a las lineas 73 y 75:
Original:
if($i === count($params) - 1) {
$args .= "$param";
} else {
$args .= "$param, ";
}

Modificado:

if($i === count($params) - 1) {
$args .= "\"$param\"";
} else {
$args .= "\"$param\", ";
}

Y ademas modifique la linea 85 para eliminar las comillas:
Original:
eval("self::\$instances[\$Class] = new \$Class(\"$args\");");
Modificado
eval("self::\$instances[\$Class] = new \$Class($args);");

var_dump despues del cambio
____(array($param1, $param2));

Resultado:
array(2) {
[0]=>
string(6) "Valor1"
[1]=>
string(6) "Valor2"
}

Gracias por todo, espero que este bien mi modificacion, saludos.

@MilkZoft MilkZoft added a commit that referenced this issue May 28, 2012
@MilkZoft #51 Fixed 2857847
@MilkZoft MilkZoft added a commit that referenced this issue May 28, 2012
@MilkZoft #51 Fixed 31e86c0
@MilkZoft
Owner

Fixed

@MilkZoft MilkZoft closed this May 28, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.