Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

CakePHP -> $uses y relaciones de modelos <- cuando usarlos?

Estas en el tema de CakePHP -> $uses y relaciones de modelos <- cuando usarlos? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buen dia, aca estoy de nuevo para ver si me pueden ayudar en una duda que tengo sobre los modelos de las BD en cakephp. ...
  #1 (permalink)  
Antiguo 05/09/2009, 00:59
 
Fecha de Ingreso: agosto-2009
Mensajes: 42
Antigüedad: 14 años, 9 meses
Puntos: 0
CakePHP -> $uses y relaciones de modelos <- cuando usarlos?

Buen dia, aca estoy de nuevo para ver si me pueden ayudar en una duda que tengo sobre los modelos de las BD en cakephp.

Por ejemplo, cuando yo quiero usar uno o mas modelos en una determinada controladora ... uso el atributo $uses .. asi:

$uses(Mod1,Mod2,etc ...)

ya con esto puedo traerme todos los datos de esos modelos (o tabla), etc ...

mi duda es ... cuando, por que y para que usamos relaciones hasOne, hasMany, etc ???? .... es realmente necesario usarlos?? ... porque como decia con el $uses ya tengo todos los datos cada vez que quiero, incluso ya no cargo datos de más ... solo aquellos que deseo especificamente en ese momento.

Donde si he visto que es util tener esas asosiaciones es cuando eliminamos un objeto, entonces se viene la eliminacion en cascada ... o cuando edito ...... estoy en lo correcto???.

Gracias por su ayuda ...

SAludos
  #2 (permalink)  
Antiguo 05/09/2009, 12:26
Avatar de mij
mij
 
Fecha de Ingreso: enero-2007
Mensajes: 70
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: CakePHP -> $uses y relaciones de modelos <- cuando usarlos?

Mi opinion es que hay que usar hasOne, hasMany, etc. siempre, porque dan un significado a la relación, y hace que funcione toda la "automagia".

En los casos donde he tenido que usar un modelo no relacionado directamente, siempre he usado App:import('modelo'), y nunca he usado $uses.

El único sitio donde se me ocurre que puede ser útil es dentro de appController para incluir algun tipo de lógica común en, por ejemplo, beforefilter(). Aun así $uses puede dar algun que otro problema

editado:
Por cierto, hasMany, hasOne, etc. están definidas en los modelos, no las controladoras, aunque se pueda modificar desde estas. Lo digo porque creo que igual te estas haciendo un pequeño lío (lo cual es normal al empezar con cakePHP sobre todo si es tu primer framework MVC).
  #3 (permalink)  
Antiguo 05/09/2009, 20:55
 
Fecha de Ingreso: agosto-2009
Mensajes: 42
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: CakePHP -> $uses y relaciones de modelos <- cuando usarlos?

gracias por la respuesta.

Pues si, es el primer framework que estoy aprendiendo. Y si defino los hasone, etc, en los modelos, ya sea desde el modelo A->B y de B->A.

Entonces al parecer no debemos usar el atributo $user excepto el caso especial que dices?
  #4 (permalink)  
Antiguo 06/09/2009, 05:31
Avatar de mij
mij
 
Fecha de Ingreso: enero-2007
Mensajes: 70
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: CakePHP -> $uses y relaciones de modelos <- cuando usarlos?

Mi opinion personal es que no, no se debe usar el atributo $uses excepto en el caso que comenté, y aun así casi siempre puedes usar componentes en vez de eso, que aportan mayor semántica (vamos, que es mas facil de entender un programa que tiene por ejemplo un componente que se llame 'autentificación', que simplemente otro que simplemente dice que appController 'uses' el modelo 'Usuario'). Asi que en resumidas cuentas: yo personalmente jamás uso $uses y muchos desarrolladores cake tampoco.

Si es tu primer framework no te preocupes, que la curva de aprendizaje puede ser un poco "empinada" pero te aseguro que la productividad será ordenes de magnitud mayores una vez lo controles. Ánimo!!!
  #5 (permalink)  
Antiguo 07/09/2009, 00:24
 
Fecha de Ingreso: agosto-2009
Mensajes: 42
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: CakePHP -> $uses y relaciones de modelos <- cuando usarlos?

muchas gracias por la respuesta amigo .... es mas , siempre ando revisando la documentacion oficial de cakephp ... pero tu sabes que a veces uno no encuentra soluciones asi de facil en la documentacion, es por eso que recurro a ustedes .

ya estare por aca fastidiandote (o fastidiandolos ) ... nuevamente .. hehe .

gracias

saludos
  #6 (permalink)  
Antiguo 07/09/2009, 18:15
 
Fecha de Ingreso: agosto-2009
Mensajes: 42
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: CakePHP -> $uses y relaciones de modelos <- cuando usarlos?

Cita:
Iniciado por mij Ver Mensaje
Mi opinion personal es que no, no se debe usar el atributo $uses excepto en el caso que comenté, y aun así casi siempre puedes usar componentes en vez de eso, que aportan mayor semántica (vamos, que es mas facil de entender un programa que tiene por ejemplo un componente que se llame 'autentificación', que simplemente otro que simplemente dice que appController 'uses' el modelo 'Usuario'). Asi que en resumidas cuentas: yo personalmente jamás uso $uses y muchos desarrolladores cake

