Slim Framework の今後の変更点
日中の仕事がようやく落ち着いてきたので、Slim Framework の作業を再開しました。次の安定版リリースで導入されるいくつかの新機能と変更点を以下に示します。これらの変更点は、現在 develop ブランチで利用可能ですので、アプリケーションの更新を始めることができます。
環境
- HTTP_ プレフィックスを含む HTTP ヘッダーは、Environment オブジェクトで HTTP_ プレフィックスを保持するようになりました。
リクエスト
- インスタンス化時に Environment オブジェクトから HTTP ヘッダーが解析され、Request の public な headersプロパティで利用できるようになります。
- インスタンス化時に Environment オブジェクトから Cookie が解析され、Request の public な cookiesプロパティで利用できるようになります。
- Request の public な headersおよびcookiesプロパティは、新しい\Slim\Helper\Setインターフェースを使用します。
カスタムミドルウェアを使用して Request オブジェクトのヘッダーまたは Cookie を更新する場合は、Environment オブジェクトではなく、Request オブジェクトの cookies または headers プロパティで行う必要があります。
次の Request オブジェクトのメソッドは、次のメジャーポイントリリースで非推奨になります。
- cookies()
- headers()
レスポンス
- HTTP ヘッダーは、Response の public な headersプロパティに設定されるようになりました。
- HTTP Cookie は、Response の public な cookiesプロパティに設定されるようになりました。
- Response の public な headersおよびcookiesプロパティは、\Slim\Helper\Set インターフェースを使用します。
- status()の代わりに- setStatus(int $status)または- getStatus()メソッドを使用してください。
- headers()または- header()の代わりに、public な- headersプロパティを直接使用してください。
- body()の代わりに- getBody()または- setBody()メソッドを使用してください。
- length()の代わりに- getLength()メソッドを使用してください。
- Response オブジェクト自体ではなく、headersまたはcookiesプロパティを反復処理してください。
- 新しい \Slim\Helper\Set インターフェースにより、Response オブジェクトの Cookie は、Slim アプリケーションのライフサイクルの最後(最終ミドルウェアの実行後、HTTP レスポンスがクライアントに返される直前)まで、生の HTTP ヘッダーにシリアル化されません。これにより、カスタムミドルウェアは、よりシンプルな \Slim\Helper\Set インターフェースを使用して Response Cookie を操作でき、生の HTTP Set-Cookieヘッダーを操作する必要がなくなります。
次の Response オブジェクトのメソッドとインターフェースは、次のメジャーポイントリリースで非推奨になります。
- headers()
- header()
- length()
- body()
- status()
- \ArrayAccess
- \Countable
- \IteratorAggregate
\Slim\Helper\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 フォーラム に投稿してください。