百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> 专注于处置 PHP 跨域的 CORS 中间件 1.4.0 版本更新
分享文章到:

专注于处置 PHP 跨域的 CORS 中间件 1.4.0 版本更新

发布时间:09/01 来源:未知 浏览: 关键词:
专心于处置 PHP 跨域的 CORS 中心件 1.4.0 版本更新,增加了 Swoft 框架支撑

在很早此前个人公布了一个 PHP CORS 中心件!最初的初衷是开发一个替换 barryvdh/laravel-cors 包的工具,这个包的缺陷在于保护不足,然后就是代码量巨大,支撑性也不多。当然也有优势,第一专心于 Laravel 框架,然后 Satr 较多使用者较多。当然大多数用来放到 Laravel 中够用。

优势

PHP CORS Middleware 代码量更少(中心代码仅四个文件,每个文件拆分很精短),在 Laravel 中支撑模式更多,第一就是常规的全站都附加跨域信息,然后是可选仅预检,路由模式和匹配模式。有了这几个模式支撑,你可以指定特定路由跨域,也可以分配给组路透跨域等。

引荐:《PHP教程》

除了上述对 Laravel 支撑外,还很好了支撑以下方式:

● PHP 原生数组,可以使用数组来停止跨域响应头信息的接收,开发者可以自在处置。

● 支撑 PSR-7 的恳求和响应

● 支撑 PSR-15 中心件

● 支撑 Laravel/Lumen 框架

● 支撑 Swoft 框架

● 支撑 Slim 框架

● 支撑 ThinkPHP 5 框架

缺陷

支撑了太多的框架,假如你仅在 Laravel 使用,代码包中还包括了其他框架的支撑代码,但是总量非常低,代码强迫症者大概受不了,余外的支撑代码只要在对应框架中才会生效和被加载。

本次版本更新内容

随着 PSR-15 的不乱,针对 PSR-15 中心件接口停止了重构。可以愈加利便的配置 CORS 信息

增添 Swoft 框架支撑见?

https://github.com/medz/cors/issues/6

本次更新内容的详细使用

PSR-15 中心件

先创立一个实例:

use Medz\Cors\PSR\CorsMiddleware;
// Settings.
$settings = [
    'allow-credentials'  => false,
    'allow-headers'      => ['*'],
    'expose-headers'     => [],
    'origins'            => ['*'],
    'methods'            => ['*'],
    'max-age'            => 0,
];
// $cors = new Medz\Cors\Cors($settings); // Create CORS instance.
// Create CORS middleware instance
$middleware = new CorsMiddleware($settings /* $cors */ /* , true */ /* 可否仅处置预检 */);
// TODO.

可以看出,新版本可以直接从中心件结构参数停止传递设定了,此前版本必需传递一个 Medz\Cors\Cors 实例,当然,新版本也可以直接传递实例。第二个参数可以停止配置可否仅处置预检恳求,默许是处置全部恳求。

Swoft 中心件

在配置文件 config/properties/app.php 中停止如下配置:

'components' => [
    'custom' => [
        'Medz\\Cors\\Swoft\\',
    ],
],
'cors' => [
    'onlyPreflight' => false, // 可否仅 OPTIONS 预检恳求才停止跨域信息附加
    'settings' => [
        /// ... 参照  README 中的 PSR-7
    ],
],

全局使用

翻开 app/config/beans/base.php 配置如下:

'serverDispatcher' => [
    'middlewares' => [
        \Medz\Cors\Swoft\CorsMiddleware::class,
    ],
],

通过注解使用

通过 @Middleware 和 @Middlewares, 可以很利便的配置中心件到当前的 Controller 和 Action 内。

● 当将此注解利用于 Controller 上,则作用域为整个 Controller

● 将此注解利用于 Action 上,则作用域仅为当前的 Action

use Swoft\Http\Server\Bean\Annotation\Controller;
use Swoft\Http\Message\Bean\Annotation\Middleware;
use Swoft\Http\Server\Bean\Annotation\RequestMapping;
use Medz\Cors\Swoft\CorsMiddleware;
/**
 * Setting Controller middleware.
 * 
 * @Controller("middleware")
 * @Middleware(CorsMiddleware::class)
 */
class CorsOneController
{
    //
}
/**
 * Setting Action middleware.
 */
class CorsTwoController
{
    /**
     * @RequestMapping()
     * @Middleware(CorsMiddleware::class)
     */
    public function corsAction(): array
    {
        return [
            'message' => 'The action using CORS.'
        ];
    }
}

其他

CORS 项目地址 https://github.com/medz/cors ,假如喜爱,欢迎 Star 欢迎 Issues 欢迎 PR。

Seven 的代码太渣,欢迎关注我的新拓展包 medz/cors 解决 PHP 项目程序设定跨域需求。

以上就是专心于处置 PHP 跨域的 CORS 中心件 1.4.0 版本更新的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有156人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板