Si es tu primer framework no te preocupes, que la curva de aprendizaje puede ser un poco "empinada" pero te aseguro que la productividad será ordenes de magnitud mayores una vez lo controles. Ánimo!!!
sin embargo .... tengo una duda que se me acaba de presentar y que solo alguien experimentado me podria responder ....

Tengo 2 casos en el cual yo puedo solicitar datos desde una controladora .... Estoy en la controller A y requiero datos de un modelo X :

1.- Viajando entre modelos relacionados :

$data=$this->A->otros modelos->X->find('all');

2.- O llamando al controller de ese modelo X con no se .... alguna funcion parecida a requestAction del controller:

$data=$this->requestAction('/X/getData');

en donde getData es un metodo de XController y con el obtengo los valores.

Aca la pregunta: Cual de las formas es la mas recomendada?, por que?, por orden?, por rendimiento?

Saludos

Gracias por la ayuda.
  #7 (permalink)  
Antiguo 10/09/2009, 10:02
 
Fecha de Ingreso: agosto-2009
Mensajes: 42
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: CakePHP -> $uses y relaciones de modelos <- cuando usarlos?

alguien que me pueda resolver esta duda ultima que postie sobre cakephp? por favor
  #8 (permalink)  
Antiguo 11/09/2009, 06:45
Avatar de mij
mij
 
Fecha de Ingreso: enero-2007
Mensajes: 70
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: CakePHP -> $uses y relaciones de modelos <- cuando usarlos?

La primera opción es la mas recomendada, por orden, por rendimiento y por estilo. De hecho, intenta no usar requestAction si puedes evitarlo. Se que la documentacion de cakephp no es la mejor del mundo, asi que es normal que te hagas un lio al principio. Te recomiendo que cuando tengas estas dudas busques en la bakery, o la API.
Resumiendo tus dudas:

1 - Intenta siempre acceder a los modelos a través de relaciones del controlador ($this->Modelo1->Modelo2, etc.)
2 - En los casos en los que quieras usar un modelo no relacionado, usa App::import()
3 - No uses $uses nunca. Esta en desuso y se retirará de versiones posteriores (sustituido por App::import).
4 - Si puedes evitarlo, no uses requestAction: consume muchos recursos. Puedes por ejemplo meter funcionalidades comunes en un componente.

Por cierto, para otra no revivas temas si no es para añadir informacion util: es injusto para los demás y va contra la norma 2.8 del foro, ok?

Ánimo con cakephp!
  #9 (permalink)  
Antiguo 23/10/2009, 15:43
 
Fecha de Ingreso: septiembre-2009
Mensajes: 1
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: CakePHP -> $uses y relaciones de modelos <- cuando usarlos?

Cita:
Iniciado por pgryu Ver Mensaje
Buen dia, aca estoy de nuevo para ver si me pueden ayudar en una duda que tengo sobre los modelos de las BD en cakephp.

Por ejemplo, cuando yo quiero usar uno o mas modelos en una determinada controladora ... uso el atributo $uses .. asi:

$uses(Mod1,Mod2,etc ...)

ya con esto puedo traerme todos los datos de esos modelos (o tabla), etc ...

mi duda es ... cuando, por que y para que usamos relaciones hasOne, hasMany, etc ???? .... es realmente necesario usarlos?? ... porque como decia con el $uses ya tengo todos los datos cada vez que quiero, incluso ya no cargo datos de más ... solo aquellos que deseo especificamente en ese momento.

Donde si he visto que es util tener esas asosiaciones es cuando eliminamos un objeto, entonces se viene la eliminacion en cascada ... o cuando edito ...... estoy en lo correcto???.

Gracias por su ayuda ...

SAludos
hola, mira una traduccion literal diria belongsto: pertenece a, este se utiliza cuando en una BD tienes una relacion de muchos a uno y "hasMany" : tiene muchos , se utiliza cuando en una DB tienes una relacion de uno a muchos.

claro este punto, podrias explicarme mejor en que consiste el uso de "$uses" , la verdad me he quedado corto de ideas con en como funciona esto, me parece que es un alias, verdad o mentira?

suerte a todo.

Última edición por GatorV; 24/10/2009 a las 11:20
  #10 (permalink)  
Antiguo 24/10/2009, 10:34
Avatar de mij
mij
 
Fecha de Ingreso: enero-2007
Mensajes: 70
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: CakePHP -> $uses y relaciones de modelos <- cuando usarlos?

Cita:
Iniciado por geneller Ver Mensaje
podrias explicarme mejor en que consiste el uso de "$uses" , la verdad me he quedado corto de ideas con en como funciona esto, me parece que es un alias, verdad o mentira?
Lo he explicado en el post anterior.

Cita:
Iniciado por gneller Ver Mensaje
responde a genellern@gma....
La gracia de usar un foro es que la gente que tenga el mismo problema en un futuro pueda resolverlo. No es un servicio de atención al cliente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 14:06.