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。你应该配置你的网络服务器,以便它将所有适当的请求发送到一个“前端控制器”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 Response 对象。

使用自己的组件

Slim 也被设计成与其他 PHP 组件良好配合。你可以注册更多的一方组件,如 Slim-CsrfSlim-HttpCacheSlim-Flash,以基于 Slim 的默认功能进行构建。集成 Packagist 上找到的第三方组件也很容易。

如何阅读此文档

如果你不熟悉 Slim,建议你从头到尾通读此文档。如果你已经熟悉 Slim,你可以直接跳转到相应的部分。

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

文档许可

本网站和文档获得以下许可:知识共享署名 - 非商业性使用 - 禁止演绎 4.0 国际许可协议
Creative Commons License