Imprimir

Coder

El siguiente es el manual para administradores de la aplicación Coder.

 

Tabla de contenidos

Introducción

El Codificador es una herramienta para desarrolladores que permite:

  1. Ver, crear y eliminar componentes de una extensión: app, libraries, plugins, snippets, etc.
  2. Descargar, importar y exportar componentes.
  3. Crear, reordenar y eliminar puntos de entrada de un controlador, incluidas las vistas, los modelos, los botones y el javascript.
  4. Ver, crear y eliminar librerías de una extensión: middlewaresnotifications, enums, etc.
  5. Copiar extensiones.
  6. Ver las configuraciones y los íconos utilizados.

Es importante comprender que la herramienta permite generar una base de código lo suficiente robusta para comenzar cualquier proyecto. Sin perjuicio de ello, siempre será necesario modificar y completar el código generado.

 

Conceptos básicos

Aplicación

Una aplicación es un programa informático, diseñado como una herramienta para realizar tareas o funciones específicas.

La aplicación esta compuesta de una o varias extensiones, que facilitan la lógica y optimizan la resolución de los problemas propios de la tarea encomendada.

Extensión

La extensión es el primer nivel de desglose de una aplicación y agrupa regiones comunes de ésta. Por ejemplo, una Tienda Virtual puede dividirse en varias extensiones, cada una de ellas estará, por separado, encargada de: los productos, los clientes, las ordenes, la facturación, la logística, etc.

Componente

El componente es una parte más pequeña de la extensión. El componente debe servir a una sola tarea y en un único ámbito, por ejemplo, administrar una tabla de la base de datos, o, como habitualmente se lo conoce, realizar un CRUD.

Elementos de componente

A su vez, los componentes tienen sus propios elementos comunes. Estos elementos pueden ser: controlador, modelo, vista y javascript.

 

Para comenzar

La ruta para acceder al gestor de código es Administración > Herramientas > Coder.

Una vez en en él, se mostrará la lista de todas las extensiones instaladas, por ejemplo:

Datos por registro

Un registro de la lista contiene los siguientes datos:

Extensión

Nombre de la extensión.

Desarrollador

El nombre del desarrollador de la extensión.

Componentes

Una vista rápida de los componentes que contiene.

 

Filtrar la lista

Para filtrar la lista, y mostrar sólo una parte de los registros, presione sobre el botón:

Se mostrarán todas las opciones de filtros:

Caja de texto

La caja de texto busca en el nombre de la extensión.

 

Reestablecer los filtros

Para reestablecer los filtros, presione el botón:

 

Las opciones

Con la instalación inicial del CMS, se incluyen muchas herramientas para la administración y el desarrollo. Por ejemplo, por defecto el CMS trae las herramientas necesarias para crear y distribuir extensiones, menús, configuraciones, permisos, activos, temas, etc.

En cambio, Coder tiene como finalidad crear y eliminar código, lo que hace a partir de la estructura del CMS, y sus convenciones.

Dicho esto, tenemos:

Resumen

Muestra información relevante para el desarrollo de una extensión, junto a enlaces a diferentes administraciones, como ser: configuraciones, activos, menús, etc..

 

Componentes

Aplicación

Gestiona gran parte de la carpeta app/, basándose en la idea de componentes y su estructura de controladores, modelos y vistas. Si bien, hay una conexión entre está carpeta y el concepto de aplicación, en lo concreto, no son exactamente lo mismo.

Rutas

Lista los archivos donde se definen las rutas de una o varias extensiones.

Librerías

Lista las librerías php de una extensión.

Middlewares

Lista los middlewares de una o varias extensiones, y realiza gestiones mínimas.

Notificaciones

Lista las notificaciones de una o varias extensiones, y realiza gestiones mínimas.

Plugins

Lista los plugins de una o varias extensiones, y realiza gestiones mínimas.

Fragmentos

Lista los fragmentos de una o varias extensiones, y realiza gestiones mínimas.

 

