[Madrid-pm] SocorrOO!
Bruno
brunorc en gmail.com
Jue Mar 22 04:00:21 PDT 2007
Hola todos!
Tengo problema con diseño de mis objetos. Uso Rose::DB::Object - el
ORM más rapido de todos - y he creado mis modules (automaticamente)
con Loader, entonces todo el código de capa de BdD está en modulos de
[namespace] MyApp::DB.
Pues, el resto de código está en [namespace] MyApp e injere [no estoy
seguro de palabra - en Inglés "inherits"] de su parte en MyApp::DB. El
problema es, que cuando yo creo el objeto de tipo MyApp::Cerdo, que
está relacionada con MyApp::Corral, puedo hacerlo:
$cerdo->corral->nombre;
cuando "nombre" es un campo en tabla "corral", pero no puedo hacerlo:
$cerdo->corral->demolish('irrevertible');
cuando "demolish" es un metodo añadido de MyApp::Corral, porque el
metodo "corral" del MyApp::Cerdo siempre punta al MyApp::DB::Corral (y
no al MyApp::Corral).
Los soluciones, que veo:
1) cambiar las referencias en las clases generados automaticamente,
que la solucion es más feo, que el cerdo en corral;
2) quitar las clases de MyApp y usar solo MyApp::DB con código
añadido - pues, es mejor, pero
me gustaría no tocar las clases de MyApp::DB.
Si quiero comer el pastel y tenerlo - pues, es imposible y tengo que
acceptarlo. Pero si teneis algunas sugerencias, os escucho con
atención.
Y como siempre: OO puede solver muchos problemas... y añadir los nuevos :-)
Saludos y gracias, Bruno
Más información sobre la lista de distribución Madrid-pm