Skip to content
docsv0.2.0

SettingsController

El POST de settings detrás del MISMO gate compartido que el GET (Tarea 6): `[StartSession, RequireScopeMiddleware('milpa.admin')]` vía {@see GatedAdminController::runGated()}, más {@see CsrfGuard} compuesta DESPUÉS como `$extraMiddleware` — un CSRF ausente o que no matchea nunca llega a bindear ni a persistir, porque el guard corre y lanza ANTES de que el `$tip` de abajo se ejecute. El `$tip` bindea el body contra el MISMO `FormDefinition` que el GET ({@see SettingsFormSchema::definition()}) vía `SchemaForm::bind()`. Válido → dispatch GOBERNADO (P5.4, ADR#11): {@see ToolProjector::dispatch()} corre SIEMPRE por `ToolRegistry::call()` — policy/rate-limit/audit/contención — nunca invoke directo; el ceremonial de P5.3a murió con este cambio. Success → PRG (303 See Other a `/milpa/admin/settings`, para que un refresh re-GET-ee en vez de reenviar el POST). Redisplay (bind inválido, o el registry rechazó/falló) → el MISMO shell ({@see ShellRenderHandler}, Tarea 6) con los valores Y errores de LA SUMISIÓN — nunca la store, nunca una mezcla —, el `?FormBanner` seguro que el proyector arma cuando aplica, y una cookie/hidden CSRF frescos (mismo idioma que el GET: un token nuevo por render).

SettingsController::__construct()

public function __construct(Milpa\Interfaces\Di\DIContainerInterface $container):

Parameters

Parameters of __construct()
NameTypeDescription
$containerMilpa\Interfaces\Di\DIContainerInterface

SettingsController::show()

public function show(Symfony\Component\HttpFoundation\Request $request, array $params = []): Milpa\Http\Symfony\HttpResponse

Pinta el formulario de configuración con un token CSRF nuevo por petición.

Parameters

Parameters of show()
NameTypeDescription
$requestSymfony\Component\HttpFoundation\Request
$paramsarray

SettingsController::save()

public function save(Symfony\Component\HttpFoundation\Request $request, array $params = []): Milpa\Http\Symfony\HttpResponse

Guarda la configuración. Éxito → PRG; sumisión inválida → se repinta con sus errores.

Parameters

Parameters of save()
NameTypeDescription
$requestSymfony\Component\HttpFoundation\Request
$paramsarray