mmt / jwf-laravel
Laravel persistence and integration adapter for mmt/jwf-core.
Requires
- php: ^8.3
- illuminate/database: ^11.0|^12.0|^13.0
- illuminate/encryption: ^11.0|^12.0|^13.0
- illuminate/filesystem: ^11.0|^12.0|^13.0
- illuminate/http: ^11.0|^12.0|^13.0
- illuminate/support: ^11.0|^12.0|^13.0
- illuminate/validation: ^11.0|^12.0|^13.0
- mmt/jwf-core: ^1.1
Requires (Dev)
- orchestra/testbench: ^9.0|^10.0|^11.0
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.5|^12.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Adaptador Laravel para mmt/jwf-core. Proporciona persistencia relacional, administración de versiones, Validator, archivos privados y envíos transaccionales. No registra rutas ni decide las políticas de la aplicación host.
Instalación
Instala el paquete mediante Composer y ejecuta las migraciones. La configuración se puede publicar con el tag jwf-config.
La aplicación debe enlazar obligatoriamente Mmt\JwfLaravel\Contracts\JwfAuthorizer con una implementación propia. No existe un autorizador permisivo por defecto.
$this->app->bind(JwfAuthorizer::class, ApplicationJwfAuthorizer::class);
Uso
La facade delega en servicios inyectables:
$outcome = Jwf::validate($versionId, $formId, $request); $result = Jwf::submit($versionId, $formId, $request); $copy = Jwf::forms()->cloneVersion($versionId);
Una copia conserva el árbol, IDs lógicos, opciones, configuración y referencias exactas a perfiles; solo cambia la identidad/número de versión y nace como borrador.
Jwf::artifacts() permite obtener una respuesta de descarga, listar artefactos sin referencia y solicitar una eliminación explícita. El paquete nunca elimina archivos automáticamente al borrar envíos o definiciones.
Los inputs de archivo pueden declarar maxSizeKb, allowedMimeTypes y allowedExtensions en su configuración. Los límites del input solo pueden restringir los límites globales de config/jwf.php.
Validación de tipos integrada
Los inputs email y url reciben automáticamente los perfiles internos versionados jwf.default.email y
jwf.default.url cuando se crea o guarda un borrador. Sus versiones iniciales aplican las reglas email y url de
Laravel; no hace falta crear perfiles ni publicar configuración en la aplicación host. La referencia queda incluida en
el documento persistido y se congela al publicar.
Los perfiles propios pueden añadirse al input para imponer reglas adicionales, como required o max.
La aplicación host es responsable de autorización, exposición HTTP, retención, privacidad y anonimización.