2009-06-19 10 views
5

Soy un novato de Zend Framework.Dificultades al aprender Zend Framework 1.8

Descargué el Zend Framework y luego seguí el tutorial oficial de inicio rápido para crear un formulario de registro muy simple. Pero después de eso, me resulta muy difícil aprender diferentes elementos de Zend Framework.

Muchos tutoriales mencionan frontController y registerAutoload() en el archivo bootstrap. Sin embargo, parece que no puedo volver a verlo en el código en la versión 1.8 (tanto en el official quickstart tutorial como en el Getting Started with Zend Framework 1.8). Muchos tutoriales contienen la versión anterior de código y parece muy diferente en v1.8.

Empiezo escribiendo el formulario de registro con la confirmación de la contraseña. Leí el documento oficial y encontré el custom validator for password confirmation. Simplemente pone la clase allí y no menciona cómo puedo usarla. No sé dónde debería poner este archivo y no puedo encontrar ninguna pista en Google. El error de "clase no encontrada" siempre me pone enfermo (he intentado agregarPrefixElement, set_include_path pero no funcionan).

El registro del usuario, la activación del correo electrónico, el inicio de sesión y el control de acceso son tareas muy comunes. Pero ni siquiera encuentro un fragmento de código de muestra en v1.8 que pueda ejecutar en mi máquina. Estoy muy frustrado con Zend Framework.

¿Alguien me da algunos consejos?

Respuesta

8

Acabo de empezar a aprender el framework zend. También encontrará un montón de viejos tutoriales que hacen que el aprendizaje confuso y difícil, pero hay algunos recursos que encuentro ayuda en el aprendizaje del Zend Framework:

Algunos blogs útiles que pueden ayudar:

foros para hacer sus preguntas:

En cuanto a la clase no encontrada, ¿creo que no realizó la autocarga?

4

Partes de Zend Framework han cambiado ligeramente en la versión 1.8, pero todo debe ser compatible hacia atrás por lo que todo ejemplo de código escrito usando la serie de lanzamientos 1. * debería funcionar con poca o ninguna modificación .Las principales áreas que son diferentes son

  • Zend Loader (relacionada con register_autoload) que ahora tiene varias mejoras relacionadas con el rendimiento y algunas ligeras diferencias en su API (con una advertencia PHP si se utiliza de la manera antigua). No me preocuparía demasiado por esto como un principiante: simplemente siga el tutorial o continúe usando sentencias include/require hasta que se moleste al agregarlas todo el tiempo.

  • Zend Aplicación que básicamente le permite crear su configuración y el código de inicialización con menos complicaciones. De nuevo, no tiene que usarlo y puede escribir una clase de arranque manual para familiarizarse con la estructura del marco.

Con respecto a Comienzo Yo recomendaría conseguir su cabeza alrededor del componente Zend Controller, sobre todo la parte del controlador frontal y this diagram. Para la autenticación mire Zend Auth, para el correo electrónico vea Zend Mail, para el control de acceso vea Zend Acl y para las formas y la validación vea Zend Form, Zend Validate y Zend Filter. Los componentes de forma y validación explicarán las rutas y agregarán sus propios validadores y elementos de formulario personalizados.

La otra área de importancia es Zend Db que le permite conservar sus datos en una base de datos. También hay Zend View que representa la capa de vista en la pila MVC. En mi opinión, estos son los componentes clave de una aplicación ZF básica. Desde allí puede explorar los otros componentes cuando los necesite.

No olvide que el Zend Framework está específicamente diseñado para ser acoplado libremente y es muy fácil usar un componente diferente de otro proyecto para una tarea en particular. Algunas veces es necesario escribir sus propios componentes también. Si hay un componente que prefiera usar sobre el componente Zend, siga adelante y hágalo.

Honestamente, la documentación es muy buena, aunque es difícil de navegar para los principiantes. Una vez que entiendas los componentes básicos todo se volverá mucho más claro.

También intente seguir this tutorial. Ayudará a explicar muchos de los conceptos básicos.

0

Tengo tanta simpatía contigo Billy. Soy un novato y la confusión entre la vieja usanza y la nueva es casi demasiado para manejar. Véase también aquí por alguien que se señalan algunas de las principales diferencias:

http://crossfunctional.wordpress.com/2009/05/

0

Toda la documentación, en particular la documentación de Zend es absolutamente horrible. Todo supone que usted "sabe" dónde colocar los fragmentos a los que se refieren y cómo trabajan juntos. Si ya sabía esas cosas, no necesitaría la documentación. No hay aplicaciones de ejemplo completas con autenticación, etc. que pueda descargar y modificar. Estoy lamentando seriamente dedicarle tiempo a tratar de aprender este marco. Todos los ejemplos que puedo encontrar son aparentemente para versiones anteriores. Seguí uno para la autenticación en youtube que fue diseñado para 1.8 a la carta. No funciona en 1.9.x. No puedo hacer que funcione por mi vida. Completamente frustrado con Zend Framework!

