Section 1 of 6
Why this matters
In M4 you added ?string $userId to the controller constructor and Nextcloud silently injected the right value. That probably felt like magic. Understanding how it works — and when each approach is appropriate — is one of the most fundamental things to know about Nextcloud's DI system. It also unlocks why #[NoAdminRequired], #[PublicPage], and session context matter so much, and sets you up for everything in the Intermediate track that builds on identity.