# Phoenix v1.8.13 - Table of Contents

> Peace of mind from prototype to production

## GUIDES

- [Changelog for v1.8](changelog.md)
- [JS Documentation](js-documentation.md)

- Introduction
  - [Overview](overview.md)
  - [Installation](installation.md)
  - [Up and Running](up_and_running.md)
  - [Community](community.md)
  - [Packages Glossary](packages_glossary.md)

- Core Concepts
  - [Directory structure](directory_structure.md)
  - [Request life-cycle](request_lifecycle.md)
  - [Plug](plug.md)
  - [Routing](routing.md)
  - [Controllers](controllers.md)
  - [Components and HEEx](components.md)
  - [Ecto](ecto.md)
  - [JSON and APIs](json_and_apis.md)
  - [LiveView](live_view.md)
  - [Asset Management](asset_management.md)
  - [Telemetry](telemetry.md)
  - [Security](security.md)

- Data Modelling
  - [1. Intro to Contexts](contexts.md)
  - [2. Your First Context](your_first_context.md)
  - [3. In-context Relationships](in_context_relationships.md)
  - [4. Cross-context Boundaries](cross_context_boundaries.md)
  - [5. Bringing It Home](more_examples.md)
  - [6. FAQ](faq.md)

- Authn and Authz
  - [Introduction to Auth](authn_authz.md)
  - [mix phx.gen.auth](mix_phx_gen_auth.md)
  - [Scopes](scopes.md)
  - [API Authentication](api_authentication.md)

- Real-time
  - [Channels](channels.md)
  - [Presence](presence.md)

- Testing
  - [Introduction to Testing](testing.md)
  - [Testing Contexts](testing_contexts.md)
  - [Testing Controllers](testing_controllers.md)
  - [Testing Channels](testing_channels.md)

- Deployment
  - [Introduction to Deployment](deployment.md)
  - [Deploying with Releases](releases.md)
  - [Deploying on Fly.io](fly.md)
  - [Deploying on Gigalixir](gigalixir.md)
  - [Deploying on Heroku](heroku.md)

- Cheatsheets
  - [Routing cheatsheet](router.md)

- How-to's
  - [Custom Error Pages](custom_error_pages.md)
  - [File Uploads](file_uploads.md)
  - [Swapping Databases](swapping_databases.md)
  - [Using SSL](using_ssl.md)
  - [Writing a Channels Client](writing_a_channels_client.md)

## Modules

- [Phoenix](Phoenix.md): This is the documentation for the Phoenix project.
- [Phoenix.Channel](Phoenix.Channel.md): Defines a Phoenix Channel.
- [Phoenix.Controller](Phoenix.Controller.md): Controllers are used to group common functionality in the same
(pluggable) module.
- [Phoenix.Debug](Phoenix.Debug.md): Functions for runtime introspection and debugging of Phoenix applications.
- [Phoenix.Endpoint](Phoenix.Endpoint.md): Defines a Phoenix endpoint.
- [Phoenix.Flash](Phoenix.Flash.md): Provides shared flash access.

- [Phoenix.Logger](Phoenix.Logger.md): Instrumenter to handle logging of various instrumentation events.
- [Phoenix.Naming](Phoenix.Naming.md): Conveniences for inflecting and working with names in Phoenix.

- [Phoenix.Param](Phoenix.Param.md): A protocol that converts data structures into URL parameters.
- [Phoenix.Presence](Phoenix.Presence.md): Provides Presence tracking to processes and channels.
- [Phoenix.Router](Phoenix.Router.md): Defines a Phoenix router.
- [Phoenix.Socket](Phoenix.Socket.md): A socket implementation that multiplexes messages over channels.
- [Phoenix.Token](Phoenix.Token.md): Conveniences to sign/encrypt data inside tokens
for use in Channels, API authentication, and more.
- [Phoenix.VerifiedRoutes](Phoenix.VerifiedRoutes.md): Provides route generation with compile-time verification.

- Testing
  - [Phoenix.ChannelTest](Phoenix.ChannelTest.md): Conveniences for testing Phoenix channels.
  - [Phoenix.ConnTest](Phoenix.ConnTest.md): Conveniences for testing Phoenix endpoints and connection related helpers.

- Adapters and Plugs
  - [Phoenix.CodeReloader](Phoenix.CodeReloader.md): A plug and module to handle automatic code reloading.
  - [Phoenix.Endpoint.Cowboy2Adapter](Phoenix.Endpoint.Cowboy2Adapter.md): The Cowboy2 adapter for Phoenix.
  - [Phoenix.Endpoint.SyncCodeReloadPlug](Phoenix.Endpoint.SyncCodeReloadPlug.md): Wraps an Endpoint, attempting to sync with Phoenix's code reloader if 
an exception is raised which indicates that we may be in the middle of a reload.

