Skip to content
Academy
0/15

Routes

On this page

Fundamentals · Unit 2 of 3

Contracts before coupling

A plugin declares what it provides and what it requires. The resolver can validate the whole set before boot because it works with an explicit graph, not with hidden side effects.

Beginner20 min

By the end, you'll be able to

  • Recognize provides/requires
  • Detect a missing capability and a cycle

Understand

A plugin declares what it provides and what it requires. The resolver can validate the whole set before boot because it works with an explicit graph, not with hidden side effects.

Boot order is a consequence of the graph. If a capability is missing or a cycle exists, the system must fail with evidence and before it serves traffic.

See

Break and repair the planting

Trigger a cycle, inspect the block and return to a valid order.

Do

Run the practice in your checkout and keep the output as evidence.

terminal
$php bin/coa validate

Verify

Show that you can apply the unit. Progress only advances once you pass the assessment.

Criteria assessed

  • Place validation before boot.
  • Justify the valid order from the graph, not from a manual list.

Graded assessment

Solve the 3 scenarios. This unit requires 3 of 3 correct answers.

0 attempts
Question 1 of 3ReportsPlugin declares that it requires ExporterInterface, but no configured plugin provides it. What result should php bin/coa validate produce?
Question 2 of 3IdentityPlugin provides identity; OrdersPlugin requires identity and provides orders; NotificationsPlugin requires orders. Which boot order respects the graph?
Question 3 of 3PluginA provides alpha and requires beta; PluginB provides beta and requires alpha. The kernel tries to boot that host. What is the architecturally correct result?

Grading validates answers in this browser; it doesn't certify identity.

Primary sources

Content verified: 2026-07-10