Categoría: Zend Framework

Zend Framework Per-módulo de configuración basado en

Por , viernes 01 de enero 2010 22:40

He creado una respuesta a este mensaje, que requiere menos configuración, consulte Diseño de Módulo de base - Zend Framework .

Cuando se utiliza el Zend Framework con los módulos, es obvio que si se está ejecutando varias (sub) sitios de la misma aplicación que no necesariamente quieren el mismo diseño de secuencias de comandos para cada parte. Decidí ir con la estructura del sitio lo siguiente:

  / Aplicación
     / Controladores
         ...
     / Modelos
     / Modules
         / Default
             / Controladores
             / Diseño
                 / Scripts
             / Puntos de vista
                 / Scripts
         / AnotherModule
             ...
     / Scripts

El problema fue la creación de los guiones de diseño en función de cada módulo. La respuesta llegó mediante el uso de un ayudante de acción. La creación de los diseños en función de cada módulo consta de tres pasos:

  1. Application.ini (o la configuración de configuración similar):
      admin.resources.layout.layoutPath APPLICATION_PATH = "/ modules / admin / layouts / scripts"
     default.resources.layout.layoutPath APPLICATION_PATH = "/ modules / default / layouts / scripts"
     member.resources.layout.layoutPath APPLICATION_PATH = "/ modules / member / layouts / scripts"
     affiliate.resources.layout.layoutPath APPLICATION_PATH = "/ modules / afiliado / layouts / scripts" 
  2. Crea tu ayudante de acción:
      <? Php
     / **
      * Establece la ruta de distribución en función de cada módulo
      *
      * @ Autor Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Since 01/01/2010
      * /
     clase Pro_Controller_Action_Helper_SetLayoutPath
         se extiende Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Establece camino trazado basado en el módulo
          * /
         preDispatch función pública ()
         {
        	 $ Module = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ('arranque')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ modulo] ['recursos'] ['layout'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  [$ Módulo] $ config ['recursos'] ['layout'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ('layout')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Y, por último boostrap el ayudante de acción:
      ...
         / **
          * Establece los guiones de diseño en función de cada módulo
          * /
         protegidos _initLayoutHelper function ()
    	 {
    	     $ This-> bootstrap ('frontController');
    	     $ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
    	         nueva Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

Doctrina: Hora y fecha por defecto NOW ()

Por , miércoles 30 de diciembre 2009 18:30

He estado luchando con la creación de un esquema de base de datos para un nuevo Zend Framework del proyecto. Estoy uso tratando de usar la doctrina ORM para los modelos de mi base de datos. Es necesario establecer el esquema de lo que me permitió establecer una fecha y hora predeterminadas por un `` de la columna de fecha y hora, por ejemplo, al agregar un nuevo mensaje me da la hora y fecha actuales. Después de mucho buscar y experimentar encontré la solución, así que estoy compartiendo.

En el esquema YAML archivo, simplemente haga lo siguiente:

 Mensaje:
   Actas:
     Timestampable:
       de creación:
         Nombre: created_at
         Tipo: fecha y hora
         Formato: Ymd H: i: s
       actualización:
         Nombre: last_updated
         Tipo: fecha y hora
         Formato: Ymd H: i: s
   columnas:
     Identificación:
       Tipo: entero
       primaria: true
       autoincrement: true
     name: String (255)
     email: string (300)
     message: String (2000)

Si por el contrario no desea un `updated_at` de la columna se puede utilizar el siguiente:

 Mensaje:
   Actas:
     Timestampable:
       de creación:
         Nombre: created_at
         Tipo: fecha y hora
         Formato: Ymd H: i: s
       actualización:
         discapacitados: true
   columnas:
     Identificación:
       Tipo: entero
       primaria: true
       autoincrement: true
     name: String (255)
     email: string (300)
     message: String (2000)

Zend Framework: Fundamentos - Revisión

Por , el sábado 28 de noviembre 2009 22:42

Mi empleador ha pagado recientemente a un grupo de nosotros los desarrolladores tomar el Zend Framework: Fundamentos supuesto, aquí voy a resumir mis ideas y opiniones en el curso de los demás. Para aquellos que buscan ahorrar tiempo, aquí está mi resumen:

Para los desarrolladores que no han tenido tiempo de mirar el Zend Framework este curso (Zend Framework: Fundamentos) ofrece un buen panorama general del marco de la introducción a las áreas clave y dar la información suficiente para poder continuar. Para aquellos que han pasado tiempo buscando en el marco y han seguido uno o dos guías de este curso no ofrece mucho más allá.

Fondo

He sido un PHP desarrollador de alrededor de 5-6 años, y han comenzado a trabajar con Zend Framework en función de los componentes en los últimos 6 meses. He desarrollado y / o ha sido un promotor en un par de pequeños Zend Framework MVC sites. Voy a ser honesto, no he tenido una gran cantidad de exposición a otros marcos, desde el punto de vista de la codificación, pero han pasado varios horas investigando los sitios web del proyecto y la evaluación de them.â El marco y la comunidad circundante Zend Framework es muy interesante y parece que hay grandes posibilidades de que su marcha.

Sobre el Curso

El curso se realiza en 9 sesiones de dos horas de WebEx (con un descanso de 10 minutos en el centro). El tiempo se dedica a pasar por una serie de diapositivas proporcionadas por Zend con la discusión en cualquier momento. Usted puede utilizar un micrófono para hablar con el instructor, pero para ser sincero, no vi a nadie usar nada más que la ventana de chat. Además de una máquina VMWare Ubuntu es a condición de que tiene el código de ejemplo y los proyectos de crear una versión de prueba de un Zend Studio. Las conversaciones director del curso a los asistentes ya sea a través de una solución integrada de VoIP, o puede marcar en el uso de uno de los muchos marcar en todo el mundo en los números.

Durante el curso el material consta de una breve descripción del marco y el patrón MVC, antes de dirigirse a una aplicación de ejemplo el libro de visitas. El debate demostró bootstrapping, Zend_Application, tablas de BD, acceso a bases de datos, formularios, filtrado, ACL, validación, etc, etc Básicamente, cubriendo todos los temas que le requieren para obtener un sitio básico hasta uno corriendo todo el tiempo que le da las herramientas para ir a buscar más avanzados en el marco (aunque esto se suma a "Ver el sitio web de" la mayor parte del tiempo).

El tiempo se le da al código a algunos ejemplos, y para desarrollar el "libro de visitas y de sencilla aplicación" wiki ". Personalmente sentí que proporcionar el código o la aplicación de cada uno y luego nos piden para desarrollar lo que era esencialmente una copia junto realmente no ofrecen una buena experiencia de aprendizaje. Hubiera preferido para desarrollar una aplicación similar, pero no idénticos. a la aplicación de ejemplo con la ventaja de tener una guía de referencia. Por otra parte la construcción de las aplicaciones desde cero, con la demostración de que posiblemente dio lugar a más preguntas acerca de por qué y cómo, dando así una mejor comprensión de la estructura, después de todo, usted puede buscar detalles después del curso.

La última conferencia consistió en trabajar sobre la aplicación wiki con la ayuda / guía del instructor. Después de la respuesta por supuesto fue tomada, se hizo hincapié en varias ocasiones en el curso que Zend tiene una respuesta muy en serio, de hecho, al parecer, nuestra versión del curso era bastante nuevo. Algunos de los otros desarrolladores en la empresa va a tomar el curso pronto, así que será interesante ver si esto ha ocurrido.

El estilo de curso fue informal, permite la retroalimentación y la colaboración entre los participantes y el instructor. El director del curso era amable, accesible (direcciones de correo electrónico fueron compartidas por las preguntas), y aunque su presentación de las diapositivas fue un poco inestable parecía totalmente competente en el marco. Él era claramente alguien que utiliza el marco sobre una base regular en lugar de alguien que se enseña a enseñar el curso, me gustó la experiencia del "mundo real" al respecto.

Sensación general

De alguna manera me pareció el curso de una pérdida de tiempo, en otros, era muy práctico. Esperemos que tendré mis razones con claridad, y tal vez dar un poco de alimento para el pensamiento o información útil (a sabiendas de que me es poco probable!).

Para mí este curso estaba dirigido a un nivel demasiado bajo. Después de haber pasado a través de la guía de inicio rápido, lea Zend Framework Rob Allen en acción, y trabajó con el marco de un poco que en realidad no hacer nada demasiado. Me gustó el curso de recoger desde el final de la guía de inicio rápido y desarrollar nuevas destrezas.

Dicho esto, el título del curso indica claramente "Zend Framework: Fundamentos" y en ese aspecto el curso consigue lo que se propone hacer. Otros miembros del equipo de desarrollo que no han pasado el tiempo buscando en el marco de cada sesión terminó con el entusiasmo y las preguntas que era realmente agradable para ver.

No todo estaba perdido, que era bueno para pasar el tiempo de confirmar los detalles básicos de la estructura y llegar a hacer un par de preguntas en las zonas donde no estaba al 100%. También fue el tiempo que tengo que sentarme cada día y pensar acerca de la codificación, utilizando el marco y los proyectos de futuro, algo que no ha de poder hacer otra cosa (¿se imagina a su compañía de aceptar que:)). Por último, pero no menos importante también obtener un certificado de buena de Zend que decir que participaron en el curso (si bien por correo electrónico).

Zend Framework Certificación

Esta fue una pregunta que seguía viniendo a la mente durante el curso, lo que me prepare para la certificación? La fácil y rápido, es un rotundo no. El instructor del curso fue muy claro en que con el asesoramiento adicional de que para la certificación de que realmente debería estar utilizando el marco en el día a día y me siento muy cómodo y seguro en su uso y metodologías.

Resumen

Teniendo en cuenta todo lo que he escrito más arriba, voy a resumir todo en dos puntos de la bala fácil:

  • Nuevo a Zend Framework: Este curso es exactamente lo que se espera, te da una buena introducción al marco y una buena base en los fundamentos de la cual se puede construir. El curso parece generar interés y entusiasmo por el marco, entre los desarrolladores.
  • Utiliza el Zend Framework: A pesar de que estaba muy bien para reforzar algunos de los conceptos básicos sentí el tiempo, esfuerzo y dinero para tomar el curso podría haber sido mejor invertido en otra parte. Será bueno para el SCAE Zend crear un nuevo curso de mayor nivel para los desarrolladores al siguiente nivel -. Por lo menos a la norma de certificación y más allá para que yo firmaría inmediatamente.

Registro de base de datos con Zend Framework

Por , martes 14 de abril 2009 21:06

Me las he arreglado para conseguir un sitio en funcionamiento con el Zend Framework , todo está muy bien para el registro de FireBug / FirePHP lo siguiente paso fue entrar a la base de datos. También quería entrar alguna información adicional utilizando el marco, como, agente de usuario, fecha y hora de obtener y publicar las variables. Así que para ampliar el manual un poco aquí es lo que hice:

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

$ ColumnMapping = array ('prioridad' => 'prioridad',
'Message' => 'mensaje',
'Datetime' => 'timestamp',
"User_agent '=>' user_agent,
"Get_vars '=>' get_vars,
"Post_vars '=>' post_vars,
'Site' => 'sitio'
);

$ WriterDb = new Zend_Log_Writer_Db ($ db, "error_logging ', $ ColumnMapping);
$ Logger = new Zend_Log ($ writerDb);

$ Logger-> setEventItem ('datetime', date ('Ymd H: i: s "));
$ Logger-> setEventItem ('user_agent', $ _SERVER ['HTTP_USER_AGENT']);
$ Logger-> setEventItem ('get_vars, print_r ($ _GET, true));
$ Logger-> setEventItem ('post_vars, print_r ($ _POST, true));
$ Logger-> setEventItem ("sitio", sitio);

$ Logger-> info ('Mensaje informativo');

Donde las claves del array en $ ColumnMapping son mis nombres de columna. "Prioridad" y "mensaje" se entiende por Zend_Log_Writers pero los campos adicionales fueron incluidos en darme alguna información adicional.

Obviamente, esto supone que tiene el registro de trabajo con uno de los primeros escritores de otros:)













Panorama Tema por Themocracy

8 visitantes en línea ahora
5 personas, 3 bots, 0 miembros
Max visitantes de hoy: 15 a las 12:12 pm UTC
Este mes: 17 en 09/01/2011 23:27 UTC
Este año: 130 en 28-03-2011 22:40 UTC
En total: 130 en 28-03-2011 22:40 UTC