edesarrollos / yii2-ed
Conjunto de módulos de eDesarrollos
Requires
- php: >=7.4
- firebase/php-jwt: ^7.0
- hqsoft/reportkit: ^1.0
- phpoffice/phpword: ^1.1
- ramsey/uuid: ^4.7
- yidas/yii2-bower-asset: 2.0.13.1
- yiisoft/yii2: ^2.0.46
- yiisoft/yii2-composer: ^2.0
- yiisoft/yii2-gii: ~2.2.0
- yiisoft/yii2-symfonymailer: 2.0.3
README
Libreria compartida de eDesarrollos para Yii2. Centraliza controladores REST, modelos base, respuesta estandar, exportacion de reportes, correo, OpenAPI y utilidades reutilizables.
Requisitos
- PHP
>= 7.4 - Yii2
^2.0.46
Instalacion
composer require edesarrollos/yii2-ed
Dependencias principales
firebase/php-jwtramsey/uuidhqsoft/reportkitphpoffice/phpwordyiisoft/yii2-symfonymailer
Estructura principal
src/data/:Respuestay estructuras compartidassrc/models/: modelos base reutilizablessrc/rest/: controladores REST, serializer y url managersrc/formatters/: exportacion CSV, XLSX, PDF y DOCXsrc/openapi/: generador de OpenAPIsrc/mail/: modulo reusable de correosrc/cron/: scheduler y jobssrc/gii/: extensiones para Gii
REST
Base principal:
src/rest/JsonController.phpsrc/rest/AuthController.php
Convencion actual:
GET->actionIndex()POST->actionPost()PUT->actionPut()DELETE->actionDelete()
AuthController hereda de JsonController y agrega autenticacion sobre la misma base de formatos y respuestas.
Formatos soportados
UrlManager soporta:
jsonxmlhtmlsqlcsvxlsxpdfdocx
Ejemplo:
/v1/usuario.json
/v1/usuario.xlsx
/v1/usuario.pdf
Respuesta estandar
src/data/Respuesta.php se usa para:
- respuestas CRUD
- errores de validacion
- respuestas paginadas
- exportacion automatica
- devolver un
Documentmanual de ReportKit
Reportes
src/models/ModeloBase.php integra la configuracion global de exportacion desde Yii::$app->params['exportacion'].
Metodos importantes:
configuracionReporte()columnasReporte()filaReporte()documentoReporte()
Los formateadores disponibles son:
CsvFormatterSpreadsheetFormatterPdfFormatterDocxFormatter
OpenAPI
El generador esta en:
src/openapi/Generator.phpsrc/openapi/comandos/OpenapiController.php
Convenciones disponibles:
mostrarEnOpenapi(): boolaccionesOcultasOpenapi(): arrayopenapiControlador(): arrayopenapiAcciones(): array
Ejemplo para describir un controlador y sus acciones:
/** * Administracion de usuarios del sistema. */ class UsuarioController extends AuthController { public static function openapiControlador(): array { return [ 'descripcion' => 'Operaciones disponibles para usuarios.', ]; } public static function openapiAcciones(): array { return [ 'index' => [ 'resumen' => 'Lista usuarios', 'descripcion' => 'Regresa el listado paginado de usuarios.', ], 'post' => [ 'resumen' => 'Guarda usuario', 'descripcion' => 'Crea o actualiza un usuario.', ], 'delete' => [ 'resumen' => 'Elimina usuario', 'descripcion' => 'Marca un usuario como eliminado.', ], 'guardar-permiso' => [ 'resumen' => 'Guarda permiso', 'descripcion' => 'Asigna o actualiza un permiso para el usuario.', ], ]; } }
El indice del arreglo en openapiAcciones() debe usar el actionId real de Yii:
actionGuardarPermiso()->guardar-permisoactionIniciarSesion()->iniciar-sesionactionRefrescarToken()->refrescar-token
Correo
El modulo reusable de correo vive en src/mail/.
Los proyectos consumidores deben colocar sus vistas en @app/mail para evitar personalizaciones dentro de vendor.
Notas
- esta libreria esta pensada para proyectos Yii2 internos
- cuando cambien las convenciones REST base, conviene subir version mayor
- si agregas dependencias aqui, los proyectos consumidores deben actualizar su
vendor - para mas detalle operativo, revisa
DOCUMENTACION.md