krak / mw-codeigniter

Mw CodeIgniter 集成

v0.2.0 2016-12-05 08:32 UTC

This package is auto-updated.

Last update: 2024-09-18 17:37:47 UTC


README

您可以通过在 CI 框架内嵌入 Mw 应用来将 Mw Http 框架与 CI 集成。

这个集成想法来源于我之前管理的一个旧站,我们无法移除旧的 CI 框架,但我们需要添加新功能,而 Mw Http 框架可以解决这个问题。因此,这允许从旧系统到新系统的一个很好的桥梁。

安装

使用 composer 安装 krak/mw-codeigniter

使用方法

要在一个 CI 框架内嵌入的应用,您需要做一些事情。

  1. 创建一个名为 application/controllers/mw.php 的控制器来处理 Mw 路由
  2. 在控制器方法内创建您的 Mw 应用
<?php

use Krak\Mw\Http;

class Mw extends CI_Controller
{
    public function index() {
        $app = new Http\App();
        $app->with(Http\Package\std());
        $app->with(Http\Package\codeIgniter($this));

        $app->get('/a', function() {
            return '/a';
        });
        $app->get('/b', function() {
            return '/b';
        });
        $app->get('/exception', function() {
            throw new \InvalidArgumentException('Whoa!!!!');
        });

        $app->serve();
    }
}
  1. 将默认路由注册到您的 mw/index 操作。现在所有未定义的路由都将指向它。
<?php

$route['404_override'] = 'mw';

请确保在包中最后或至少在较晚的时候添加 CodeIgniter 包。

API

这些都是相对于 Krak\Mw\Http\Package 命名空间。

codeIgniter($ci, array $config = [])

返回一个配置好的 CodeIgniter\CodeIgniterPackage 实例。 $ci 必须是 Codeigniter 控制器的实例。 $config 是一个数组,允许以下配置选项

show_stack_trace
转发给 ciExceptionHandler

CodeIgniter\ciExceptionHandler($show_stack_trace = true)

一个异常处理器,它将使用 CI 的 show_error 全局函数来显示异常。 $show_stack_trace 决定是否显示异常的堆栈跟踪以及异常消息。

CodeIgniter\ciNotFoundHandler()

简单地使用 CI 框架中的 show_404 方法来显示一个页面未找到。

CodeIgniter\ciViewMarshalResponse($ci)

允许操作返回表示视图路径和要加载到视图中的数据的 [string, array] 的二元组。这内部使用 CI 框架中的 $this->load->view 方法。

CodeIgniter\CodeIgniterServiceProvider

服务提供商定义以下服务

codeigniter.server
这是一个在 CI 框架内部提供服务的 KrakMwHttpServer。
server
用 codeigniter.server 实例替换服务器参数。

必需参数

codeigniter.ci
CI 的一个实例。如果您使用 CodeIgniterPackage 接口,则此值将自动填充;但是,如果您单独使用服务提供商,则需要设置此值。