Monday, October 08, 2007

Zend Framework: Primeros Pasos

Este es un mini proyecto web basado en zend framework. La idea es que puedan acercarse más al desarrollo MVC, que debiera ser el patrón de diseño a utilizar ahora.

Yo estoy recién iniciándome en esto pero, quiero compartir lo que hice para que a otros no les cueste tanto entenderlo.

Por ahora sólo subiré el archivo y luego lo explicaré más detalladamente, aunque es un ejemplo más detallado de:

http://akrabat.com/zend-framework-tutorial/

Bueno,
Los requisitos para entender este archivo:

  1. Conocimientos en php
  2. Nociones de MVC ref1 ref2
  3. Paciencia
  4. Detallista en la observación
Les recomiendo, que analicen cada código de cada link y entenderlo bien antes de pasar al otro. Se les hará más fácil progresivamente.

Por ejemplo: (Esto es un extracto de lo primero que verías)


Entras a App, y con un editor php debieras abrir:

(Estamos dentro de \myfirstzend [ej: c:\appserv\www\myfirstzend])

  • index.php (El corazón de tu sitio)
  • application\controllers\AppController.php (El controlador)
  • application\views\scripts\app\index.phtml (La vista)
Fíjate en la extensión phtml, así zend maneja las vistas.

Te encargas de entender bien el código y pasas al otro link.

Más links de ayuda:

Si tienen más links aporten, porque documentación en español es la que falta!!!!

Descargar Archivo

Si tienen problemas vean esto:
http://porquero.blogspot.com/2007/10/errores-cuando-empezamos-con-zend.html

12 comments:

JOSE said...

Hola:

Me funciona todo el ejemplo, a excepción cuando voy a trabajar con la base de datos me sale este error:

'Zend_Db_Adapter_Exception' with message 'The PDO extension is required for this adapter but the extension is not loaded' in...

Hice lo que posteste de descomentar la extención del php_pdo y el php_pdo_mysql, pero no pasa nada.

tambien probé con el extension_dir = "./;C:\AppServ\php5\ext" Pero tampoco tuve suerte.

Cómo lograste cargar el PDO ????

Saludos y gracias por el tutorial...

porquero said...

Mira, despues de investigar eso fue lo unico que encontre y funciona perfecamente. Lo que se me ocurre es que quizas cambiaste las lineas en php.ini y no reiniciaste apache.

Que versión de php usas?

manusss said...

Hola quisiera saber si me pueden ayudar, cuando he ido a probar el ejemplo me salen los siguientes warnings


Warning: The magic method __isset() must have public visibility and cannot be static in C:\xampp\htdocs\myfirstzend\library\Zend\Config.php on line 184

Warning: The magic method __unset() must have public visibility and cannot be static in C:\xampp\htdocs\myfirstzend\library\Zend\Config.php on line 194
view->baseUrl = $this->_request->getBaseUrl(); } function indexAction() { //Cargar Filtro para carácteres especiales Zend_Loader::loadClass('Zend_Filter_HtmlEntities'); $filtrar = new Zend_Filter_HtmlEntities(); //Parametros de la página $this->view->titulo="Bienvenid@"; $this->view->msg = $filtrar->filter("¡Bienvenid@ Compañer@!"); //generar pagina error random $this->view->nerr='cualquiercosa'.rand(0,100); } }

porquero said...

En realidad no he visto ese problema pero hice una búsqueda en google y hay harta info al parecer:
http://www.google.cl/#hl=es&q=The+magic+method+__isset%28%29+must+have+public+visibility+and+cannot+be+static&fp=1&cad=b

Anonymous said...

Que robo!!!
No jala tu ejemplo me manda el mismo error de manusss!!! Aún así se te agradece!! Saludos

carlos alberto said...

hola, yo se qeu es algo viejo tu post pero ojala me pudieras responder apenas estoy intentando entender como se maneja el zend framework pero ningun tutorial puedo hacer correr el ejemplo de entrada, El tuyo me corrio, solo que los enlaces no funcionaron ninguno a excepcion de el que marca el error de forbidden.

de antemano gracias!

porquero said...

Revisate esto?

http://porquero.blogspot.com/2007/10/errores-cuando-empezamos-con-zend.html

Anonymous said...

si lo revise, gracias ya despues arranque uno por default que genera el zend_tools y ya viendo alli como se hizo, regrese a tu codigo y en el index.phtml.

Cuando haces el llamado a las paginas y para referirte a la posición actual usas un



pero recuerda que para hacer el link a un html desde php tienes que mostrarlo en pantalla entonces quedaria como sigue

y entonces si lnkeas a www.misitio.com/app/ siendo que ante solo hacia el link a /app/ sin el sitio puesto que la parte de $this->baseurl solo hacias un llamado interno y nunca lo mostrabas en el navegador.

Con la parte de base de datos todavia no la puedo hacer mostrar en pantalla pero todavia no instalo la base que viene en el archivo. Cualquier cosa yo te aviso.

Gracias por el dato ya que no habia encontrado ejemplos de zendframework corriendo solo puros manuales y me estaba equivocando en la extracion del frame ( que tonto ) jeje.

carlos alberto said...

si lo revise, gracias ya despues arranque uno por default que genera el zend_tools y ya viendo alli como se hizo, regrese a tu codigo y en el index.phtml.

Cuando haces el llamado a las paginas y para referirte a la posición actual usas un

'baseurl ?>'

pero recuerda que para hacer el link a un html desde php tienes que mostrarlo en pantalla entonces quedaria como sigue

'baseurl ?>'

y entonces si lnkeas a www.misitio.com/app/ siendo que ante solo hacia el link a /app/ sin el sitio puesto que la parte de $this->baseurl solo hacias un llamado interno y nunca lo mostrabas en el navegador.

Con la parte de base de datos todavia no la puedo hacer mostrar en pantalla pero todavia no instalo la base que viene en el archivo. Cualquier cosa yo te aviso.

Gracias por el dato ya que no habia encontrado ejemplos de zendframework corriendo solo puros manuales y me estaba equivocando en la extracion del frame ( que tonto ) jeje. Perdon por el post anterior a ver si lo puedes borrar, no aparecio la instruccion php.

carlos alberto said...

ha no aparece de todos modos el chiste es que te falta el echo cuando haces tu llamado a la url para hacer bien tus ligas usando baseurl, en tu index.phtml

gracias

porquero said...

Hola Carlos,

Que bueno que te funcione.
Sólo te aclaro algo: Sí usé echo, pero de la manera antigua que se permitía en php, los "short tags".
Pero ya no está permitido usarlos ;)

carlos alberto said...

hola soy yo otra vez, recuerdas en que controlador o modelo pusiste para que apareciera en lugar de un error de depuracion, aparece 'Errrroooorrrr!' y es el unico tipo de error que aparece, recuerdas como quitar eso para poder depurar y que funcione con la base de datos?, porque no puedo hacer que funcione, incluso el error aleatorio tambien aparece esa de Error y ningun otro.