Download the PHP package hendabastian/laracrud-apigen without Composer
On this page you can find all versions of the php package hendabastian/laracrud-apigen. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download hendabastian/laracrud-apigen
More information about hendabastian/laracrud-apigen
Files in hendabastian/laracrud-apigen
Package laracrud-apigen
Short Description Generate complete CRUD APIs for Laravel with Repository pattern, Spatie QueryBuilder, JSON:API pagination, and DTOs.
License MIT
Informations about the package laracrud-apigen
LaraCRUD Generator
Generate complete CRUD APIs for Laravel with a single Artisan command.
Features
- API Controller with full CRUD operations
- Form Request validation classes (Create & Update)
- API Resource for JSON transformation
- Repository pattern (Interface + Implementation) with listing logic in the repository layer
- DTO generation using Spatie Laravel Data
- Spatie Query Builder integration (filters, sorts, includes) — encapsulated in the repository
- JSON:API pagination via Spatie JSON API Paginate (config-driven parameter names and defaults)
- OpenAPI documentation attributes driven by
json-api-paginateconfig (supportspage[number]/page[size]and cursor pagination) - Automatic route registration
- Automatic service provider binding
- Smart column type detection (MySQL, PostgreSQL, SQLite, SQL Server) with automatic
Carboncasting for date/datetime/timestamp columns
Requirements
- PHP 8.2+
- Laravel 11 or 12
Optional (recommended)
spatie/laravel-query-builder— for query filtering/sortingspatie/laravel-json-api-paginate— for JSON:API paginationspatie/laravel-data— for DTO generation
Installation
Usage
Examples
Generated Files
For php artisan generate:crud-api Company:
| Component | Path |
|---|---|
| Controller | app/Http/Controllers/Api/CompanyController.php |
| Create Request | app/Http/Requests/Api/Company/CompanyCreateRequest.php |
| Update Request | app/Http/Requests/Api/Company/CompanyUpdateRequest.php |
| Resource | app/Http/Resources/Api/CompanyResource.php |
| Repository Interface | app/Repositories/Contracts/CompanyRepositoryInterface.php |
| Repository | app/Repositories/CompanyRepository.php |
| DTO | app/DTO/CompanyDTO.php |
| Routes | routes/api.php (appended) |
Generated API Endpoints
Configuration
Publish the config file:
Available options in config/crud-generator.php:
Customizing Business Logic
The generated code is yours to modify. The repository pattern keeps all data-access logic (including listing with filters, sorts, and pagination) in the repository layer, keeping controllers thin.
Generated repository structure
The generated repository includes a list() method that encapsulates query builder logic:
The controller's index() simply delegates to the repository:
Overriding the list method
Customize filtering, sorting, or add scopes by overriding list():
Adding custom methods to a repository
First, define the method in the interface:
Then implement it in the repository:
Overriding CRUD behavior in a repository
Override any base method to add custom logic:
Adding custom controller actions
Add new methods to the generated controller and register the routes manually:
Customizing validation rules
Edit the generated request classes to add conditional or complex rules:
Customizing the API Resource
Add computed fields, conditional relationships, or hide fields:
JSON:API Pagination
When use_json_api_paginate is enabled, the generated OpenAPI documentation attributes automatically read from your config/json-api-paginate.php configuration:
The generator uses these values to produce the correct Scramble #[QueryParameter] attributes:
page[number]andpage[size]by default (JSON:API spec compliant)page[cursor]andpage[size]whenuse_cursor_paginationis enabled- Parameter names and example values adapt if you customize the config
When use_json_api_paginate is disabled, the generator falls back to standard Laravel page and per_page parameters.
Prerequisites
Make sure your bootstrap/app.php includes the API routes:
License
MIT
All versions of laracrud-apigen with dependencies
illuminate/console Version ^11.0|^12.0
illuminate/filesystem Version ^11.0|^12.0
illuminate/support Version ^11.0|^12.0
spatie/laravel-data Version ^4.0
spatie/laravel-query-builder Version ^6.0
spatie/laravel-json-api-paginate Version ^2.0