核心概念

本章介绍 Viswoole 框架的五大核心机制:依赖注入容器、门面(Facade)、事件系统、协程环境与验证器。它们共同构成框架的骨架——业务代码中的路由分发、请求处理、数据读写都建立在这些机制之上。

本章内容

篇章类型说明
容器与依赖注入参考 + 解释App::factory() 全局单例容器的绑定、解析、方法注入与请求级协程隔离
门面参考门面的静态转发原理、全部门面清单与 IDE 提示优化命令
事件系统参考事件的注册、定向触发、框架生命周期事件清单与 Swoole 事件挂钩
协程环境与常驻内存解释Swoole 协程模型、协程上下文、连接池原理与常驻内存开发红线
验证器参考注解式参数校验、内置规则全表与自定义规则开发

全局架构

text
┌─────────────────────────────────────────────────────┐
│                  应用容器 (App extends Container)     │
│      App::factory() 全局单例 · 服务注册 · 魔术属性      │
├─────────────────────────────────────────────────────┤
│  门面层 (Facade)         静态调用 → 转发到容器实例      │
│  助手函数 (helper.php)   app() / make() / config() …  │
├─────────────────────────────────────────────────────┤
│  事件系统 (Event)        on / emit / off / 定向触发    │
│  协程层 (Coroutine)      上下文隔离 · 连接池 · Channel │
│  验证器 (Validate)       注解规则 · 容器注入时自动执行  │
└─────────────────────────────────────────────────────┘

一个关键前提

Viswoole 运行在 Swoole 常驻内存 + 协程环境中,这与传统 PHP-FPM「每请求重新加载一切」的模型根本不同:

  • 容器中的单例按请求根协程隔离存储,每个 HTTP 请求拥有独立的服务实例集合,请求结束自动销毁(详见容器);
  • 进程级长生命周期的只有全局服务(logcachedbrouter 等)和只读元数据;
  • 因此类的 static 属性禁止存放请求级状态,连接等资源一律交给连接池管理(详见协程环境与常驻内存)。

理解这一点后再阅读本章其余内容,很多设计决策会变得理所当然。

学习建议

  1. 先读容器与依赖注入,它是其余一切机制的基础;
  2. 通过门面和助手函数掌握框架服务的日常访问方式;
  3. 事件系统用于在不动框架代码的前提下介入框架生命周期;
  4. 协程环境与常驻内存解释框架的运行模型,动笔写业务前务必阅读;
  5. 验证器配合控制器参数注入使用,是编写接口的第一道防线。

下一步

  • 路由:注解路由与编程式路由
  • 控制器:控制器的创建与参数自动注入