Chapter 3 of 15
Project structure.
Application code, configuration, and runtime data each have a clear home.
Important directories
Keep application code in app/, public files in public/, and writable runtime data in storage/. Do not modify framework source or packages under vendor/ from the application.
Project tree
app/
├── Config/ # YAML configuration and Routing.php
├── Controllers/ # HTTP actions
├── Language/ # translation catalogs
├── Providers/ # application service bindings
└── Views/ # layouts, pages and partials
public/index.php # HTTP entry point
storage/ # cache, logs and sessions
vendor/bin/lemonade # CLI entry pointThis convention separates the HTTP entrypoint and public assets from application code and writable runtime data.
The request flow
The kernel loads typed configuration, registers providers, opens a Request scope, runs middleware, matches a route, and calls a public controller action. It then normalizes the result into a PSR response.