Saltar al contenido
Academy
0/24

Rutas

En esta página

Fundamentos · Unidad 2 de 4

Contratos antes que acoplamiento

Un plugin declara lo que provee y lo que requiere. El resolver puede validar el conjunto antes de arrancar porque trabaja con un grafo explícito, no con efectos laterales escondidos.

Inicial20 min

Al terminar podrás

  • Reconocer provides/requires
  • Detectar una capacidad ausente y un ciclo

Entender

Un plugin declara lo que provee y lo que requiere. El resolver puede validar el conjunto antes de arrancar porque trabaja con un grafo explícito, no con efectos laterales escondidos.

El orden de boot es una consecuencia del grafo. Si falta una capacidad o existe un ciclo, el sistema debe fallar con evidencia y antes de atender tráfico. El reporte del resolver nombra el ciclo con su propio vocabulario: en un ciclo nadie puede ir primero, así que los miembros del ciclo quedan excluidos de loadOrder[] y el grafo bloquea (MILPA_DEPENDENCY_CYCLE) hasta que el ciclo se rompe.

Cuando varios proveedores reclaman el mismo id, el resolver separa dos casos. Un id exclusivo reclamado por dos o más proveedores bloquea el grafo (MILPA_CAPABILITY_CONFLICT): el resolver se niega a elegir en silencio, porque una elección oculta es exactamente la arquitectura invisible que existe para prevenir. Entre múltiples proveedores NO exclusivos la elección sí es legítima, y priority la vuelve determinista: gana la priority más alta (ausente = 0). priority ordena una elección permitida; no rescata un conflicto exclusivo.

Ver

Romper y reparar la siembra

Activa un ciclo, inspecciona el bloqueo y vuelve a un orden válido.

Hacer

Ejecuta la práctica en tu checkout y conserva la salida como evidencia.

terminal
$php bin/coa validate

Verificar

Demuestra que puedes aplicar la unidad. El progreso solo avanza al aprobar la evaluación.

Criterios evaluados

  • Ubica la validación antes del boot.
  • Justifica el orden válido a partir del grafo, no de una lista manual.

Evaluación calificable

Resuelve los 4 escenarios. Esta unidad exige 4 de 4 respuestas correctas.

0 intentos
Pregunta 1 de 4ReportsPlugin declara que requiere ExporterInterface, pero ningún plugin configurado la provee. ¿Qué resultado debe producir php bin/coa validate?
Pregunta 2 de 4IdentityPlugin provee identity; OrdersPlugin requiere identity y provee orders; NotificationsPlugin requiere orders. ¿Qué orden de boot respeta el grafo?
Pregunta 3 de 4PluginA provee alpha y requiere beta; PluginB provee beta y requiere alpha. El kernel intenta arrancar ese host. ¿Cuál es el resultado arquitectónicamente correcto?
Pregunta 4 de 4CachePlugin y RedisPlugin proveen la capacidad cache, que está marcada como exclusiva. RedisPlugin declara priority 10; CachePlugin no declara priority. ¿Qué debe reportar el resolver?

La calificación valida respuestas en este navegador; no certifica identidad.

Fuentes primarias

Contenido verificado: 2026-07-12