Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/01/2009, 06:09
paloto
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: ORM casero creado desde cero

A continuación, por orden de importancia, habría que explicar la clase "elemento", pero voy a hacerlo antes con "CampoValor" y "CondicionWhere", pues son más sencillas y se utilizan en la clase "elemento" por lo que será más fácil entenderla una vez explicadas estas.

CampoValor
Clase muy sencilla que define un tipo de objeto con dos propiedades: campo y valor.


Código php:
Ver original
  1. class CampoValor {
  2.      public $campo;
  3.      public $valor;
  4.  
  5.      function CampoValor($campo, $valor){
  6.           $this->campo=$campo;
  7.           $this->valor=$valor;
  8.      }
  9. }



CondicionWhere
Esta es una clase también bastante sencilla con dos parámetros llamados (en un exceso de creatividad) "parametro1", "parametro2" y un tercero llamado "operador". Esta función se encarga de definir las condiciones "WHERE" para las consultas. En un principio los parámetros eran tan simples como "campo", "valor" y "operador" de forma que simplemente se concatenaban "campo+operador+valor" dando por ejemplo, "id=35", sin embargo, me propuse prepararlo para consultas más complejas, y por este motivo abstraje más los parámetros de forma que se pudiera meter condiciones dentro de condiciones con diferentes niveles de prioridad, para crear por ejemplo, clausulas WHERE de este estilo: WHERE ((nombre LIKE 'Can%') AND ((nombre_cortisimo = 'CAN') OR (nombre_cortisimo = 'CNT'))).

Lo cierto es que no sé si me va a compensar pues me supuso más de un quebradero de cabeza pero finalmente funciona y de esta forma me cubro las espaldas.

La clase en sí es sencilla. Lo complicado es su utilización por parte de la clase "elemento", pero debemos tener claro que los parámetros que le pasamos al constructor de esta clase pueden ser: ("nombre", "Can%", "LIKE") es decir, 3 cadenas, o puede ser del tipo: ($Condicion1, $Condicion2, "OR"), es decir, dos objetos CondicionWhere y un operador que los una.


Código php:
Ver original
  1. class CondicionWhere {
  2.  
  3. public $parametro1;
  4. public $parametro2;
  5. public $operador;
  6.  
  7. function CondicionWhere($parametro1, $parametro2, $operador){
  8.  
  9. $this->parametro1=$parametro1;
  10. $this->parametro2=$parametro2;
  11.  
  12. if ($operador==""){ // Si no se le pasa operador, pone "=" por defecto
  13.     $this->operador="=";
  14. }
  15. else{
  16.     $this->operador=$operador;
  17. }
  18. }
  19. }



Bien, una vez entendida esta clase, estamos en disposición de meternos en el gran meollo, la clase "elemento".

Última edición por paloto; 02/01/2009 a las 06:19