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 フォーラム に投稿してください。