Herramientas

Clonar

Clona una extensión en otra.

Íconos

Lista los íconos de una o varias extensiones. Como sabrán, la fuente de íconos utilizada por el CMS es fontawesome.

Configuraciones

Lista las configuraciones de una extensión, y evalúa sus estados.

Carpetas seguras

Verifica que todas las carpetas de una o varias extensiones contengan el archivo index.html, lo que significa una capa más de seguridad en muchos servidores web.

Resumen

En el Resumen encontramos accesos directos e información básica de una extensión.

Para acceder, seleccione un registro y presione el botón:

Se desplegará un modal similar a:

Componentes

Para el framework, un componente será todo aquello que pueda ser agrupado bajo un mismo concepto. Es decir, el framework no tiene un sólo criterio para agrupar componentes, y su uso depende únicamente del contexto y las implementaciones.

Por ejemplo, como regla general el framework tiene carpetas donde se guarda su código (libraries, plugins, scripts, etc.). Cada una de ellas será un componente en la compilación.  Ahora bien, los middlewares, los enums o las notificaciones tienen sus propias reglas,  y, por lo tanto, serán considerados componentes en el contexto de las librerías.

Aplicación

Gestiona gran parte de la carpeta app/, basándose en la idea de componentes y su estructura de controladoresmodelos y vistas. 

Para acceder, debe seleccionar un registro y presionar el botón:

A continuación, se abrirá un modal mostrando el contenido de la carpeta, por ejemplo:

Datos por registro

Un registro de la lista contiene los siguientes datos:

Nombre

Nombre del componente.

Ámbito

El punto de acceso.

Componentes

Los elementos de componente que utiliza. Estos pueden ser: modelo, vista, controlador y javascript.

Puntos de entrada

Una vista rápida a los puntos de entrada o endpoints que contiene el controlador.

 

Filtrar la lista

Para filtrar la lista presione el botón:

El filtro de lista contiene:

Selector

El selector permite mostrar métodos públicos de los modelos que, según las convenciones del framework, no se corresponden con ningún punto de entrada del controlador.

 

Crear

Esta opción crea un controlador vacío. Si el controlador existe, no realiza ninguna acción.

El formulario será similar a:

El nombre del controlador consta de 3 partes:

Punto de acceso

El punto de acceso al controlador. Las opciones son las del enrutador, y pueden modificarse desde las configuraciones.

Alias de la extensión

El alias de la extensión, esta no puede ser modificada.

Sub-componente (opcional)

El sub-componente permite ampliar las posibilidades de controladores en una misma extensión.

 

Eliminar

Esta opción intenta eliminar todo lo referido al componente.

Es decir, si el componente tiene punto de acceso, entonces eliminará: controlador, sub-modelo, vistas y javascript. De lo contrario, solo eliminará el modelo.

 

Puntos de entrada

La opción permite gestionar los puntos de entrada que ejecuta el controlador y todos los elementos vinculados a los mismos: modelo, sub-modelo y vista.

Presionando sobre el nombre del componente, también podrá acceder a los puntos de entrada.

 

Descargar

Podrá descargar todos los elementos del componente de aplicación.

En caso de tener un punto de acceso, esto es: controlador, sub-modelo, vistas y javascript. De lo contrario, será solo el modelo.

 

Importar componentes

Los componentes pueden ser importados desde plugins.

Para ello, existen plugins que contienen componentes "universales", en los que se les reemplazó cualquier texto significativo por un token. Esto permite importarlos a cualquier otra extensión.

Un ejemplo práctico de la utilidad de importar un componente es la de crear un CRUD completo sin necesidad de programar.

 

Exportar componentes

Los componentes pueden ser exportados a plugins (Véase Importar componentes).

A la hora de exportar, es posible crear un nuevo plugin, o editar uno ya existente.

Si elegimos crear un nuevo componente "universal", debemos ingresar la extensión a la que pertenecerá y, opcionalmente, un nombre alternativo.

Para editar, debemos seleccionar un componente existente.

 

Puntos de entrada

Un punto de entrada o endpoint es un método público del controlador. A través de un punto de entrada es posible asociar una url con un recurso o acción del servidor.

Para gestionar los puntos de entrada, debemos acceder a través de la opción «Puntos de entrada» de un componente de aplicación.

Una vez que accedemos, se mostrará una lista como la siguiente:

Datos por registro

Un registro contiene los siguientes datos:

Recuadro de color

Éste permite una identificación rápida del tipo de tarea. Esta clasificación es interna, pertenece a la herramienta, y sirve solo como un modo de agrupar puntos de entrada.

Nombre

El nombre del punto de entrada, tal y como se encuentra en el controlador.

Elementos del punto de entrada

Una lista de los elementos que el framework asocia al punto de entrada.

 

Filtrar la lista

El filtro de lista contiene:

Selector

El selector permite mostrar elementos que, según las conversaciones del framework, no se corresponden con ninguno de los puntos de entrada.

 

Crear un punto de entrada

Para crear un punto de entrada, precione el botón:

Se desplegará un modal con varias opciones para crear, cada una de ellas con una descripción. También, cuenta con etiquetas que ayudan a entender todo lo que se va a crear. Las posibilidades de creación de código son: Modelos, Vistas, Controlador (Puntos de entrada), Rutas, Javascript (Controles), Botones y Configuraciones.

Para selecciona una de las opciones, presione el botón:

Una vez seleccionada una opción, el formulario que se despliega varía según la opción.

Algunos de los formularios requieren que, previamente, se hayan completado las Preferencias.

 

Eliminar un punto de entrada

Para eliminar un punto de entrada, seleccione un registro y precione el botón:

Se desplegará un modal para confirmar la acción.

La herramienta intentará eliminar todos los elementos asociados: modelos, vistas, controlador, rutas, javascript y botones. Aunque no siempre encuentra a estos elementos, y es posible que tenga que eliminarlos de modo manual.

 

Reordenar los puntos de entrada

Reordena todos los métodos del controlador y de los modelos, según la clasificación interna que realiza la herramienta.

 

Preferencias

Se utiliza internamente para declarar valores que se utilizan para crear código. Por ejemplo, el nombre de la tabla que es administrada por el controlador.

Varias de las opciones para crear puntos de entrada, requieren de estas preferencias.

Rutas

El archivo de rutas permite modificar las convenciones de enrutamiento del framework.

Las rutas estarán siempre acotadas a un punto de acceso de una extensión. Esto mejora el rendimiento y facilita la organización.

Para acceder a los archivos de rutas, seleccione una o varias extensiones y presione el botón:

A continuación, se abrirá un modal con la lista de rutas, por ejemplo:

Datos por registro

Un registro de la lista contiene los siguientes datos:

Ámbito

El ámbito o punto de entrada de las rutas.

Extensión

La extensión de las rutas.

 

Filtrar la lista

El filtro de la lista contiene:

Caja de texto

La caja de texto busca en el nombre de la librería.

 

Crear un archivo de rutas

Esta opción crea un archivo de rutas. Para ello, presione el botón:

El formulario será similar a:

Nombre

El nombre de la librería a crear.está compuesto por el punto de acceso y el alias de la extensión.

Reescribir

Esta opción reescribirá cualquier archivo de rutas existente.

Api

El apartado permite completar el archivo de rutas con las rutas para crear una Api.

Crear

Activa la opción.

 

Eliminar un archivo de rutas

Para eliminar un archivo de rutas, debe seleccionarlo y presionar el botón:

Librerías

Para gestionar las librerías php, debe seleccionar un registro y presionar el botón:

A continuación, se abrirá un modal mostrando el contenido de la carpeta, por ejemplo:

Datos por registro

Un registro de la lista contiene los siguientes datos:

Nombre

Nombre de la librería.

 

Filtrar la lista

El filtro de lista contiene:

Caja de texto

La caja de texto busca en el nombre de la librería.

 

Crear una librería

Esta opción crea una librería vacía. Para ello, debe presionar el botón:

El formulario será similar a:

Nombre

El nombre de la librería a crear.

Reescribir

Esta opción reescribirá cualquier librería existente.

 

Eliminar

Para eliminar una librería, debe seleccionarla y presionar el botón:

 

Crear documentación

Está herramienta lee una librería, extrae datos relevantes y los devuelve en un formato que solemos utilizar para la documentación.

Middlewares

Para gestionar los middlewares, debe seleccionar una extensión y presionar el botón:

A continuación, se abrirá un modal mostrando el contenido de la carpeta, por ejemplo:

Datos por registro

Un registro de la lista contiene los siguientes datos:

Nombre

Nombre del middleware.

Extensión

Alias de la extensión propietaria del middleware.

 

Filtrar la lista

El filtro de lista contiene:

Caja de texto

La caja de texto busca en el nombre del middleware.

 

Crear un middleware

Esta opción crea el esqueleto de un middleware. Para ello, debe presionar el botón:

El formulario será similar a:

Nombre

El nombre del middleware a crear.

Reescribir

Esta opción reescribirá cualquier middleware existente.

 

Eliminar un middleware

Para eliminar un middleware, debe seleccionar el middleware a eliminar y presionar el botón:

 

Enums

Para gestionar las enums, debe seleccionar una extensión y presionar el botón:

A continuación, se abrirá un modal mostrando el contenido de la carpeta, por ejemplo:

Datos por registro

Un registro de la lista contiene los siguientes datos:

Nombre

Nombre del enum.

Extensión

Alias de la extensión propietaria del enum.

 

Filtrar la lista

El filtro de lista contiene:

Caja de texto

La caja de texto busca en el nombre del enum.

 

Crear un enum

Esta opción crea el esqueleto de un enum. Para ello, debe presionar el botón:

El formulario será similar a:

Nombre

El nombre del enum a crear.

Reescribir

Esta opción reescribirá cualquier enum existente.

casos

Una lista separada por coma de los casos para el enum. Puede ser con o sin comillas.

Métodos

Incluye algunos de los métodos más utilizados en los enums del framework.

 

Eliminar un enum

Para eliminar un enum, debe seleccionar un registro y presionar el botón:

Notificaciones

Para gestionar las notificaciones, debe seleccionar una extensión y presionar el botón:

A continuación, se abrirá un modal mostrando el contenido de la carpeta, por ejemplo:

Datos por registro

Un registro de la lista contiene los siguientes datos:

Nombre

Nombre de la notificación.

Extensión

Alias de la extensión propietaria de la notificación.

 

Filtrar la lista

El filtro de lista contiene:

Caja de texto

La caja de texto busca en el nombre de la notificación.

 

Crear un notificación

Esta opción crea el esqueleto de una notificación. Para ello, debe presionar el botón:

El formulario será similar a:

Nombre

El nombre de la notificación a crear.

Reescribir

Esta opción reescribirá cualquier notificación existente.

 

Eliminar un notificación

Para eliminar una notificación, debe seleccionar la notificación a eliminar y presionar el botón:

Plugins

Esta opción permite gestionar los plugins de una o varias extensiones.

Para ello, puede seleccionar una o varias extensiones y presionar el botón:

Si no se selecciona ninguna extensión, se mostrará la lista completa de plugins.

A continuación, se abrirá un modal mostrando el contenido de la carpeta, por ejemplo:

Datos por registro

Un registro de la lista contiene los siguientes datos:

Extensión

El alias de la extensión que contiene el plugin.

Nombre

Nombre del plugin.

 

Filtrar la lista

El filtro de lista contiene:

Caja de texto

La caja de texto busca en el nombre del plugin.

 

Crear un plugin

La aplicación pone a disposición plantillas para crear los plugins más frecuentes. 

Para crear un plugin, debe seleccionar una de las opciones disponibles:

El formulario será similar a:

Nombre

Ingrese un nombre alternativo al plugin por defecto.

Reescribir

Esta opción reescribirá cualquier archivo existente.

Hook

Cada hook es una función del plugin y, por lo tanto, un archivo en particular. Cada plugin tendrá una lista de hook a crear.

 

Eliminar

Para eliminar un plugin, debe seleccionar un registro y presionar el botón:

Se desplegará un modal para confirmar la acción.

Fragmentos

Esta opción permite gestionar los fragmentos (snippets) de una o varias extensiones.

Para ello, puede seleccionar una o varias extensiones y presionar el botón:

Si no se selecciona ninguna extensión, se mostrará la lista completa de fragmentos.

A continuación, se abrirá un modal mostrando el contenido de la carpeta, por ejemplo:

Datos por registro

Un registro de la lista contiene los siguientes datos:

Extensión

El alias de la extensión que contiene el fragmento.

Nombre

Nombre del fragmento.

 

Filtrar la lista

El filtro de lista contiene:

Caja de texto

La caja de texto busca en el nombre del fragmento.

 

Eliminar

Para eliminar un fragmento, debe seleccionar el fragmento a eliminar y presionar el botón:

Se desplegará un modal para confirmar la acción.

Herramientas

Como el título lo menciona, en este apartado encontrará algunas herramientas útiles para el desarrollo.

Copiar

La herramienta copia una extensión en otra.

La acción requiere modificar el alias de la extensión original por el alias de la extensión copia. La modificación debe realizarse en el nombre de los archivos y en el contenido de los mismos, en las tablas, los campos y los registros de la base de datos.

Para copiar una extensión, debe seleccionarla y presionar el botón:

Se desplegará un modal con un formulario para seleccionar la extensión de destino. El formulario será similar a:

A continuación se desplegará un segundo modal:

 En la primera parte del formulario, deberá ingresar los nombres de ambas extensiones en número singular.

En la segunda parte del formulario, hay una lista de componentes y datos que serán copiados. Seleccione los que realmente desea copiar.

En el punto (1) de la imagen anterior, hay una casilla desmarcada por defecto y con un asterisco en su etiqueta. Eso significa que la nueva extensión ya tiene elementos de ese tipo, aunque el sistema no determina con precisión si serán o no reescritos, y depende de usted correr el riesgo de sobrescritura.

 

Íconos

Esta opción permite ver los íconos de una o varias extensiones.

Para ello, puede seleccionar una o varias extensiones y presionar el botón:

Si no se selecciona ninguna extensión, se mostrará la lista completa de íconos del CMS.

La fuente de íconos utilizada por el CMS es fontawesome.

A continuación, se abrirá un modal mostrando una tabla con todos los íconos utilizados, por ejemplo:

 

Configuraciones

Esta herramienta intenta buscar las configuraciones utilizadas en una extensión y las compara con las declaradas.

Para acceder, seleccione un registro y presione el botón:

Se desplegará un modal con la lista de configuraciones halladas. Por ejmplo:

Un registro de la lista contiene los siguientes datos:

Clave

La clave con la que se registra la configuración.

Archivo

La lista de archivos donde es utilizada la configuración.

Estado

Un estado, el cual puede ser:

  1. Desconocido: la configuración está declarada pero se desconoce su uso.
  2. Perfecto: la configuración está declarada y en uso.
  3. Error: la configuración esta en uso pero no está declarada.

 

 

Carpetas seguras

Esta herramienta se asegura que todas las carpetas expuestas de una o varias extensiones contengan el archivo index.html.

Esta es una medida de seguridad para muchos de los servidores web actuales.

Para acceder, seleccione una o varias extensiones y presione el botón:

Si no se selecciona ninguna extensión, se verificarán todas.

A continuación, se desplegará un modal para que, en el caso de ser necesario, se confirme la acción de agregar los archivos index.html en las carpetas que lo requieran.