zchted / affogato
Micro Micro Rawr Rawr :)
Installs: 49
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/zchted/affogato
Requires
- php: ^8.1
- doctrine/inflector: ^2.0
- laravel/framework: ^12.0
This package is auto-updated.
Last update: 2025-12-02 03:57:29 UTC
README
Composer Plugin for Laravel RDBMS Development
🔧 Laravel 12 Installation
-
Create a new Laravel app:
laravel new affogato
-
Run the custom API install script:
php artisan install:api
-
Add
use HasApiTokensin App/Models/User.php -
Link storage:
php artisan storage:link
📦 Steps to Install Affogato
-
Install Affogato via Composer
composer require zchted/affogato:dev-main
-
Register the Service Provider
In
config/app.phpor your custom provider loader (likebootstrap/providers.php):Zchted\Affogato\AffogatoServiceProvider::class,
-
Extend AffogatoController in Your Controller
use Zchted\Affogato\AffogatoController; class MyController extends AffogatoController { // }
-
Run Seeder in
DatabaseSeeder.phpuse Zchted\Affogato\Command; public function run() { Command::runSeeder($this->command); }
-
Register Middlewares and Exception Handler to
bootstrap/app.phpThis is needed to force JSON Response on the APIs.
<?php use Illuminate\Foundation\Application; use Illuminate\Foundation\Configuration\Exceptions; use Illuminate\Foundation\Configuration\Middleware; return Application::configure(basePath: dirname(__DIR__)) ->withRouting( web: __DIR__.'/../routes/web.php', api: __DIR__.'/../routes/api.php', commands: __DIR__.'/../routes/console.php', health: '/up', ) ->withMiddleware(function (Middleware $middleware) { /* Register Middlewares */ $middleware->append(\Zchted\Affogato\ExpireSanctumTokens::class); $middleware->append(\Zchted\Affogato\ForceJsonResponse::class); }) ->withExceptions(function (Exceptions $exceptions): void { /* Register Exception Handler */ handleExceptions($exceptions); })->create();
-
Copy
mods/api.phptoroutes/api.phpMerge or replace your
routes/api.phpfile with the one from Affogato. -
(Optional) Adopt the basic routes in
api.php<?php use Zchted\Affogato\LoginController; use Zchted\Affogato\ConfiguratorController; use Zchted\Affogato\ExpireSanctumTokens; use Zchted\Affogato\ForceJsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; // Public routes Route::post('/login', [LoginController::class, 'login']); // Protected routes Route::middleware(['auth:sanctum', ExpireSanctumTokens::class, ForceJsonResponse::class])->group(function () { // Get current user Route::get('/user', function (Request $request) { return $request->user(); }); if (file_exists(__DIR__ . '/mods.php')) { require __DIR__ . '/mods.php'; } // Logout Route::post('/logout', [LoginController::class, 'logout']); Route::post('config/{config}', [ConfiguratorController::class, 'getConfig']); });