Slim Framework即将发生的变更

终于完成日常工作后,我重新开始了Slim Framework的工作。以下是你当前在稳定版本中看到的数项新功能和变更 - 目前可在develop分支中获得,以帮助你开始更新应用。

环境

  • 包含HTTP_前缀的HTTP标头现在仍然在环境对象中包含HTTP_前缀。

请求

  • 在实例化时,会从环境对象中解析HTTP标头并在请求的公有headers属性中进行提供。
  • 在实例化时,会从环境对象中解析Cookie,并在请求的公有cookies属性中进行提供。
  • 请求的公有headerscookies属性使用新的\Slim\Helper\Set接口。

如果你使用自定义中间件来更新请求对象的标头或Cookie,则现在必须在请求对象的cookiesheaders属性,而不是在环境对象中进行操作。

请求对象的以下方法将在下个主要要点版本中标记为不赞成使用

  • cookies()
  • headers()

响应

  • 现已在响应的公有headers属性中设置HTTP标头。
  • 现已在响应的公有cookies属性中设置HTTP Cookie。
  • 响应的公有headerscookies属性使用\Slim\Helper\Set接口。
  • 使用setStatus(int $status)getStatus()方法,而不是status()
  • 直接使用公有headers属性,而不是headers()header()
  • 使用getBody()setBody()方法,而不是body()
  • 使用getLength()方法,而不是length()
  • 迭代headerscookies属性,而不是响应对象本身。
  • 使用新的 \Slim\Helper\Set 接口,在 Slim 应用程序生命周期最后(在最终的中间件运行后,立即在将 HTTP 响应返回给客户端之前)才将 Response 对象 Cookie 序列化为原始的 HTTP 标头。这允许自定义中间件使用更简单的 \Slim\Helper\Set 接口来处理 Response Cookie,而不必处理原始的 HTTP Set-Cookie 标头。

在下一个主要发行版中,将弃用以下 Response 对象方法和接口

  • headers()
  • header()
  • length()
  • body()
  • status()
  • \ArrayAccess
  • \Countable
  • \IteratorAggregate

Set

下一个版本的稳定版将引入 \Slim\Helper\Set 接口。该接口将用于 Slim 应用程序中的许多集合:Cookie、标头等。该接口将有助于统一和简化 Slim 的许多方法和接口。\Slim\Helper\Set 接口

__construct(array $items);
set(string $key, mixed $value);
get(string $key, mixed $defaultValue);
add(array $items);
all();
keys();
has(string $key);
remove(string $key);

该接口实现了 \ArrayAccess、\Countable 和 \IteratorAggregate。

较旧的方法

上面显示的所有将被弃用的方法在下一个主要发行版之前都将继续工作。

有疑问?

如果您有任何疑问,请在 @slimphp 上给我发推文或在 Slim Framework 论坛 上发表问题。