Artículo
|
Curiosa creación de objetos utilizando PHP |
Todo el mundo que conozca PHP sabe como crear objetos de una clase creada. Recordemos que esto se crea con el elemento “=”, seguido de la palabra reservada “new” y seguido del nombre de la clase.
Pues ahora hemos visto una original forma de crear objetos en PHP utilizando métodos encadenados y un objeto genérico, recordando mucho a como se crean en frameworks como jQuery.
Será cuestión de probar que forma de crear los objetos es mejor.
Vía: phpdeveloper
$coche = new Vehiculo();
Pues ahora hemos visto una original forma de crear objetos en PHP utilizando métodos encadenados y un objeto genérico, recordando mucho a como se crean en frameworks como jQuery.
// Define a new class
$animal = $class->new()
->def('init', function($t, $name) {
$t->name = $name;
})
->def('speak', function($t) {
echo "My name is $t->namen";
});
// Extend a class
$dog = $animal->extend()
->def('speak', function($t) {
echo "My name is $t->name, I have just met you and I love you, SQUIRREL!n";
})
->def('bark', function($t) {
echo "Woof!n";
});
Para poder hacer esto, debemos de crear primero la clase Obj
class Obj {
public function __construct($methods=array()) {
$this->methods = $methods;
}
public function method($name) {
if (!isset($this->methods[$name]))
throw new BadMethodCallException();
return $this->methods[$name];
}
public function fn($name, $fn) {
$this->methods[$name] = $fn;
return $this;
}
public function __call($name, $args) {
return call_user_func_array(
$this->method($name),
array_merge(array($this), $args)
);
}
}
// Allow chaining method calls off the constructor..
function Obj($methods=array())
{
return new Obj($methods);
}
Será cuestión de probar que forma de crear los objetos es mejor.
Vía: phpdeveloper
![]() |
Publicado por: angel carrero |
|
|
Comentarios
Últimas noticias
· factura
Últimos artículos














































