Slim 4 文档

本文档适用于Slim 4正在寻找Slim 3 文档

欢迎

Slim 是一个 PHP 微型框架,可帮助您快速编写简单但功能强大的 Web 应用程序和 API。Slim 的核心是一个调度程序,它接收 HTTP 请求、调用适当的回调例程并返回 HTTP 响应。就是这样。

重点是什么?

Slim 是创建使用、重新利用或发布数据的 API 的理想工具。Slim 也是快速制作原型的绝佳工具。哎呀,您甚至可以构建具有用户界面的全功能 Web 应用程序。更重要的是,Slim 速度超快,而且代码很少。

Slim 的核心是一个调度程序,它接收 HTTP 请求、调用适当的回调例程并返回 HTTP 响应。就是这样。

您并不总是需要像SymfonyLaravel这样的厨房水槽解决方案。当然,这些都是很棒的工具。但他们往往矫枉过正。相反,Slim 只提供了一组最少的工具来满足您的需求,除此之外别无其他。

它是如何工作的?

首先,您需要一个网络服务器,例如 Nginx 或 Apache。您应该配置您的 Web 服务器,以便它向一个“前端控制器”PHP 文件发送所有适当的请求。您在这个 PHP 文件中实例化并运行您的 Slim 应用程序。

Slim 应用程序包含响应特定 HTTP 请求的路由。每个路由调用回调并返回 HTTP 响应。首先,您首先要实例化并配置 Slim 应用程序。接下来,您定义应用程序路由。最后,运行 Slim 应用程序。就这么简单。这是一个示例应用程序:

<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;

require __DIR__ . '/../vendor/autoload.php';

/**
 * Instantiate App
 *
 * In order for the factory to work you need to ensure you have installed
 * a supported PSR-7 implementation of your choice e.g.: Slim PSR-7 and a supported
 * ServerRequest creator (included with Slim PSR-7)
 */
$app = AppFactory::create();

/**
  * The routing middleware should be added earlier than the ErrorMiddleware
  * Otherwise exceptions thrown from it will not be handled by the middleware
  */
$app->addRoutingMiddleware();

/**
 * Add Error Middleware
 *
 * @param bool                  $displayErrorDetails -> Should be set to false in production
 * @param bool                  $logErrors -> Parameter is passed to the default ErrorHandler
 * @param bool                  $logErrorDetails -> Display error details in error log
 * @param LoggerInterface|null  $logger -> Optional PSR-3 Logger
 *
 * Note: This middleware should be added last. It will not handle any exceptions/errors
 * for middleware added after it.
 */
$errorMiddleware = $app->addErrorMiddleware(true, true, true);

// Define app routes
$app->get('/hello/{name}', function (Request $request, Response $response, $args) {
    $name = $args['name'];
    $response->getBody()->write("Hello, $name");
    return $response;
});

// Run app
$app->run();
图 1:示例 Slim 应用程序

请求和响应

当你构建一个 Slim 应用程序时,你通常会直接使用 Request 和 Response 对象。这些对象表示 Web 服务器接收到的实际 HTTP 请求以及返回给客户端的最终 HTTP 响应。

每个 Slim 应用程序路由都被赋予当前的 Request 和 Response 对象作为其回调例程的参数。这些对象实现了流行的PSR-7接口。Slim 应用程序路由可以根据需要检查或操作这些对象。最终,每个 Slim 应用路由 必须返回一个 PSR-7 响应对象。

自带组件

Slim 也被设计为可以与其他 PHP 组件一起使用。您可以注册额外的第一方组件,例如Slim-CsrfSlim-HttpCacheSlim-Flash,它们基于 Slim 的默认功能构建。集成Packagist上的第三方组件也很容易

如何阅读本文档

如果您是 Slim 的新手,我建议您从头到尾阅读本文档。如果您已经熟悉 Slim,则可以直接跳到相应的部分。

本文档首先解释 Slim 的概念和体系结构,然后再深入探讨请求和响应处理、路由和错误处理等特定主题。

文档许可证

本网站和文档根据Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License获得许可。
知识共享许可