ホームページ > 記事 > PHPフレームワーク > yii フレームワークを使用してハローページを作成する方法
この章では、アプリケーションに新しい「Hello」ページを作成する方法について説明します。この目標を達成するには、アクションとビューが作成されます:
アプリケーションはページ リクエストをアクションにディスパッチします (推奨学習: yii チュートリアル)
このアクションにより、エンド ユーザーに「Hello」を示すビューがレンダリングされます。
この章を通して、次の 3 つのことを学習します。
リクエストに応答するアクション、
応答コンテンツを構築するためのビューの作成方法、
およびアプリケーションがリクエストをアクションにディスパッチする方法。
アクションの作成
「Hello」の場合、リクエストからメッセージ パラメーターを受け取り、それをエンド ユーザーに表示する Say アクションを作成する必要があります。リクエストにメッセージ パラメータが指定されていない場合、操作ではデフォルトのパラメータ「Hello」が表示されます。
信息: 操作是最终用户可以直接访问并执行的对象。 操作被组织在控制器中。 一个操作的执行结果就是最终用户收到的响应内容。
操作はコントローラーで宣言する必要があります。簡単にするために、SiteController コントローラーで直接 Say アクションを宣言できます。このコントローラーは、controllers/SiteController.php ファイルによって定義されます。以下はアクションの宣言です。
<?php namespace app\controllers; use yii\web\Controller; class SiteController extends Controller { // ...现存的代码... public function actionSay($message = 'Hello') { return $this->render('say', ['message' => $message]); } }
上記の SiteController コードでは、say アクションは actionSay メソッドとして定義されています。 Yii は、通常のメソッドと操作を区別するためにアクション接頭辞を使用します。アクションのプレフィックスに続く名前は、アクションの ID にマッピングされます。
オペレーションに名前を付ける場合は、Yii がオペレーション ID をどのように処理するかを理解する必要があります。オペレーション ID は常に小文字で扱われ、オペレーション ID が複数の単語で構成される場合、単語はハイフンで接続されます (create-comment など)。
操作 ID がメソッド名にマップされる場合、ハイフンが削除され、各単語の最初の文字が大文字になり、アクションのプレフィックスが追加されます。例: アクション ID create-comment は、メソッド名 actionCreateComment と同等です。
上記のコードの操作メソッドは、パラメーター $message を受け入れます。そのデフォルト値は「Hello」です (PHP で他の関数やメソッドのデフォルト値を設定するのと同じように)。アプリケーションがリクエストを受信し、say オペレーションがリクエストに応答すると判断すると、アプリケーションはリクエスト パラメータから対応する値を見つけて、それを渡します。
つまり、リクエストにメッセージ パラメーターが含まれており、その値が「Goodbye」である場合、アクション メソッドの $message 変数にも「Goodbye」が設定されます。
操作メソッドでは、render() を使用して、say という名前のビュー ファイルをレンダリングします。 message パラメーターもビューに渡されるため、内部で使用できます。アクションメソッドはレンダリング結果を返します。結果はアプリケーションによって受信され、エンド ユーザーのブラウザに (ページ全体の HTML の一部として) 表示されます。
ビューの作成
ビューは、応答コンテンツを生成するために使用するスクリプトです。 「こんにちは」と言うには、アクション メソッドから渡されたメッセージ パラメーターを表示する Say ビューを作成する必要があります。
<?php use yii\helpers\Html; ?> <?= Html::encode($message) ?>
say ビューは views/site/say.php ファイルとして保存する必要があります。 render() メソッドが操作で呼び出されると、views/controller ID/view name.php パスに従って PHP ファイルがロードされます。
上記のコードでは、メッセージ パラメーターは出力前に HTML エンコードされたメソッドによって処理されることに注意してください。これが必要なのは、パラメータがエンド ユーザーから提供された場合、パラメータに隠されている可能性のある悪意のある JavaScript コードがクロスサイト スクリプティング (XSS) 攻撃につながる可能性があるためです。
もちろん、say ビューにはさらに多くのコンテンツを追加することになるでしょう。コンテンツは、HTML タグ、プレーン テキスト、または PHP ステートメントで構成することができます。実際、say ビューは render() によって実行される PHP スクリプトです。ビュースクリプトが出力した内容が応答結果としてアプリケーションに返されます。アプリケーションは結果をエンド ユーザーに出力します。
#トライアル実行
アクションとビューを作成した後、次の URL から新しいページにアクセスできます:http://hostname/index.php?r=site/say&message=Hello+Worldこの URL は、アプリケーション内の他のページと同じヘッダーとトレーラーを使用して、「Hello World」を含むページを出力します。 URL で message パラメーターを省略すると、ページには「Hello」のみが表示されることがわかります。これは、メッセージがパラメータとして actionSay() メソッドに渡され、省略された場合はデフォルトの「Hello」パラメータが代わりに使用されるためです。
信息: 新页面和其它页面使用同样的头部和尾部是因为 render() 方法会自动把 say 视图执行的结果嵌入称为布局的文件中, 本例中是 views/layouts/main.php。上記の URL のパラメータ r については、さらに説明が必要です。これは、特定の操作を指すアプリケーション レベル全体での独立した ID であるルートを表します。ルーティング形式はコントローラ ID/オペレーション ID です。アプリケーションがリクエストを受け入れると、パラメータをチェックし、コントローラ ID を使用してリクエストの処理にどのコントローラを使用するかを決定します。対応するコントローラーはアクション ID を使用して、特定の作業を実行するためにどのアクション メソッドを使用するかを決定します。 上記の例では、ルート site/say が SiteController コントローラーとその中の Say オペレーションに解析されます。したがって、リクエストを処理するために SiteController::actionSay() メソッドが呼び出されます。
rree
以上がyii フレームワークを使用してハローページを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。