Basado en laravel-api-starter de Gentrit Abazi.
Necesita tener instalado GIT y Composer.
Clone el repositorio
git clone https://github.com/fermelli/larapi-template.git
Instale las dependencias
composer install
Larapi - Build fast API-s in Laravel.
Deben agregarse nuevos directorios en el directorio api
para cada recurso que se quiera gestionar, por ejemplo para usuarios
:
api
├─ Usuarios
│ ├─ Controllers
| ├─ Exceptions
| ├─ Models
| ├─ Repositories
| ├─ Requests
| ├─ Services
| └─ routes.php
├─ Productos
| ├─ ...
...
Otros directorios pueden ser: Console
, Events
, Listeners
, Observers
, Policies
, Providers
, etc.
Se utiliza PHP_CodeSniffer como herramienta de linter a traves del paquete mreduar/laravel-phpcs para seguir estilos de codificacion apropiados para PHP y Laravel.
composer require mreduar/laravel-phpcs --dev
Las configuraciones se encuentran en el archivo: phpcs.xml
Y se ejecutan las verificaciones del código con:
./vendor/bin/phpcs
El mismo que genera un reporte de los errores y advertencias para codificación no adecuadas.
Se pueden realizar correcciones automaticamente ejecutando:
./vendor/bin/phpcbf
Adicionalmente se cuenta con un hook para el pre-commit (antes del commit) que verifica que se siguen la reglas establecidas.
php artisan vendor:publish --provider="Mreduar\LaravelPhpcs\LaravelPhpcsServiceProvider" --tag="hook"
Para facilitar el desarrollo se pueden utilizar comandos personalizados para generar archivos con la Estructura de carpetas
Comando | Explicación |
---|---|
make:controller-larapitemplate | Create a new controller class for a Larapi Template |
make:exception-not-found-larapitemplate | Create a new exception-not-found class for a Larapi Template |
make:model-larapitemplate | Create a new model class for a Larapi Template |
make:repository-larapitemplate | Create a new repository class for a Larapi Template |
make:request-create-larapitemplate | Create a new request-create class for a Larapi Template |
make:request-update-larapitemplate | Create a new request-update class for a Larapi Template |
make:routes-larapitemplate | Create a new routes class for a Larapi Template |
make:service-larapitemplate | Create a new service class for a Larapi Template |
php artisan make:controller-larapitemplate Productos
Generaría el siguiente controlador con la estructura del stub:
api
├─ Productos
│ └─ Controllers
| └─ ProductoController.php
...
O tambien podria ejecutar:
php artisan make:controller-larapitemplate Productos/Categoria -a
Que generaría los siguientes archivos:
api
├─ Productos
│ ├─ Controllers
| | └─ CategoriaController.php
| ├─ Exceptions
| | └─ CategoriaNoEncontradoException.php
| ├─ Models
| | └─ Categoria.php
| ├─ Repositories
| | └─ CategoriaRepository.php
| ├─ Requests
| | ├─ CategoriaActualizarRequest.php
| | └─ CategoriaCrearRequest.php
| ├─ Services
| | └─ CategoriaService.php
| └─ routes.php
...
cp .env .env.testing
php artisan test
Tiene las traducciones para el idioma español.