SlimPHP - 有没有办法将 CorsSlim 与 Slim v3 一起使用?

SlimPHP - is there way to use CorsSlim with Slim v3?

我一直坚持制作 REST API,前端使用 AngularJS,后端使用 SlimPHP。当我仅使用 $http.get 和 $http.post 时一切正常,但不适用于 $http.delete 和 $http.put。 我设置了 headers:

$app = new \Slim\App();

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Content-Type');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');

但这并没有帮助,所以我发现有 CorsSlim 这样的东西,但是当我写这篇文章时:

require __DIR__ . '/vendor/autoload.php';

$app = new \Slim\App();

$app->add(new \CorsSlim\CorsSlim());

即使通过 composer 安装了 slim 和 corsslim,我还是立即遇到了以下问题。

致命错误:在第 5

行的 /wwwpath/vendor/palanik/corsslim/CorsSlim.php 中找不到 Class 'Slim\Middleware'

在他们的 CorsSlim 上 GitHub https://github.com/palanik/CorsSlim 我发现他们将 slim 的版本限制为 <3.0,所以它与我的 Slim 不兼容。

所以,问题是:是否有任何方法可以通过 Angular 和 Slim v3 的 get/post/put/delete 请求来制作这样的 REST API,或者我必须重新制作整个后端部分到 v2 使其工作? 提前致谢。

一定要使用CorsSlimslim3 branch:

{
  "require": {
    "palanik/corsslim": "dev-slim3"
  }
}

那么你可以简单地使用它:

<?php
require ('./vendor/autoload.php');

$app = new \Slim\Slim();

$app->add(new \CorsSlim\CorsSlim());
?>

但不要忘记添加选项:

$corsOptions = array(
  "origin" => "*",
  "exposeHeaders" => array("Content-Type", "X-Requested-With", "X-authentication", "X-client"),
  "allowMethods" => array('GET', 'POST', 'PUT', 'DELETE', 'OPTIONS')
);

$cors = new \CorsSlim\CorsSlim($corsOptions);

$app->add($cors);