PluginsController
La sección "Plugins" del Milpa Admin: qué plugins tiene este host, cuáles arrancan, y un botón por fila para prenderlos o apagarlos. Detrás del MISMO gate compartido que Settings y Sistema (`[StartSession, RequireScopeMiddleware('milpa.admin')]` vía {@see GatedAdminController::runGated()}), más {@see CsrfGuard} en el POST — conmutar un plugin cambia lo que este host ejecuta en la siguiente petición, así que no puede dispararse desde otro sitio. No implementa nada de plugins: maneja las operaciones de `milpa/plugin` a través de {@see PluginsStateProvider}. La terminal (`coa plugins.list`), un cliente MCP y esta página llegan exactamente a la misma definición, así que no pueden decir cosas distintas. Éxito → PRG (303 a la misma ruta, para que un refresh no re-envíe el POST) y la propia tabla es la confirmación: la fila cambia de "activo" a "inactivo". Fallo → redisplay con el motivo, mismo idioma que Settings.
PluginsController::__construct()
public function __construct(Milpa\Interfaces\Di\DIContainerInterface $container):Parameters
| Name | Type | Description |
|---|---|---|
| $container | Milpa\Interfaces\Di\DIContainerInterface |
PluginsController::show()
public function show(Symfony\Component\HttpFoundation\Request $request, array $params = []): Milpa\Http\Symfony\HttpResponsePinta los plugins del host y un botón por fila para prenderlos o apagarlos.
Parameters
| Name | Type | Description |
|---|---|---|
| $request | Symfony\Component\HttpFoundation\Request | |
| $params | array |
PluginsController::toggle()
public function toggle(Symfony\Component\HttpFoundation\Request $request, array $params = []): Milpa\Http\Symfony\HttpResponseConmuta un plugin. Éxito → PRG; fallo → se repinta con el motivo.
Parameters
| Name | Type | Description |
|---|---|---|
| $request | Symfony\Component\HttpFoundation\Request | |
| $params | array |