Categorías destacadas
programacion php    
Artículo
0
¡votar!

 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.

$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
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon