-
Notifications
You must be signed in to change notification settings - Fork 2
Módulos
Documentación:
Existen diferentes utilidades que se pueden incluir del lado del cliente y/o del lado del servidor en forma de módulos o plug-ins, para la asistencia en la implementación de servicios de terceros (como reCaptcha o Firebase) y la realización de tareas específicas (como generar PDF o XLS).
- Firebase (
firebase
) - Recaptcha (
recaptcha
) - Email (
email
) - TinyMce (
tinymce
) - PhpSpreadsheet (
phpspreadsheet
) - mPDF (
mpdf
)
Para obtener un módulo desde el controlador JS:
ui.obtenerInstanciaModulo("nombre");
Es posible invocar métodos públicos del módulo del lado del servidor mediante la propiedad servidor
, por ejemplo:
var modulo=ui.obtenerInstanciaModulo("nombre");
modulo.servidor.metodoPublico(function(retorno) {
//...
});
Para obtener un módulo desde un controlador PHP:
\foxtrot::fabricarModulo('nombre');
En desarrollo
, todos los módulos estarán disponibles, pero ningún módulo será incluido automáticamente al construir la aplicación.
Para incluir módulos en la aplicación construída, deben especificarse los módulos a incluir el campo Incluir módulos de los diálogos de Construir embebible o Construir para producción del gestor de aplicaciones.
Los módulos deben residir en cliente/modulos/nombre
, donde nombre
es el nombre del módulo. En este directorio pueden residir archivos .js
y .css
(el nombre es indistinto). Todos los archivos .js
y .css
serán incorporados al construir.
Cabe aclarar que si el módulo se crea en fuente
, será copiado a desarrollo
al construir el framework, pero puede ser creado/instalado directamente en desarrollo
.
Los módulos se registran en el framework mediante ui.registrarModulo
:
ui.registrarModulo("nombre",function() {
this.nombre="nombre";
/**
* Inicializa la instancia tras ser creada.
* @returns {modulo}
*/
this.inicializar=function() {
//Esta función es opcional, pero si se implementa debe incluir la siguiente línea siempre
return this.clasePadre.inicializar.call(this);
};
});
Los módulos deben residir en servidor/modulos/nombre
, donde nombre
es el nombre del módulo. En este directorio pueden existir dos archivos: nombre.php
y nombre.pub.php
(el módulo puede contar con una o ambas clases), además de archivos adicionales de soporte del módulo, como otras clases, código fuente de librerías de terceros, etc.; todos los archivos serán copiados al construir.
Cabe aclarar que si el módulo se crea en fuente
, será copiado a desarrollo
al construir el framework, pero puede ser creado/instalado directamente en desarrollo
.
Clase privada:
La clase privada debe ubicarse en nombre.php
, denominarse igual que el módulo, extender \modulo
y residir en el espacio de nombres \modulos\nombre
(donde nombre
es el nombre del módulo).
namespace modulos\nombre;
defined('_inc') or exit;
/**
* Componente concreto.
*/
class nombre extends \modulo {
}
Clase pública:
La clase pública debe ubicarse en nombre.pub.php
, denominarse igual que el módulo, extender \modulo
y residir en el espacio de nombres \modulos\nombre\publico
(donde nombre
es el nombre del módulo).
namespace modulos\nombre\publico;
defined('_inc') or exit;
/**
* Componente concreto.
*/
class nombre extends \modulo {
}
Recursos y librerías:
Los archivos JS y CSS del módulo serán integrados en el núcleo del framework al construir, pero no aquellos en subdirectorios. Además, si se agrega un archivo .ignorar
en un subdirectorio, el mismo será omitido tanto en la construcción como en la documentación.
Entonces, si el módulo tiene estilos que se deben integrar con los estilos de Foxtrot, deben crearse en (por ejemplo) modulos/nombre/estilos.css
, pero si tiene hojas de estilo que deben permanecer independientes, pueden crearse en modulos/nombre/css/hoja.css
. Asimismo, si el módulo incluye una librería de terceros, se debe alojar en un subdirectorio, por ejemplo modulos/nombre/tinymce/
con un archivo modulos/nombre/tinymce/.ignorar
(en blanco) para evitar que vuelva a ser copiado cada vez que se construya la aplicación y, además, que interfiera con la documentación.
¿Probaste Foxtrot? Contanos qué te pareció 🥰 [email protected]
Índice
Primeros pasos
Gestor de aplicaciones
Editor de vistas
Componentes
Módulos
Comunicación cliente<->servidor
Modelo de datos - ORM
PHPDOC
JSDOC
☝ Comentarios
🤷♂️ Dudas
🤓 Ayuda
⌨ Contribuciones
Escribinos: [email protected]