ホームページ > バックエンド開発 > PHPチュートリアル > CodeIgniter 4 のリクエストと応答 codeigniter thinkphp codeigniter 3.0 codeigniter cms

CodeIgniter 4 のリクエストと応答 codeigniter thinkphp codeigniter 3.0 codeigniter cms

WBOY
リリース: 2016-07-29 08:54:41
オリジナル
1043 人が閲覧しました

data-id="1190000004868315">

CodeIgniter 4 では、入力と出力の処理方法が大幅に変更されました。最新の V3 バージョンを含む以前のバージョンでは、入力と出力は、関連する関数を含む 2 つのクラスを使用して処理されました。この処理方法には高度な技術はありませんが、簡単かつ直接的に機能を実現できます。 V4 では、HTTP レイヤーをよりモジュール化して、HTTP リクエストとレスポンスの両方を処理する新しいクラス構造を構築します。

概要

Web アプリケーションを開発する場合 (CLI プログラムとは異なり)、考慮する必要があるのは 2 つのクラスだけです: IncomingRequestResponse

IncomingRequest クラス

IncomingRequest クラスには、HTTP リクエストと、次のようなリクエストに付随するデータが含まれます。

R ファイル
  • によってアップロードされた、現在リクエストされている URL オブジェクト
  • ファイル。また、次のような一般的なリクエスト情報も含まれます。
  • クライアントの IP アドレス
  • Ajax リクエストですか?
  • クラス名 IncomingRequest について知りたい場合は、HTTPS ですか? それとも IncomingRequest を単に Request と呼ぶことができますか?答えは「いいえ」です。GET や POST などの変数を含む、より一般的な Request クラスがすでに存在しますが、このクラスには詳細な HTTP リクエスト情報が含まれていないからです。通常、リクエストは 2 つのことだけを行います。1 つは、ブラウザ クライアントがサーバーにリクエストを送信する (受信接続)、または現在のサーバーが外部サーバーにリクエストを送信する (送信接続) ことです。
Responseクラス

Responseクラスは、プログラムの実行結果をクライアントに返すために使用されます。 HTTP 応答ヘッダーを設定したり、コンテンツをクライアントに直接送信したりできます。 Response クラスは、次のような便利なメソッドをいくつか提供します:
  • 適切なキャッシュなしヘッダー情報を設定する
  • HTTP キャッシュ ヘッダー情報を処理する
  • ページをリダイレクトする
  • 簡単な例
  • 上記の内容は非常に専門的に見えるかもしれませんが、実際は非常に簡単です。これらのクラスのインスタンスはプロパティとして各コントローラーに配置されているため、面倒な場合はこれらのプロパティを直接使用する必要はありません。 Response クラスはコントローラーの出力をキャプチャし、それを応答の本文として自動的に設定します。単純な Hello World は次のようになります:

<code>class Home extends \CodeIgniter\Controller
{
    public function index()
    {
        echo "Hello World!";
    }
}</code>
ログイン後にコピー

簡単です。

このフレームワークにより、必要に応じて応答を正確に制御できるようになります。複雑な HTTP キャッシュ戦略を作成し、IncomingRequest クラスを使用して、コンテンツ ネゴシエーションを通じて応答コンテンツをカスタマイズできます。

以下はもう少し複雑な例ですが、コードは理解しやすく、処理も簡単であることがわかります。

<code>class Home extends \CodeIgniter\Controller
{
    public function __construct(...$params)
    {
        parent::__construct(...$params);

        // This controller is only accessible via HTTPS
        if (! $this->request->isSecure())
        {
            // Redirect the user to this page via HTTPS, and set the Strict-Transport-Security
            // header so the browser will automatically convert all links to this page to HTTPS
            // for the next year.
            force_https();
        }
    }

    public function index()
    {
        $data = [
            ...
        ];

        // Set some HTTP cache rules for this page.
        $this->response->setCache([
            'max-age' => 300,
            's-max-age' => 900,
            'etag' => 'foo'
        ]);

        // Return JSON
        $this->response->setContentType('application/json')
                       ->setOutput(json_encode($data));
    }
}</code>
ログイン後にコピー

この例では、主に 3 つのことを行います。まず、現在の URL を HTTPS URL にリダイレクトし、Strict-Transport-Security 応答ヘッダーを設定することによって (この方法は多くの主流ブラウザでサポートされており、ブラウザはリクエストを送信する前に HTTP リクエストを HTTPS リクエストに自動的に変換します)このページには HTTPS 経由でアクセスできるようにし、ブラウザがキャッシュを正しく処理できるようにするための HTTP キャッシュ ルールを設定します。これにより、HTTP リクエストの数が減り、サーバーの負荷が軽減され、最終的にパフォーマンスが向上します。 JSON データをユーザーに出力し、コンテンツ タイプが正しいことを確認します。

この記事が、皆さんが CodeIgniter の将来について大まかに理解し、変化は怖くないということを理解してもらうのに役立つことを願っています。 :) 将来的には、比較的安定したアーキテクチャが形成されるまでフレームワークの詳細が最終決定され、これらの内容について説明する記事がさらに書かれる予定です。

以上、CodeIgniter 4 のリクエストとレスポンスを、codeigniter の内容も含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート