适用于 Slim v3 微框架的 PHPFastCGI 适配器
Requires
- php: >=5.5.0
- phpfastcgi/fastcgi-daemon: ^0.7
- slim/slim: ^3.1
Requires (Dev)
- satooshi/php-coveralls: dev-master
This package is auto-updated.
Last update: 2024-09-19 14:01:03 UTC
README
这是一个 PHP 包,允许 Slim v3 应用程序通过将它们的请求-响应结构暴露给 FastCGI 守护程序来减少开销。
访问项目网站 http://phpfastcgi.github.io/。
简介
使用此包,Slim v3 应用程序可以在 HTTP 请求之间保持活跃,同时在启用 FastCGI 的 Web 服务器的保护下运行。
当前状态
此项目目前处于开发初期,尚不稳定。重要的是,此库目前不支持上传文件。
目前存在两个针对此适配器的已知问题。
欢迎贡献和建议。
安装
composer require "phpfastcgi/slim-adapter:^0.6"
用法
<?php // command.php // Include the composer autoloader require_once dirname(__FILE__) . '/../vendor/autoload.php'; use PHPFastCGI\FastCGIDaemon\ApplicationFactory; use PHPFastCGI\Adapter\Slim\AppWrapper; use Slim\App; // Create your Slim app $app = new App(); $app->get('/hello/{name}', function ($request, $response, $args) { $response->write('Hello, ' . $args['name']); return $response; }); // Create the kernel for the FastCGIDaemon library (from the Slim app) $kernel = new AppWrapper($app); // Create the symfony console application $consoleApplication = (new ApplicationFactory)->createApplication($kernel); // Run the symfony console application $consoleApplication->run();
如果您希望将您的 FastCGI 应用程序配置为与 Apache Web 服务器一起工作,您可以使用 Apache FastCGI 模块来管理您的应用程序。
这可以通过创建一个启动您应用程序的 FastCGI 脚本并将 FastCgiServer 指令插入到您的虚拟主机配置中来实现。
#!/bin/bash
php /path/to/command.php run
FastCgiServer /path/to/web/root/script.fcgi
默认情况下,守护程序将在 FCGI_LISTENSOCK_FILENO 上监听,但也可以配置为监听 TCP 地址。例如
php /path/to/command.php run --port=5000 --host=localhost
如果您使用的是 NGINX 等类型的 Web 服务器,您将需要使用进程管理器来监控和运行您的应用程序。
已知问题
此适配器存在两个已知问题,将在后续版本中修复。
-
一些 Slim 应用程序使用 Slim PSR-7 请求对象上的额外辅助方法。目前,PHPFastCGI 使用由 Diactoros 创建的请求对象,这些对象没有这些辅助方法。预计不久的将来将创建一些中间件,将 Diactoros 请求切换到 Slim 请求。
-
Slim 仍然将请求和响应对象保留在容器中。这些容器条目对于在 PHPFastCGI 下运行的 Slim 应用程序将不再有效。请求和响应应始终作为方法参数接收。