neomerx/limoncello
Integration layer between neomerx/json-api and Symfony-based apps, used by Limoncello quick-start projects (Laravel Limoncello Collins and Lumen Limoncello Shot). Provides JSON:API wiring and conventions; see the wiki for setup and usage.
Route::apiResource() or Laravel Nova instead).Illuminate\Http\Request vs. Limoncello’s raw $_GET/$_POST parsing.foreach ($array as $key => $val)) clashes with Laravel’s PSR-12 compliance.Http\Client or Nova API?Route::apiResource() + API Resources.Laravel GraphQL or Nuvem.Laravel Sanctum/Passport + Pennant for API gateways.routes/api.php.Request objects.
// app/Http/Middleware/LimoncelloAdapter.php
public function handle($request, Closure $next) {
$limoncelloRequest = new \Limoncello\Request($_GET, $_POST);
// Inject into request attributes or service container
return $next($request->merge(['limoncello' => $limoncelloRequest]));
}
Route::post() to validate performance/maintainability.SupportsLaravelRequests).Http\Client or Nova API resources.$_SERVER/$_POST access.Handle interface; must manually bind to $middleware.Request facade to normalize input:
$data = request()->all(); // Instead of $_POST
Auth::attempt().| Phase | Task | Tools/Libraries |
|---|---|---|
| Discovery | Map Limoncello routes to Laravel’s routes/api.php |
Postman, Laravel Debugbar |
| Adapter Layer | Build middleware to translate requests/responses | Laravel Middleware, Facades |
| Incremental Rewrite | Replace 1–2 endpoints using Laravel’s Controller + Resource |
PHPUnit, Pest |
| Deprecation | Phase out Limoncello routes; add deprecation headers | Laravel’s abort() + custom middleware |
| Fork/Replace | Migrate to Laravel Nova or API Resources |
GitHub Fork, Laravel Homestead |
createJsonTest()).Request class with Laravel’s Illuminate\Http\Request.Cache facade or Redis integration.job_id via Limoncello.Cache::remember() to cache responses manually.| Risk | Impact | Mitigation Strategy |
|---|---|---|
| Laravel Core Updates | Breaks Limoncello integration | Pin Laravel to a stable branch (e.g., 8.x) |
| Security Vulnerabilities | Exploitable endpoints | Use Laravel’s ValidateRequests middleware |
| Dependency Conflicts | PHP version mismatches | Isolate Limoncello in a subdirectory |
| Team Attrition | Knowledge loss | Document architecture decisions |
Route, Middleware, and Service Provider basics.How can I help you explore Laravel packages today?