此文档适用于 Slim 4。正在寻找 Slim 3 文档?。
Slim 是一个 PHP 微框架,可帮助您快速编写简单而强大的 Web 应用程序和 API。Slim 的核心是一个分发器,它接收 HTTP 请求,调用适当的回调例程并返回 HTTP 响应。就是这样。
Slim 是创建消耗、重新利用或发布数据的 API 的理想工具。Slim 也是进行快速原型设计的理想工具。您甚至可以使用用户界面来构建全功能的 Web 应用程序。更重要的是,Slim 超级快并且代码极少。
Slim 的核心是一个分发器,它接收 HTTP 请求,调用适当的回调例程并返回 HTTP 响应。就是这样。
您并不总是需要像 Symfony 或 Laravel 这样的通用解决方案。这些工具肯定很棒。但它们常常大材小用。相反,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();
当你构建 Slim 应用程序时,你通常会直接使用 Request 和 Response 对象。这些对象表示由 Web 服务器接收的实际 HTTP 请求和最终返回给客户端的 HTTP 响应。
每个 Slim 应用路由都被指定了当前 Request 和 Response 对象作为其回调例程的参数。这些对象实现了流行的 PSR-7 接口。Slim 应用路由可以根据需要检查或操作这些对象。最终,每个 Slim 应用路由必须返回一个 PSR-7 Response 对象。
Slim 也被设计成与其他 PHP 组件良好配合。你可以注册更多的一方组件,如 Slim-Csrf、Slim-HttpCache 或 Slim-Flash,以基于 Slim 的默认功能进行构建。集成 Packagist 上找到的第三方组件也很容易。
如果你不熟悉 Slim,建议你从头到尾通读此文档。如果你已经熟悉 Slim,你可以直接跳转到相应的部分。
此文档首先解释 Slim 的概念和架构,然后再深入探讨特定的主题,如请求和响应处理、路由和错误处理。
本网站和文档获得以下许可:知识共享署名 - 非商业性使用 - 禁止演绎 4.0 国际许可协议。