Prologue
Getting started
Basic concepts
Request lifecycle
Routing
Dependency injection
Controllers
Middlewares
Events
Front-end
Background jobs (Cron)
Caching
Logging
Settings
Storage and database
Public share template
Testing
App development
Server development
Digging deeper
App publishing and maintenance
Interface & interaction design
HTML/CSS guidelines
Clients and Client APIs
Nextcloud latest Developer Manual
Basic concepts
Edit on GitHub
Basic concepts
Request lifecycle
Front controller
Routing
Extracting values from the URL
Matching subURLs
Default values for subURL
Registering resources
Using the URLGenerator
Dependency injection
Dependency injection
Controller injection
Using a container
How the container works
Use automatic dependency assembly (recommended)
Which classes should be added
Optional services
Accessing the container from anywhere
Controllers
Connecting a controller and a route
Getting request parameters
Responses
Authentication
Rate limiting
Brute-force protection
Middlewares
Global Middlewares
Dependency Injection Container Registration
Parsing annotations
Events
Overview
OCP event dispatcher
Hooks
Public emitter
Front-end
Templates
JavaScript
CSS
Translation
Theming support
Background jobs (Cron)
Types of background jobs
Writing a background job
Registering a background job
Caching
Types of caches
In-memory cache
Local cache
Distributed cache
Logging
Admin audit logging
Settings
Storage and database
Migrations
Database access
Configuration
Nextcloud filesystem API
AppData
Public share template
Testing
PHP