quagga / slim
Slim 是一个 PHP 微型框架,帮助您快速编写简单而强大的 Web 应用程序和 API
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- nikic/fast-route: ^1.3
- psr/container: ^1.0 || ^2.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.1 || ^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- psr/log: ^1.1 || ^2.0 || ^3.0
Requires (Dev)
- ext-simplexml: *
- adriansuter/php-autoload-override: ^1.4
- guzzlehttp/psr7: ^2.6
- httpsoft/http-message: ^1.1
- httpsoft/http-server-request: ^1.1
- laminas/laminas-diactoros: ^2.17 || ^3
- nyholm/psr7: ^1.8
- nyholm/psr7-server: ^1.1
- phpspec/prophecy: ^1.19
- phpspec/prophecy-phpunit: ^2.1
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6
- slim/http: ^1.3
- slim/psr7: ^1.6
- squizlabs/php_codesniffer: ^3.9
Suggests
- ext-simplexml: Needed to support XML format in BodyParsingMiddleware
- ext-xml: Needed to support XML format in BodyParsingMiddleware
- php-di/php-di: PHP-DI is the recommended container library to be used with Slim
- slim/psr7: Slim PSR-7 implementation. See https://slim.php.ac.cn/docs/v4/start/installation.html for more information.
README
Slim 是一个 PHP 微型框架,帮助您快速编写简单而强大的 Web 应用程序和 API。
安装
建议您使用 Composer 来安装 Slim。
$ composer require slim/slim
这将安装 Slim 和所有必要的依赖项。Slim 需要 PHP 7.4 或更高版本。
选择 PSR-7 实现 & 服务器请求创建者
在您可以使用 Slim 之前,您需要选择一个最适合您应用程序的 PSR-7 实现。以下是一些值得注意的:
- Slim-Psr7 - 这是 Slim 框架的 PSR-7 实现
- httpsoft/http-message & httpsoft/http-server-request - 这是速度最快、最严格和最轻量级的实现
- Nyholm/psr7 & Nyholm/psr7-server - 性能几乎与 HttpSoft 实现相同
- Guzzle/psr7 - 这是 Guzzle 客户端使用的实现,具有额外的流和文件处理功能
- laminas-diactoros - 这是 Laminas (Zend) 的 PSR-7 实现
Slim-Http 装饰器
Slim-Http 是一组用于任何 PSR-7 实现的装饰器,我们建议与 Slim 框架一起使用。要安装 Slim-Http 库,只需运行以下命令
composer require slim/http
ServerRequest
和 Response
对象装饰器将由内部工厂自动检测并应用。如果您已安装 Slim-Http 并希望关闭自动对象装饰,则可以使用以下语句
<?php use Slim\Factory\AppFactory; use Slim\Factory\ServerRequestCreatorFactory; AppFactory::setSlimHttpDecoratorsAutomaticDetection(false); ServerRequestCreatorFactory::setSlimHttpDecoratorsAutomaticDetection(false); $app = AppFactory::create(); // ...
Hello World 使用 AppFactory 和 PSR-7 自动检测
要使自动检测正常工作并允许您使用 AppFactory::create()
和 App::run()
而无需手动创建 ServerRequest
,您需要安装以下实现之一
- Slim-Psr7 - 使用
composer require slim/psr7
安装 - httpsoft/http-message & httpsoft/http-server-request - 使用:
composer require httpsoft/http-message httpsoft/http-server-request
安装 - Nyholm/psr7 & Nyholm/psr7-server - 使用
composer require nyholm/psr7 nyholm/psr7-server
安装 - Guzzle/psr7 - 使用
composer require guzzlehttp/psr7
安装 - laminas-diactoros - 使用
composer require laminas/laminas-diactoros
安装
然后创建文件 public/index.php。
<?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 $app = AppFactory::create(); // Add error middleware $app->addErrorMiddleware(true, true, true); // Add routes $app->get('/', function (Request $request, Response $response) { $response->getBody()->write('<a href="/hello/world">Try /hello/world</a>'); return $response; }); $app->get('/hello/{name}', function (Request $request, Response $response, $args) { $name = $args['name']; $response->getBody()->write("Hello, $name"); return $response; }); $app->run();
您可以使用内置的PHP服务器快速测试。
$ php -S localhost:8000 -t public
现在访问 http://localhost:8000/hello/world 将显示 "Hello, world"。
有关如何配置您的Web服务器的更多信息,请参阅文档。
测试
要执行测试套件,您需要安装所有开发依赖项。
$ git clone https://github.com/slimphp/Slim
$ composer install
$ composer test
贡献
有关详细信息,请参阅贡献指南。
了解更多
在以下链接中了解更多信息
安全
如果您发现与安全相关的问题,请通过电子邮件 security@slimframework.com 而不是使用问题跟踪器。
企业版
作为Tidelift订阅的一部分提供。
Slim
的维护者以及数千个其他包的维护者正在与Tidelift合作,为您的应用程序构建所使用的开源依赖项提供商业支持和维护。节省时间,降低风险,并提高代码质量,同时支付您使用的确切依赖项的维护者。 了解更多。
贡献者
代码贡献者
本项目得以存在,离不开所有贡献者。 贡献。
财务贡献者
成为财务贡献者,帮助我们维持社区。 贡献
个人
组织
使用您的组织支持此项目。您的标志将在这里显示,并提供到您网站的链接。 贡献
许可
Slim 框架采用MIT许可证。有关更多信息,请参阅许可文件。