2

Recomiendo estos video tutoriales creados por un tipo llamado Alex, los mantiene actualizados y publica nuevos, todo son relevantes para ZF 1.8 y 1.9.

Él tiene incluso un tutorial detallado de vídeo que cubre ACL, formularios de ingreso, etc. (mis primeros pasos con Zend eran más fácil gracias a él!)

http://alex-tech-adventures.com/development/zend-framework.html?start=15 - su sitio es un poco comfusing pero vale la pena el tiempo en averiguar que fuera :)

Saludos romana

0

Zend Framework ha pasado de ser un sistema relativamente accesible y simple de una entidad más compleja. Ha pasado por una serie de desarrollos rápidos en los últimos años que han dejado una gran cantidad de documentación más antigua.

Tenemos proyectos que están trabajados en la Versión 1.7.x porque las diferencias entre eso y la última versión son demasiado grandes, lo que hace que el desarrollo y el tiempo de prueba sean demasiado caros.

Me gusta Zend Framework porque tiene mucha profundidad, pero definitivamente es una espada de dos filos para principiantes.

Sin duda, recomendaría hacer uso de la experiencia de otros usuarios y buscar algunos ejemplos de marcos simples. ZF es altamente adaptable, pero debe tratar de trabajar desde el caso más simple posible para sus necesidades.

Creo que Matthew Weier o'Phinney, (busque 'Phly, boy, phly') es uno de los miembros más accesibles del equipo de desarrollo y tiene montones de ejemplos e ideas en su sitio web.

¡Buena suerte!

1

Algunos consejos:

Aquí es un diagrama agradable del proceso de Despacho

http://nethands.de/download/zenddispatch_en.pdf

Es mucho más fácil de entender ZF si tiene experiencia en programación orientada a objetos/POO patrones de diseño

La primera vez que tropecé con ZF tenía poco conocimiento de OOP. ZF me impulsó a aprender OOP, que era algo muy bueno.

Distinguir entre la 'magia' de ZF y la arquitectura real ZF

Aunque tengo una buena comprensión de las clases ZF todavía se confunden cuando ZF añade su 'magia' a la mezcla.

Cuando digo 'magia' Me refiero a cosas como

  • los objetos predeterminados carga y se utiliza si no se especifica ninguno, y
  • inflexiones url-controllername-ruta de archivo-nombre de archivo/convenciones de nombres.
  • asignaciones config-ajustes-a-clase de instancias

ZF es un poco como una grieta de bolsa en el sentido de que el 'Tutoriales' Getting Started te engancha enseguida. Realizan tanta magia que te hace pensar .oO (Guau, ¡qué simple fue eso! ¡Este marco es genial!)

Luego, tan pronto como comienzas a intentar hacer lo tuyo, la magia comienza a ponerse realmente confuso

Entonces, mi táctica es eliminar la mayor cantidad posible de magia ZF. Si tiene la opción de especificar una clase para usar o un enrutador para usar, especifíquelo. No dejes que Zend lo haga por ti.

Entonces, cuando algo extraño sucede, puedes encontrar los errores más fácilmente.

Además, si especifica las ubicaciones de las clases/rutas como (a diferencia de dejar a ZF inflexionar mágicamente las rutas y buscar scripts), entonces no tiene que preocuparse por las preguntas de 'dónde poner esto? ¿Dónde poner eso? - simplemente coloque las cosas donde quiere que estén y explícitamente señale ZF a ellas.

A medida que se familiarice con ZF, puede dejar que se haga cargo y le haga magia. Solo entonces puedes realmente entender por qué esa magia es conveniente.

Como dijo Tim Wardle en otra respuesta, favor de solicitar declaraciones sobre zend loader hasta que realmente lo necesite.

Si usted es una casa de diseño PHP que genera 10 proyectos de sitios web a la semana, entonces ZF Magic puede ser realmente útil. Si está diseñando su primera aplicación ZF, entonces la 'reducción de la complejidad' es un objetivo de diseño más importante que la 'reutilización'.

Examinar el código

Puede parecer obvio, pero una de las mejores maneras de aprender acerca de la ZF es mirar el código.

De nuevo, la magia de ZF puede interferir: a menudo quiero ver los argumentos de un método para descubrir lo que necesito pasar solo para descubrir que espera una "matriz de opciones" ambigua (no precisamente útil). Sin embargo, después de un tiempo, comienzas a notar las convenciones utilizadas en cómo una 'tecla de opción' se combina con un método getter/setter. Por lo tanto, sigue mirando el código y familiarizándote con el 'modo ZF'.

I 'ope that' elps.

+0

Después de escribir mi artículo sobre la magia de ZF, pensé que sería bueno tener algún tipo de componente 'ZF Magic Info' que 'observe' el framework y te permita generar algo como 'phpinfo()' al final para que podamos ver en qué está gwan. - solo un pensamiento –