opsbears/piccolo-web

此包已被废弃,不再维护。未建议替代包。

Piccolo 的 Web 组件

1.0-alpha1 2016-07-22 07:14 UTC

This package is not auto-updated.

Last update: 2020-10-16 21:39:21 UTC


README

Piccolo 的 Web 组件为基于 Web 的项目提供基本配置。它们负责从解析请求到符合 PSR-7 的形式,再到路由请求到控制器。

可选地,从控制器检索的数据也可以路由到模板引擎,这通常由一个独立的组件来完成。

安装

这些组件可以通过 composer 进行安装

composer require opsbears/piccolo-web

建议您安装以下额外组件,除非您想替换它们

  • opsbears/piccolo-web-processor-controller-view-templating 将控制器响应路由到模板以进行视图渲染。
  • opsbears/piccolo-web-io-standard 将标准 PHP IO 机制($_GET$_POST 等)处理成 PSR-7 请求。
  • opsbears/piccolo-web-http-guzzle 提供 PSR-7 兼容性
  • opsbears/piccolo-web-router-fastroute 用于路由。
  • opsbears/piccolo-templating-engine-twig 用于模板。

使用

为了使用 Web 包,您应将 WebModule 类包含到您的配置中

'modules' => [
    WebModule::class,
    //...
],

如果您想使用 Web 模块运行所需的标准模块,也可以包含这些模块

'modules' => [
    ControllerProcessorWebModule::class,
    GuzzleHTTPModule::class,
    StandardWebIOModule::class,
    FastRouteModule::class,
    TemplatingViewModule::class,
    TwigTemplatingModule::class,
    //...
],

然后您可以从 index.php 文件中实例化 WebApplication

$application = new WebApplication($dic, $config);
$application->execute();

在这个例子中,$dic 将是您的依赖注入容器(有关详细文档,请参阅 opsbears/piccolo 模块),而 $config 将是您的数组形式的配置。

您的 index.php 中的完整配置可能如下所示

use Piccolo\DependencyInjection\Auryn\AurynDependencyInjectionContainer;
use Piccolo\Web\WebApplication;

require_once (__DIR__ . '/../vendor/autoload.php');

$dic         = new AurynDependencyInjectionContainer();
$config      = require(__DIR__ . '/../config/config.php');

$application = new WebApplication($dic, $config);
$application->execute();

提示:如果使用 ControllerProcessorWebModule 模块,则该模块会自动加载 WebModule,因此您不需要显式加载 WebModule