This course is in beta. Only the beginner tracks are written so far, and content may still change. Found a mistake or something unclear? Open an issue on GitHub - feedback is very welcome.
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.