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

Autolocargar clases de formularios en ZF

Estas en el tema de Autolocargar clases de formularios en ZF en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Un saludo todos. Estoy comenzando con Zend Framework y voy a trabajar con Zend_Form. He leído la sección del `Quickstart`_ referente a la creación de ...
  #1 (permalink)  
Antiguo 06/01/2010, 17:28
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 3 meses
Puntos: 36
Autolocargar clases de formularios en ZF

Un saludo todos.

Estoy comenzando con Zend Framework y voy a trabajar con Zend_Form. He leído la sección del `Quickstart`_ referente a la creación de un formulario.

__: http://framework.zend.com/docs/quickstart/create-a-form

Mi aplicación trabaja sin módulos, por lo que lo que el `Quickstart`_ debería de funcionar, pero no es así.

Creo un directorio ``forms`` dentro de ``application``, y ahí defino mi formulario:
Código php:
Ver original
  1. <?php
  2. // application/forms/Usuarios.php
  3.  
  4. class Default_Form_Usuarios extends Zend_Form
  5. {
  6. }

Entonces, en mi controlador intento leerlo:
Código php:
Ver original
  1. <?php
  2. // application/controllers/UsuariosController.php
  3.  
  4. class UsuariosController extends Zend_Controller_Action
  5. {
  6.     // código ...
  7.     public function indexAction()
  8.     {
  9.           $form = new Default_Form_Usuarios();
  10.      }
  11. }

Y obtengo un error diciendome que la clase no fue encontrada:

Fatal error: Class 'Default_Form_Usuarios' not found in /application/controllers/UsuariosController.php on line 9


... e intentado con y sin ``Default_`` y obtengo el mismo error. ¿Alguien puede decir cómo lo trabajan?, ¿qué estoy omitiendo?
  #2 (permalink)  
Antiguo 06/01/2010, 17:43
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Autolocargar clases de formularios en ZF

como tenes configurado el autoloader?
  #3 (permalink)  
Antiguo 06/01/2010, 18:03
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 3 meses
Puntos: 36
Respuesta: Autolocargar clases de formularios en ZF

Cita:
Iniciado por rodrigo_00 Ver Mensaje
como tenes configurado el autoloader?
No lo tengo ... mi Bootstrap está limpio. Consulté igual la documentación del Autoloder, pero me pareció incompleta, hay capítulos donde solo tiene el título ... no me dio buena espina.
  #4 (permalink)  
Antiguo 06/01/2010, 18:15
 
Fecha de Ingreso: noviembre-2007
Ubicación: Lanus, Buenos Aires
Mensajes: 178
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Autolocargar clases de formularios en ZF

sin autoloader no funciona, deberias hacer cada include que necesites, lo que no es lo mas optimo

en el capitulo anterior a ese explica como configurar el autoloader en el bootstrap, debes poner exactamente lo que te dice y ya te funcionaria

y la documentacion creo que esta bastante clara dentro de todo... cualquier duda que tengas puedes postearla y te ayudamos ;)
  #5 (permalink)  
Antiguo 06/01/2010, 18:48
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 3 meses
Puntos: 36
Respuesta: Autolocargar clases de formularios en ZF

En el Quick Start modifican el autoloader para agregar un módulo, pero yo no tengo módulos. Sin embargo, solo dejo en blanco el namespace y me funcionó como quiero.

En mi Bootstrap:
Código PHP:
Ver original
  1. <?php
  2. // application/Bootstrap.php
  3.  
  4. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  5. {
  6.     protected function _initAutoload()
  7.     {
  8.         $autoloader = new Zend_Application_Module_Autoloader(array(
  9.                                                 'namespace' => '',
  10.                                                 'basePath'   => dirname(__FILE__),
  11.                                                         ));
  12.  
  13.          return $autoloader;
  14.     }
  15. }

Y así ya puedo llamar al formulario simplemente con:
Código PHP:
Ver original
  1. $form = new Form_Usuarios();

Que al no trabajar con módulos, me parece lo más indicado. Obviamente, igual hay que renombrar la clase para quitarle el ``Default_``

Funciona, sin embargo, ¿es correcto? Hago uso de ``Zend_Application_Module_Autoloader``. Supongo habrá otras maneras.

Etiquetas: clases, formulario
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 23:14.