edesarrollos / yii2-app-ed
Yii 2 Basic Project Template
Requires
- php: >=7.4.0
- dragonmantank/cron-expression: ^3.0@dev
- edesarrollos/yii2-ed: ^2.0
- yiisoft/yii2: ^2.0.54
- yiisoft/yii2-bootstrap5: 2.0.2
- yiisoft/yii2-symfonymailer: 2.0.3
Requires (Dev)
- codeception/codeception: ^5.0.0 || ^4.0
- codeception/lib-innerbrowser: ^4.0 || ^3.0 || ^1.1
- codeception/module-asserts: ^3.0 || ^1.1
- codeception/module-filesystem: ^3.0 || ^2.0 || ^1.1
- codeception/module-yii2: ^1.1
- codeception/verify: ^3.0 || ^2.2
- symfony/browser-kit: ^6.0 || >=2.7 <=4.2.4
- yiisoft/yii2-debug: ~2.1.0
- yiisoft/yii2-faker: ~2.0.0
- yiisoft/yii2-gii: ~2.2.0
README
yii2-app-ed
Plantilla base de eDesarrollos sobre Yii2. Este proyecto consume edesarrollos/yii2-ed para exponer APIs REST, autenticacion JWT, exportacion de reportes, correo y documentacion OpenAPI con Scalar.
Requisitos
- PHP
>= 7.4 - Yii2
^2.0.54 - Base de datos configurada en
config/db.php
Instalacion
Para crear un proyecto nuevo:
composer create-project --prefer-dist edesarrollos/yii2-app-ed
Si ya estas dentro del proyecto y solo quieres instalar dependencias:
composer install
Si es una instalacion nueva, el proyecto ejecuta scripts para:
- generar la llave JWT local
- ajustar permisos base
Estructura principal
config/: configuracion web, consola, exportacion, correo y OpenAPIcomandos/: comandos del proyectomodelos/: modelos de aplicacionmodulos/v1/: API principalmodulos/p/: endpoints adicionalesmail/: vistas de correo del proyectopublico/: punto de entrada web y archivos generadosmigraciones/: migraciones
Configuracion importante
JWT
La llave JWT se carga desde /.jwt-key. Si el archivo no existe, se usa el valor por defecto definido en config/params.php.
Correo
El mailer usa yiisoft/yii2-symfonymailer y toma su configuracion desde config/correo.php.
viewPathapunta a@app/mail- el layout base esta en
mail/layouts/html.php - el modulo
mailesta disponible en web y consola
Exportacion
La configuracion global vive en config/exportacion.php.
Formatos soportados:
jsonxmlhtmlcsvxlsxpdfdocx
Convencion REST
Los controladores REST heredan de:
eDesarrollos\rest\JsonControllereDesarrollos\rest\AuthController
Convencion base:
GET /recurso.json->actionIndex()POST /recurso.json->actionPost()PUT /recurso.json->actionPut()DELETE /recurso.json->actionDelete()
Ejemplos:
/v1/usuario.json
/v1/usuario.csv
/v1/usuario.xlsx
/v1/usuario.pdf
/v1/usuario.docx
Para exportar todos los registros en formatos documentales, puedes usar:
/v1/usuario.xlsx?todo=1
/v1/usuario.pdf?todo=1
/v1/usuario.docx?todo=1
/v1/usuario.csv?todo=1
OpenAPI y Scalar
La configuracion esta en config/openapi.php.
Para generar la documentacion:
php yii openapi/generar
Archivos generados:
publico/openapi.jsonpublico/scalar.html
Correo programado
php yii mail/cron
Comandos utiles
php yii migrate php yii openapi/generar php yii mail/cron
Notas
config/db.phpse configura por entorno.urlManagerusaeDesarrollos\rest\UrlManager.- las respuestas HTTP de error se transforman al formato estandar de
eDesarrollos\data\Respuesta