Extends y New en PHP5
Trabajando en phpORM, se dio la necesidad de poder crear un objeto del tipo clase Hija desde el codigo de la clase ORM
phpORM dispone de una clase base llamada ORMBase, sin embargo esta clase es abstracta, es decir, no puede ser utilizada directamente. Para usar phpORM se debe crear una clase que herede de phpORM.
Este codigo podria servir en cualquier situacion que debamos crear una clase heredable ( abstracta ) y necesitemos crear objetos sin saber el nombre de las clases Hijas.
<?php
abstract class Base
{function nuevo()
{
$className = get_class($this);
return new $className();
}
function quiensoy()
{
echo “soy Base\n”;
}}
class Hija extends Base
{
function quiensoy()
{
echo “soy hija\n”;
}}
$a = new Hija();
$b = $a->nuevo();$b->quiensoy();
?>
La funcion nuevo dentro de la clase Base, es la que se encarga de crear el objeto. Este objeto sera siempre del mismo tipo que el objeto que hizo la llamada.
Technorati Tags: php herencia