PHP CORS, PHP 跨域中间件 1.2.0 发布,新增 Slim 框架支持

file

前导

如果你不了解 medz/cors 能做什么,请查看下面的文章:

在之前的文章中,分别讲述了 Laravel 和 Lumen 的支持和使用,本文将描述在 Slim 框架中如何使用。

简介

什么是 medz/cors?这个中间件的全名叫做 「PHP CORS Middleware」,专门用来处理基于 PHP 程序的 CORS 信息问题,主要针对在 PHP 程序中设置跨域信息的支持。

安装

得益于 Composer,现在我们安装变得很简单,请在你的 Slim 项目中执行:

composer require medz/cors

配置

请参考《配置参考》,你可以使用任何你喜欢的方式在 Slim 中进行配置的编写。内容如下:

$settings = [
    'allow-credentiails' => env('CORS_ALLOW_CREDENTIAILS', false), // set "Access-Control-Allow-Credentials" ? string "false" or "true".
    'allow-headers'      => ['*'], // ex: Content-Type, Accept, X-Requested-With
    'expose-headers'     => [],
    'origins'            => ['*'], // ex: http://localhost
    'methods'            => ['*'], // ex: GET, POST, PUT, PATCH, DELETE
    'max-age'            => env('CORS_ACCESS_CONTROL_MAX_AGE', 0),
];

使用

在 Slim 中只需要用到的类名叫做 Medz\Cors\Slim\Cors,下面是一份简单的演示:

$app = new Slim\App();
$app->add(new Medz\Cors\Slim\Cors);

关于 Slim 中间件的使用,请看官方文档:https://www.slimframework.com/docs/v3/conc...

Medz\Cors\Slim\Cors 的构造函数只有两个参数:

  • payload: 可以是 Medz\Cors\CorsInterface 接口实例,也可以是「数组」的配置,或者是 null
  • append: 如果 $appendtrue, 则表示所有请求都会附加 CORS 信息

如果你有定制需求,你可以实现 Medz\Cors\CorsInterface 的接口,然后传递给 CORS 中间件即可

更多

GitHub: https://github.com/medz/cors ,新轮子,请打一个?Star 吧!

支持情况

目前,medz/cors 已经支持多种框架,包括原生开发或者符合 PSR-7 的标准:

  • ?Array, Coding in Native PHP
  • ?Using PSR-7
  • Symfony Support
  • Laravel Support
  • Lumen Support
  • Slim Framework
Seven 的代码太渣,欢迎关注我的新拓展包 medz/cors 解决 PHP 项目程序设置跨域需求。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!