首先,实例化Slim\App
类。这是 Slim 应用程序对象。在实例化期间,Slim 为每个应用程序依赖项注册默认服务。
其次,您使用应用程序实例的get()
、post()
、put()
、delete()
、patch()
、head()
和options()
路由方法定义路由。这些实例方法向应用程序的 Router 对象注册一个路由。每个路由方法都会返回 Route 实例,因此您可以立即调用 Route 实例的方法来添加中间件或分配名称。
第三,调用应用程序实例的run()
方法。此方法启动以下过程:
该run()
方法开始向内遍历应用程序的中间件堆栈。这是中间件层的同心结构,在 Slim 应用程序运行之前(和之后)接收(并可选地操作)环境、请求和响应对象。Slim 应用程序是同心中间件结构的最内层。每个中间件层从最外层开始向内调用。
run()
方法到达最内层的中间件层后,它调用应用程序实例并将当前 HTTP 请求分派到适当的应用程序路由对象。如果路由与 HTTP 方法和 URI 匹配,则调用路由的中间件和可调用对象。如果未找到匹配的路由,则调用 Not Found 或 Not Allowed 处理程序。
应用程序调度过程完成后,每个中间件层从最内层开始向外收回控制权。
在最外层的中间件层放弃控制权后,应用程序实例准备、序列化并返回 HTTP 响应。HTTP 响应头用PHP 的native 方法设置header()
,HTTP 响应体输出到当前输出缓冲区。