erebox / flightphp-wire
Convenzioni di progetto su FlightPHP: bootstrap, controller base, routing via attributi, generatore OpenAPI.
1.0.1
2026-07-30 10:04 UTC
Requires
- php: >=7.4
- flightphp/core: ^3.0
README
Convenzioni di progetto condivise fra i siti basati su FlightPHP:
core\Bootstrapinizializza l'engine Flight (path dei controller, config dadata/config.json, censimento controller, registrazione route).core\controllers\BaseController/BaseWebController/BaseApiControllersono le classi base da cui estendere i controller del sito; il tipo di classe base determina la classificazione automatica (web vs API).core\attributes\Routeè l'attributo PHP con cui annotare i metodi dei controller per dichiarare path, verbo HTTP, middleware e metadati OpenAPI.core\helpers\ControllerScanner,AttributeRouteRegistrareOpenApiGeneratorgestiscono rispettivamente il censimento dei controller, la registrazione delle route e la generazione dello spec OpenAPI.core\middlewares\WebHeadereValidateApikeysono i middleware di default applicati rispettivamente alle route web e API.core\controllers\DefaultRouteControllerfornisce le route di default:/(homepage),/api(Swagger UI) e/api/openapi(spec generata).Bootstrap::initle registra sempre, ma salta quelle il cui path+metodo è già dichiarato da un controller del sito: un sito può quindi sovrascrivere una singola route (es. solo/) senza perdere le altre. Le visteindex.html/swagger.htmlsono quelle del sito se presenti inapp/views, altrimenti vengono usate quelle di default incluse nella libreria (src/views).
Installazione
composer require erebox/flightphp-wire
Uso
Nel file di ingresso del sito (es. index.php):
require 'vendor/autoload.php'; use core\Bootstrap; $app = Bootstrap::init(__DIR__.'/app', 'app\\controllers'); $app->start();
Bootstrap::init si aspetta la convenzione comune ai siti: controller in app/controllers (che estendono BaseWebController/BaseApiController), route dichiarate con l'attributo Route, config in data/config.json.