2.4 「Hello World」を出力する

2.4 「Hello World」を出力する

2.4 「Hello World」を出力する

まず、新しいアプリケーションで「Hello World」プログラムを記述して、フレームワークを試してみましょう。 Yii の「Hello World」プログラムは、ブラウザに情報を送信するシンプルな Web プログラムです。

典型的な Yii Web アプリケーション実行プロセスは、ユーザーがブラウザを通じてリクエストを入力したときに開始されます。 Yii アプリケーションは、まずリクエスト情報を解析し、対応するコントローラを探し、次にコントローラ内のアクション メソッドを呼び出します。アクション メソッドでは、特定のビューをレンダリングし、レンダリングされたコンテンツをユーザーに返すことができます。データ処理が必要な場合、コントローラーはモデルを呼び出して、作成、読み取り、更新、削除 (CRUD) などのデータベース操作を処理できます。

この章の「Hello World」の例では、コントローラーとビューのみが必要であり、データは処理しないため、モデルは必要ありません。次に、コントローラーを作成しましょう。

PHP ファイル名 MessageController.php で新しいコントローラーを作成し、コントローラー ディレクトリ protected/controllers に配置します。新しく作成された MessageController クラスは、protected/components/Controller.php にあるアプリケーションの基本 Controller クラスを継承します。 MessageController クラスはフレームワークの基本クラス Ccontroller を継承するため、Ccontroller クラスのすべてのデフォルトの動作を継承します。 MessageController クラスに actionOutput() アクション メソッドを作成します。次のコードは、MessageController クラスの内容です。

  1. <? php  
  2. MessageControllerクラスはControllerを拡張します
  3. {
  4. パブリック関数actionOutput()
  5. {
  6. $this- >レンダリング('helloWorld');
  7. }
  8. }

ビュー ファイルはコントローラーに関連付けられており、デフォルトでは protected/views/message に保存されます。 protected/views/message/helloWorld.php を編集し、次のコードに変更します。

  1. < h1 >こんにちは、世界! </ h1 >  

コードを保存し、http://hostname/dscms/index.php?r=message/output にアクセスします。このページを図2-12に示します。

図 2-13 に示すように、このアプリケーションを実行するときに Yii フレームワークがどのように分析するかを確認しましょう。

1. ユーザーは http://hostname/index.php?r=message/output へのアクセス要求を送信し、Web サーバーはエントリ スクリプト index.php を実行してこの要求を処理します。

2. エントリ スクリプトはアプリケーション インスタンス オブジェクトを作成し、それを実行します。

3. アプリケーション インスタンス オブジェクトはこの URL を分析します。 controllerID は message であり、これは Yii に、protected/controllers/MessageController.php にある MessageController.php ファイルを要求するように指示します。 Yii は、actionID が出力を指定していることも検出し、MessageController クラスの actionOutput() メソッドを呼び出します。

4. actionOutput() メソッドは、protected/views/message/helloworld.php にある helloworld.php ビュー ファイルをレンダリングします。

5. アクション メソッドはビューのレンダリングを完了し、ブラウザーに返します。

気に入った友達はWeChatアカウントを追加できます:

51CTO 読書チャンネル QR コード


51CTO 読書チャンネル アクティビティ ディスカッション グループ: 365934973

<<:  2.1.2 利点

>>:  分散型のマルチアクティブ データ センターは、DNS ドメイン名解決と負荷分散をどのように実装するのでしょうか?

推薦する

QingCloudはCITIC NetworkおよびIntone Technologyと戦略的提携を結び、新たなインフラの波に乗り出す

QingCloud(qingcloud.com)は最近、基幹通信事業者であるCITIC Networ...

マルチクラウド管理の課題を克服するにはどうすればよいでしょうか?

厳しい市場環境の中で、パンデミックとビジネスダイナミクスの劇的な変化により市場はより複雑化し、企業は...

ガートナー: 2019 年のパブリック クラウド サービスの 6 つのトレンド

2017 年から 2018 年にかけて、クラウド サービス市場は大きな変化を遂げました。組織は、クラ...

Androidに関するよくある誤解5つ

世界最大のオペレーティング システムである Android は、ゼロから小規模から大規模へと、素晴ら...

Windows Server 1709: DevOps 向けのコンテナーに重点を置く

[51CTO.com クイック翻訳] 今年初めに発表された Windows Server の最新の半...

百度CEOロビン・リー氏:収益があるからといってビジネスモデルがあるわけではない

百度CEOロビン・リー北京ニュース(記者ヤン・ミャオ)百度CEOのロビン・リー氏が百度アライアンスサ...

簡単な説明: SEO 記事に内部リンクが必要な理由

最適化のためには、内部ページには内部リンクは必要なく、特に記事コンテンツにはアンカー テキスト リン...

検索エンジンがウェブサイトを優遇する3つの要因について話す

検索エンジンがあなたのウェブサイトに興味を示さなかったり、スナップショットを何日も更新しなかったりす...

pqhosting: 10Gbps 帯域幅、月額 4.77 ユーロ、1G RAM/1 コア/25g NVMe を備えた定額オランダ VPS

pq.hosting はオランダの VPS をアップグレードしました。サーバーは Tier III ...

クラウド変更管理戦略を適応するための 3 つのルール

変更に関しては、変更管理戦略を立てることでリスクを最小限に抑えることができます。クラウドの変更管理戦...

618年にブランドは激しく戦っている

今年も夏が到来し、618ショッピングフェスティバルも予定通り開催され、気温の上昇とともにショッピング...

簡単な議論: Baidu 検索エンジンに何が起こったのか?

ご存知のとおり、Baiduプラットフォームは最近、いくつかのウェブサイトに洗礼を施しており、私のウェ...

24 クーポンが事業を停止し、利益相反の陰謀に巻き込まれる: 創業者と投資家が宮殿の陰謀を演じる

[国内の共同購入業界の現状から見ると、24quanがIPO段階を維持することは難しく、普通株は裁定機...