The New Cult of Dead Cow

February 21, 2007






Extends y New en PHP5

Filed under: Programacion, PHP, php-ORM, Web

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:

February 1, 2007






php-ORM

php-ORM es un nuevo y pequeño motor de persistencia de objetos para PHP5. Se ha tratado de realizarlo lo mas usable y flexible posible. Y aunque todavia esta en desarrollo ya va teniendo muy buena pinta.

Entre las cosas que ya puede hacer estan:

  • Recuperar un registro de la base de datos usando su PK
  • Guardar cambios del registro en la base de datos
  • Recuperar un registro de la base de datos usando algun campo UNIQUE
Y este es nuestro TODO-List:
  • Permitir la busqueda usando cualquier campo
  • Terminar el soporte para las claves foraneas
  • Terminar la pagina web.

Este es un ejemplo de un script que usa php-ORM:

<?php

    require(’ORM.php’);

    class Test extends ORM
    {
        protected $tablename = "notarios";
       
        protected $PK = array("id2");
        protected $names = array("id2"=>"id","login"=>"login","clave"=>"passwd","appaterno"=>"appaterno","apmaterno"=>"apmaterno", "nombre"=>"nombre", "email"=>"email", "telefono"=>"telefono", "celular"=>"celular");
       
        protected function createObject($pk)
        {
            return new Test($pk);
        }
       
    }

    $a = new Test(null);
    $b = $a->getOneBy("login","czarate");
    echo $b->login;
    echo "\n\n";
?>


Eso es lo minino que hay que definir en php-ORM para que funcione con nuestra base de datos.

Para los que se animen a probarlo, la pagina web del proyecto es php-ORM

Technorati Tags: php, orm, programacion

powered by performancing firefox






















Get free blog up and running in minutes with Blogsome
Theme designed by B A Khan