- Digester
  - [Phoenix.Digester.Compressor](Phoenix.Digester.Compressor.md): Defines the `Phoenix.Digester.Compressor` behaviour for
implementing static file compressors.
  - [Phoenix.Digester.Gzip](Phoenix.Digester.Gzip.md): Gzip compressor for Phoenix.Digester

- Socket
  - [Phoenix.Socket.Broadcast](Phoenix.Socket.Broadcast.md): Defines a message sent from pubsub to channels and vice-versa.
  - [Phoenix.Socket.Message](Phoenix.Socket.Message.md): Defines a message dispatched over transport to channels and vice-versa.
  - [Phoenix.Socket.Reply](Phoenix.Socket.Reply.md): Defines a reply sent from channels to transports.
  - [Phoenix.Socket.Serializer](Phoenix.Socket.Serializer.md): A behaviour that serializes incoming and outgoing socket messages.
  - [Phoenix.Socket.Transport](Phoenix.Socket.Transport.md): Outlines the Socket <-> Transport communication.

- Exceptions
  - [Phoenix.ActionClauseError](Phoenix.ActionClauseError.md)
  - [Phoenix.MissingParamError](Phoenix.MissingParamError.md): Raised when a key is expected to be present in the request parameters,
but is not.
  - [Phoenix.NotAcceptableError](Phoenix.NotAcceptableError.md): Raised when one of the `accept*` headers is not accepted by the server.
  - [Phoenix.Router.MalformedURIError](Phoenix.Router.MalformedURIError.md): Exception raised when the URI is malformed on matching.

  - [Phoenix.Router.NoRouteError](Phoenix.Router.NoRouteError.md): Exception raised when no route is found.

  - [Phoenix.Socket.InvalidMessageError](Phoenix.Socket.InvalidMessageError.md): Raised when the socket message is invalid.

## Mix Tasks

- [mix local.phx](Mix.Tasks.Local.Phx.md): Updates the Phoenix project generator locally.
- [mix phx](Mix.Tasks.Phx.md): Prints Phoenix tasks and their information.
- [mix phx.digest](Mix.Tasks.Phx.Digest.md): Digests and compresses static files.
- [mix phx.digest.clean](Mix.Tasks.Phx.Digest.Clean.md): Removes old versions of compiled assets.
- [mix phx.gen](Mix.Tasks.Phx.Gen.md): Lists all available Phoenix generators.
- [mix phx.gen.auth](Mix.Tasks.Phx.Gen.Auth.md): Generates authentication logic and related views for a resource.
- [mix phx.gen.cert](Mix.Tasks.Phx.Gen.Cert.md): Generates a self-signed certificate for HTTPS testing.
- [mix phx.gen.channel](Mix.Tasks.Phx.Gen.Channel.md): Generates a Phoenix channel.
- [mix phx.gen.context](Mix.Tasks.Phx.Gen.Context.md): Generates a context with functions around an Ecto schema.
- [mix phx.gen.embedded](Mix.Tasks.Phx.Gen.Embedded.md): Generates an embedded Ecto schema for casting/validating data outside the DB.
- [mix phx.gen.html](Mix.Tasks.Phx.Gen.Html.md): Generates controller with view, templates, schema and context for an HTML resource.
- [mix phx.gen.json](Mix.Tasks.Phx.Gen.Json.md): Generates controller, JSON view, and context for a JSON resource.
- [mix phx.gen.live](Mix.Tasks.Phx.Gen.Live.md): Generates LiveView, templates, and context for a resource.
- [mix phx.gen.notifier](Mix.Tasks.Phx.Gen.Notifier.md): Generates a notifier that delivers emails by default.
- [mix phx.gen.presence](Mix.Tasks.Phx.Gen.Presence.md): Generates a Presence tracker.
- [mix phx.gen.release](Mix.Tasks.Phx.Gen.Release.md): Generates release files and optional Dockerfile for release-based deployments.
- [mix phx.gen.schema](Mix.Tasks.Phx.Gen.Schema.md): Generates an Ecto schema and migration.
- [mix phx.gen.secret](Mix.Tasks.Phx.Gen.Secret.md): Generates a secret and prints it to the terminal.
- [mix phx.gen.socket](Mix.Tasks.Phx.Gen.Socket.md): Generates a Phoenix socket handler.
- [mix phx.new](Mix.Tasks.Phx.New.md): Creates a new Phoenix project.
- [mix phx.new.ecto](Mix.Tasks.Phx.New.Ecto.md): Creates a new Ecto project within an umbrella project.
- [mix phx.new.web](Mix.Tasks.Phx.New.Web.md): Creates a new Phoenix web project within an umbrella project.
- [mix phx.routes](Mix.Tasks.Phx.Routes.md): Prints all routes for the default or a given router.
Can also locate the controller function behind a specified url.
- [mix phx.server](Mix.Tasks.Phx.Server.md): Starts the application by configuring all endpoints servers to run.

