适用于 Slim v3 微框架的 PHPFastCGI 适配器

v0.6.0 2016-01-09 11:18 UTC

This package is auto-updated.

Last update: 2024-09-19 14:01:03 UTC


README

Latest Stable Version Build Status Coverage Status Scrutinizer Code Quality Total Downloads

这是一个 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 服务器,您将需要使用进程管理器来监控和运行您的应用程序。

已知问题

此适配器存在两个已知问题,将在后续版本中修复。

  1. 一些 Slim 应用程序使用 Slim PSR-7 请求对象上的额外辅助方法。目前,PHPFastCGI 使用由 Diactoros 创建的请求对象,这些对象没有这些辅助方法。预计不久的将来将创建一些中间件,将 Diactoros 请求切换到 Slim 请求。

  2. Slim 仍然将请求和响应对象保留在容器中。这些容器条目对于在 PHPFastCGI 下运行的 Slim 应用程序将不再有效。请求和响应应始终作为方法参数接收。