alxarafe / resource-eloquent
Eloquent ORM adapter for alxarafe/resource-controller. Implements RepositoryContract, QueryContract, and TransactionContract using Illuminate Database.
v0.1.1
2026-04-24 11:02 UTC
Requires
- php: ^8.2
- alxarafe/resource-controller: ^0.2.1
- illuminate/database: ^10.0 || ^11.0 || ^12.0
Requires (Dev)
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^10.5
- squizlabs/php_codesniffer: ^3.10
- vimeo/psalm: ^6.0
README
Eloquent ORM adapter for alxarafe/resource-controller.
Implements RepositoryContract, QueryContract, and TransactionContract using Illuminate Database.
Ecosystem
| Package | Purpose | Status |
|---|---|---|
| resource-controller | Core CRUD engine + UI components | ✅ Stable |
| resource-eloquent | Eloquent ORM adapter | ✅ Stable |
| resource-blade | Blade template renderer adapter | ✅ Stable |
| resource-twig | Twig template renderer adapter | ✅ Stable |
Installation
composer require alxarafe/resource-eloquent
This will automatically install alxarafe/resource-controller and illuminate/database.
Usage
use Alxarafe\ResourceController\AbstractResourceController; use Alxarafe\ResourceController\Contracts\RepositoryContract; use Alxarafe\ResourceController\Contracts\TransactionContract; use Alxarafe\ResourceEloquent\EloquentRepository; use Alxarafe\ResourceEloquent\EloquentTransaction; use App\Models\Product; // Your Eloquent model class ProductController extends AbstractResourceController { // ... basic controller configuration ... protected function getRepository(string $tabId = 'default'): RepositoryContract { return new EloquentRepository(Product::class); } protected function getTransaction(): TransactionContract { // Get the DB connection from Laravel or Capsule return new EloquentTransaction(\Illuminate\Support\Facades\DB::connection()); } }
Features
- Translates declarative field filtering and querying to Eloquent queries.
- Manages pagination automatically.
- Handles simple and compound database transactions seamlessly.
- Converts Eloquent metadata directly into Resource Controller configurations.
Development
Docker
docker compose up -d
docker exec alxarafe-resources composer install
Running the CI pipeline locally
bash bin/ci_local.sh
Running tests only
bash bin/run_tests.sh
License
GPL-3.0-or-later