用途:在创建或审查 Phoenix 1.8 项目时提供规范,涉及 router、controllers、LiveView、Ecto、PubSub 与 JSON API。
主要能力:以 contexts 作为领域 API(如 list_posts(scope)、get_post!(scope, id)),MyAppWeb 只负责 HTTP/LiveView;router.ex 声明 pipelines 与 live_session;使用 Ecto schemas、changesets、migrations、Repo;PubSub 做扇出与 LiveView 更新;Swoosh 发邮件(含 magic link);Bandit 作 HTTP 服务器;保留 mix phx.new 生成的 Tailwind、esbuild、core_components。
必要用法与规则:认证与授权分离,scope(user、org、tenant)进入每个读写用户数据的 context 函数;生成器 phx.gen.live、html、json 已带 scope,不要移除该参数;changesets 在边界校验,禁止用原始 params map 直接 Repo.insert;已上生产的 migration 不可修改,需新建;不要暴露含内部字段(密码哈希、token)的 Ecto schema;密钥走 config/runtime.exs 环境变量;生产启用 force_ssl 与安全 cookie。LiveView 中 mount/handle_params 经 context+scope 取数,handle_event 保持精简,列表用 streams;浏览器与 API 使用分离的 pipeline;授权细粒度放在 context。
适用场景:Phoenix 1.8 新项目搭建、代码审查、LiveView 或 JSON API 实现、多租户数据隔离、测试 ownership 与 403。
限制:资料未提供具体版本兼容范围、安装命令、收费或性能数据;部分内容为规范建议,实际项目需结合自身环境验证。