BootstrapRunner
Orchestrates an ordered sequence of bootstrap phases fail-fast, turning each phase's outcome into a structured report suitable for logging, CI integration, and host-level decision-making (abort the app if critical phases fail). Domain-blind: phases own their own effects (Doctrine schema creation, plugin registration, etc.). The runner is pure orchestration.
BootstrapRunner::__construct()
public function __construct(array $phases, ?Psr\Log\LoggerInterface $logger = null):Parameters
| Name | Type | Description |
|---|---|---|
| $phases | list<BootstrapPhaseInterface> | |
| $logger | ?Psr\Log\LoggerInterface |
BootstrapRunner::run()
public function run(): Milpa\Ops\Bootstrap\BootstrapReportCorre las fases en orden y se detiene en la primera que falla. Fail-fast y no «corre todo y reporta»: una fase que falla suele dejar el sistema a medio preparar, y seguir adelante produce errores posteriores que apuntan al lugar equivocado. El reporte trae la fase que falló y las que alcanzaron a correr, para que quien lo lea sepa dónde quedó parado. No lanza: el fallo viaja en el reporte, y quien llama decide si aborta.