Skip to content

smeade/phoenix-contexts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hello Contexts

Code examples and a demonstration apps built in Phoenix 1.3 while reading about contexts in the Phoenix Guides. This is part of larger effort found here.

  • Contexts
    • Overview [ guide ]
    • Adding an Accounts Context With Generators [ guide | code:controller | code:context | code:schema | demo ]
    • In-context Relationships: e.g. Credential belongs_to User
      • Overview [ guide ]
      • mix phx.gen.context Accounts Credential...[ code ]
      • has_one/belongs_to [ code:belongs_to | code:has_one ]
      • load association data [ code ]
      • add association changeset [ code ]
      • add association to user edit/create form [ code ]
      • add user.credential.email association to user show [ code | demo ]
    • Adding Account Functions: e.g. Sessions
      • Overview [ guide | demo ]
      • Add authenticate_by_email_password function to accounts [ code ]
      • Create session controller [ code | code ]
      • Add sessions to router [ code ]
      • Add an authentication plug to the router [ code ]
      • Create session view and template [ code | code ]
    • Cross-context dependencies: e.g. CMS.Author <-> Accounts.User
      • Overview [guide]
      • New CMS context
        • Generate CMS context, Page schema and web modules [code]
        • Add to router [code]
        • Generate an Author schema [code]
        • Add an author_id field to the pages table [code]
    • Cross-context data: e.g. CMS.Author <-> Accounts.User
      • Overview [ guide | demo ]
      • Tie pages to authors and author to users
        • page belongs_to author [code]
        • author has_many pages [code]
        • author belongs_to user [code]
      • Require an author on pages
        • preload author on page fetch [code]
        • persist author data [code]
        • ensure author exists [code]
        • add require_existing_author plug to CMS.PageController [code | code]
        • make use of current_author in the connection assigns from require_existing_author plug [code]
        • display author when showing a page [ code | code | demo ]
    • Adding CMS functions: e.g. page views
      • Overview [ guide demo]
      • add an inc_page_views function [code]
      • use the inc_page_views function in the controller [code]
      • see page views increment with each refresh! [demo]

To start your Phoenix server:

  • Install dependencies with mix deps.get
  • Create and migrate your database with mix ecto.create && mix ecto.migrate
  • Install Node.js dependencies with cd assets && npm install
  • Start Phoenix endpoint with mix phx.server

Now you can visit localhost:4000 from your browser.

Ready to run in production? Please check our deployment guides.

Learn more

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published