Crear un proyecto Zend-Framework con Klear (Parte 2 Klear I)

Con la instalación ya terminada y funcionando, es hora de entrar a configurar klear. En el directorio «./Testing/web/application/configs/» junto al application.ini (Configuración principal de un proyecto con ZF) esta el archivo klear.ini y las carpetas klear y klearRaw.

El archivo klear.ini basico, generado por la instalación con composer, trae los parámetros para la configuración de multilenguaje y los datos del autor.

[production]
;Lenguajes de la zona publica
klear.languages[] = "es"

;Lenguajes en la zona de gestión (Klear)
klear.ui.languages[] = "es"

docs.author = ""
docs.email = ""

[development:production]

Otras configuraciones para el klear.ini aquí.

La carpeta klear almacenan los archivos de configuración en yaml’s y la carpeta klearRaw tiene estos mismo archivos, con la diferencia que estos se regenerar con algunas de las tareas de phing.

Las tareas de phing que regeneran los archivos yaml son:

  • db-change: Ejecuta todos los generadores necesarios, cuando se crea un nuevo archivo .sql
  • generate-yaml: Ejecuta solo los generadores de archivos yaml, que siempre reescriben todo el contenidos de kearRaw y en klear solo genera nuevos archivos.

Hablando de las phing, todos los cambios que se quieran hacer en MySQL estaría bien que se hicieran con las tareas que tiene, ya que aparte de llevar un control sobre los cambios que se realicen en la base de datos, hace los cambios que requieran los comentarios en las tablas y campos y por último, automatiza la generación de los Model’s, Mappers y archivos yaml.

Tareas de Phing

Tareas de Phing

A la hora de crear una tabla o un nuevo campo el MySQL, hay que tener en cuenta que es lo que se quiere hacer con este, ya que existen una serie de tag’s, que se escriben en los comentarios de estas y cambian su comportamiento.

Por ejemplo, para que se generen los archivos yaml y se pueda visualizar una tabla en klear, la tabla tiene que tener el comentario [entity] y si esta misma tabla se va a usar en una aplicación REST el comentaio [rest].

CREATE TABLE `....` (
  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='[entity][rest]';

O por ejemplo, si el proyecto es multilenguje los campos que tienen que tener el comentario [ml], que al pasar la tarea de phing db-change duplica este campo, en base a los idiomas que estén definidos en archivo klear.ini

CREATE TABLE `....` (
  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL COMMENT '[ml]',
  ....
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='[entity][rest]';
CREATE TABLE `....` (
  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL COMMENT '[ml]',
  `name_en` varchar(255) DEFAULT NULL,
  `name_eu` varchar(255) DEFAULT NULL,
  `name_es` varchar(255) DEFAULT NULL,
  ....
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='[entity][rest]';

Estos cambios también se ven reflejados en klear:

Campo nombre normal y multilenguaje

Campo ‘Nombre’ normal y multilenguaje

Mas tag’s de comentarios para campos especiales aquí.

Con una tabla definida completamente desde el principio y los comentarios adecuados, se puede dar el caso de no tener que escribir código.

Aun así, si se quiere hacer cambios sobre los archivos generados automáticamente, primero hay que situarnos dentro del directorio klear (./Testing/web/application/configs/klear), este directorio contiene el klear.yaml que es el encargado de gestionar todas las secciones a las que se va a acceder. A parte del klear.yaml están los yaml de configuración de todas las secciones (tablas con el tag [entity]), estos archivos se generar en base al nombre de la tabla, la palabra List y la extensión yaml (usersList.yaml) y la carpeta model donde se configuran los campos de cada sección.

Configuraciones del klear.yaml

Dentro de la carpeta model, los archivos tienen el nombre de la tabla a la que corresponden y cada campo tiene una configuración predefinida en base al tipo de campo o al tag asignado en el comentario.

Configuraciones para los diferentes tipos de campos aquí.

Sección de usuarios de klear

Sección de usuarios de klear

Edición de un usuaio

Edición de un usuaio

Panel de Control

Panel de Control



¿Te gusta este post? Es solo un ejemplo de cómo podemos ayudar a tu empresa...
Sobre Daniel Rendon Arias

Hola, soy Daniel. Un gran amigo de PHP.

Queremos tu opinión :)