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

MVC - Nomenclatura de clases

Estas en el tema de MVC - Nomenclatura de clases en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola buenas de nuevo, Quería saber cual es la mejor manera de nombrar a las clases que corresponden a los modelos, controladores, etc ya que ...
  #1 (permalink)  
Antiguo 30/04/2011, 04:48
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 5 meses
Puntos: 165
MVC - Nomenclatura de clases

Hola buenas de nuevo,

Quería saber cual es la mejor manera de nombrar a las clases que corresponden a los modelos, controladores, etc

ya que no creo que sea conveniente utilizar los mismos nombres tanto para el controlador noticias (class Noticias ), modelo noticias( class Noticias ) ,etc.. me gustaría saber que se suele usar, yo he pensado en NoticiasModel, NoticiasController.. etc

Un saludo y gracias!
  #2 (permalink)  
Antiguo 30/04/2011, 11:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: MVC - Nomenclatura de clases

Lo primero es evitar usar diferentes idiomas. Claro está, entiendo que estás usando un framework en ingles como Zend, pero es bueno que todo lo hagas en ingles, si vas a hacer un framework entonces que todo sea en español si es lo que deseas. Lo otro lo importante es que los nombres sean lo mejor descriptivos posible, aunque tiendan a ser cortos, para dar a entender donde se encuentra el código que deseas buscar. En una de varias aplicaciones que estoy usando, para evitar grandes enredos estoy trabajando con módulos y todo lo que corresponde a esa área lo trabajo ahí. Por ejemplo, yo crearía un área así:
Código directories:
Ver original
  1. modules
  2.     - default
  3.         - controllers
  4.         - models
  5.         - views
  6.     - news
  7.         - controllers
  8.         - models
  9.         - views
  10.     - other
  11.         - controllers
  12.         - models
  13.         - views
Y así no se te hace complicado a la hora de editar.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 30/04/2011, 14:35
 
Fecha de Ingreso: marzo-2010
Mensajes: 71
Antigüedad: 14 años, 8 meses
Puntos: 24
Respuesta: MVC - Nomenclatura de clases

Hola!, sobre los nombres, tengo una consulta.

Estoy queriendo pasar un proyecto a una estructura modular(recien empiezo no hay mucho que mover), el tema es que no puedo cargar los modelos desde el modulo correspondiente, el controller y view funcionan bien pero no el model. Creo que es un problema de nombres.
Doy un ejemplo:
Tengo un modelo en /application/models/DbTable/News.php, que al declarar la clase es : class Application_Model_DbTable_News extends Zend_Db_Table_Abstract, con un new Application_Model_DbTable_News puedo crear una instancia en el controlador.

Ahora si muevo este modelo a por ej. : /application/modules/admin/models/DbTable/News.php, como se tendria que declarar la clase y como creo la instancia del modelo??

Intente poner toda la ruta desde application, desde el modulo, intente de todo y me da siempre un Not Found ¬¬

Gracias


--------------------------------------------------------------------
Edito, tema solucionado, disculpe las molestias =)

Última edición por RatoN7; 30/04/2011 a las 16:20
  #4 (permalink)  
Antiguo 01/05/2011, 04:44
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 5 meses
Puntos: 165
Respuesta: MVC - Nomenclatura de clases

Hola buenas,


Muchas gracias.

Si, yo lo estoy usando todo en inglés, y el tema de los módulos no se muy bien como hacerlo.

Me parece buena idea el tema de:

modulo/...

pero no se como hacerlo para que el frontcontroller busque en el modulo correspondiente..

Un saludo!
  #5 (permalink)  
Antiguo 01/05/2011, 05:01
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: MVC - Nomenclatura de clases

Que tal miktrv,

Zend utiliza la convención de nombres de PEAR, deberias hacer lo mismo, es muy intuitivo, el problema es cuando hay mucha profunidad en carpetas, los nombres se tornan extensos, pero para la mayoría de casos, esta bien, un ejemplo:

esta estructura:
Código HTML:
Ver original
  1. Default
  2.     - Model
  3.         - User.php
corresponde a esta clase:
Default_Model_User

Es simplemente descomponer los "_" de la clase para generar el path.

@RatoN7, deberías iniciar un thread con tu pregunta, ya que la misma no tiene nada que ver con este thread, igual te comento que la clase debería ser Admin_Model_DbTable_News.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 01/05/2011, 07:50
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 5 meses
Puntos: 165
Respuesta: MVC - Nomenclatura de clases

Muchas gracias por tu respuesta.

Lo tendré en cuenta he intentare utilizar esta nomenclatura pero... una duda..

Si yo tengo un modelo default_model_user, y este modelo también lo uso en user/model/user.. que pasa?

Creo que no entiendo muy bien..

Un saludo!
  #7 (permalink)  
Antiguo 01/05/2011, 08:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: MVC - Nomenclatura de clases

En ese caso, deberías ingresarlo en el directorio library, para que puedas accederlo en todos los directorios que lo necesites. Una forma sencilla, una vez tengas que en diferentes módulos usar una misma clase, ya esta debe ir en el directorio de library. Algo así
Código directories:
Ver original
  1. library
  2.     - Foo
  3.         - Foo.php
  4.     - Bar
  5.         - Bar.php
El nombre de las clases son
Código PHP:
Ver original
  1. <?php
  2. // Foo/Foo.php
  3. class Foo_Foo
  4. {
  5.     public function fooBar()
  6.     {/*...*/}
  7. }
  8.  
  9. // Bar/Bar.php
  10. class Bar_Bar
  11. {
  12.     public function fooBar()
  13.     {/*...*/}
  14. }

Para acceder en la aplicación solo tienes que ingresar en el application.ini
Código INI:
Ver original
  1. autoloaderNamespaces[] = "Foo_"
  2. autoloaderNamespaces[] = "Bar_"
Y en cada lugar que quieras acceder a ella solo tienes que
Código PHP:
Ver original
  1. <?php
  2. $foo = new Foo_Foo;
  3. $foo->fooBar();
  4.  
  5. $bar = new Bar_Bar;
  6. $bar->fooBar();
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 01/05/2011, 14:48
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 5 meses
Puntos: 165
Respuesta: MVC - Nomenclatura de clases

Hola muchas gracias por tu ayuda.

En mi caso uso autoloaders.. es decir, tendré que indicar a este que busque dentro de los modulos de mi aplicación..

Muchas gracias y un saludo!

Etiquetas: clases, mvc
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:25.