PHP 開発フレームワーク Yii Framework チュートリアル (4) ハングマンの単語当てゲーム例
前の「Hello, World」の例と Yii Framework Web アプリケーションの基本の紹介で、シンプルだが比較的完全な Web アプリケーション - Hangman (単語当てゲーム) の紹介を始めることができます。このサンプルは Yii 開発キットに付属しています。出版されました。この例を通じて、Yii アプリケーション開発の基本的な手順を理解することができます
「ハングマン」といえば、1980 年代後半に高校の CPC464 コンピューターでプレイした「推理ゲーム」、「毎回」を思い出します。私の推測は間違っていました、私はゲームに負けました。小さな男が絞首台に近づきました。当時は DOS が登場したばかりでした :-)。
Web アプリケーションを開発するには、最初のステップは要件分析を実行することです。これはこのチュートリアルには含まれていませんが、完全を期すために、「推測ゲーム」のルールを以下に示します。
推測ゲーム (英語: Hangman、「吊るす」「人」) は 2 人用のゲームです。 1 人のプレーヤーが単語を考え、もう 1 人のプレーヤーがそのプレーヤーが考える単語の各文字を推測しようとします。
推測される単語は横線の列で表され、プレイヤーはその単語が何文字あるかを知ることができます。推測するプレイヤーが文字の 1 つを正しく推測した場合、他のプレイヤーはその文字が出現するすべての位置にその文字を書かなければなりません。推測した文字が単語の中に現れない場合、他のプレイヤーは首吊り人形のストロークの 1 つを描きます。ゲームは次の状況で終了します:
「単語 t が欲しいです。」 「はい、8 位と 11 位です。」
推測プレイヤーがすべての文字を推測したか、単語全体を推測しました
別のプレイヤーが完全な絵を描きました:
今日の例では、「吊られた男」は描かれていません。推測が正しければ「あなたの勝ち」と表示され、推測が間違っていれば「あなたの負け」と表示されます。 」。 したがって、4 つのページをデザインできます:
これら 4 つのページは、play、guess、win、lose という名前が付けられる 4 つのビューとして Yii フレームワークに対応します。各ページには「Hangman Game」のタイトルが表示されます。 Yii で 4 つのビューが共有するレイアウト テンプレートとなる「MasterPage」をデザインします。 Yii アプリケーションは MVC デザインパターンを採用しているため、4 つのビューに対してコントローラー -> ゲームコントローラーをデザインできます。
前のチュートリアルでは、Yii アプリケーションはデフォルトのディレクトリ構造を使用してアプリケーションのさまざまな部分を保存できると説明しました。デフォルトのプロジェクト ディレクトリに参加します。ただし、個人的には各ディレクトリを自分で作成したいので、上記の要件とインターフェイス設計に基づいて、プロジェクトのディレクトリ構造は次のように作成できます。
作成した GameController.php は protected/ に配置されます。コントローラのディレクトリ。
作成された 4 つのビュー、guess.php、lose.php、play.php、win.php は protected/views/game ディレクトリに配置されます。ディレクトリ名 game は GameController によって作成された共有レイアウトに対応します。
は protected/views/layout ディレクトリに配置されます。デフォルトのレイアウト名は main.php です
アプリケーション設定ファイルはデフォルトで protected/config に配置されます。設定ファイルはmain.php
アプリケーションのエントリスクリプトはindex.php
また、単語推測用のテキストファイルはword.txt
1です。まず、設定ファイルprotected/configを見てみましょう。 /main.php
return array( 'name'=>'Hangman Game', 'defaultController'=>'game', 'components'=>array( 'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( 'game/guess/'=>'game/guess',),), ),);
CWebApplication アプリケーションのすべての書き込み可能な属性は、構成ファイルを通じて定義できます。構成ファイルではアプリケーションの名前が「Hangman Game」として定義されており、デフォルトのコントローラー名が変更されていることがわかります。 Web アプリケーションのゲームへの接続を GameController に対応させるため、defaultController が再定義されていない場合、デフォルトのコントローラー名は SiteController となるため、View は protected/views/site ディレクトリに保存する必要があります。さらに、この Yii アプリケーションは urlManager コンポーネントを開きます。このコンポーネントの機能は主に、ユーザーがアクセスできる URL の形式 (ルーティング形式) を定義するために使用されます。
2. この設定ファイルを各 Yii アプリケーションのエントリ スクリプトのindex.php で使用できます。レイアウト ファイル protected/views/layout/main.php View によってデフォルトのレイアウト テンプレートとして使用される main.php アプリケーションは View によって使用されるレイアウトを変更できます。この例では、デフォルトのレイアウト名は main です。
レイアウトは基本的に HTML ファイルであり、ビューのプレースホルダーとして、つまり play.php などの特定のビューを表示するときに、play.php のコンテンツが $content を置き換えるために使用されます。これにより「MasterPage」と同様の機能を実現します。
4. ここではリストされていない 4 つのビューを 1 つずつ定義できます。これは基本的に HTML であり、CHtml は HTML コードの生成を支援する Yii フレームワークによってサポートされる補助クラスであることがわかります。 Hangman は比較的単純であるため、別個のモデルを使用せず、レンダー プッシュを通じてパラメーターを渡します。
ビューの名前を渡して CController::render() を呼び出す必要があります。このメソッドは、 protected/views/ControllerID ディレクトリで対応するビュー ファイルを検索します。
ビュー スクリプト内で、$this->propertyName Get を使用してビュー内でコントローラー インスタンスにアクセスできます。コントローラーの任意の属性。
次のプッシュ メソッドを使用してデータをビューに渡すこともできます:
$this->render('edit', array(
'var1'=>$value1,
' var2'=>$value2,
));
上記のメソッドでは、render() メソッドが配列の 2 番目のパラメーターを変数に抽出します。その結果、ビュー スクリプトで直接アクセスできるようになります。変数 $var1 と $var2.
5. レイアウトとビューを定義した後、GameController を作成できます
通常、コントローラーのデフォルトのアクションは、$defaultAction アクションを通じて変更できます。この例は再生するように変更されているため、この例の URL が http://127.0.0.1:8888/yii/demos/hangman/
の場合は http://127.0.0.1:8888/yii/demos/hangman を使用します。 /index.php は、http://127.0.0.1:8888/yii/demos/hangman/index.php?game/play を使用するのと同じ効果があります。デフォルトのコントローラーは GameController で、GameController のデフォルトのアクションは play.
Action (アクション) という単語を接頭辞として付けたメソッドとして定義できます。 Hangman は、actionPlay、actionGuess、actionGiveup、GameController、その他のメソッドと属性、および生成された単語の 3 つのアクションを定義します。特定のゲーム ロジックは Yii フレームワークとはほとんど関係がないため、説明しません。
6. まず、デフォルトの playAction を見てください。これは、ユーザー グループのアドレス バーが http://127.0.0.1:8888/yii/demos/ になったときに呼び出されます。 Hangman /index.php (または http://127.0.0.1:8888/yii/demos/hangman/index.php?game/play)。
このメソッドは、2 つの分岐を持つゲームの 3 つの難易度レベル $levels を定義します。難易度レベルが選択されていない場合、$this->render('play',$params) が呼び出されて、プレイが表示されます。ページを開き、$params (配列) を対応するビュー (protected/views/play.php) にプッシュします。上記のビューの定義を参照してください:
View は、Radiobutton を使用して $levels 定義のリストを表示します。
ユーザーが難易度を選択した場合、GameControllerで定義された単語、レベルなどの属性にレベル、単語などを格納します。 GameController と CController も CComponent のサブクラスです。CComponent は C# や Java と同様の属性関数をサポートします。詳細は後ほどご紹介します。
次に $this->render(‘guess’); を呼び出して、Guess ページを表示します。
Guess ページのguess.php は次のように定義されています:
View では、$this を通じて、対応するコントローラー インスタンス オブジェクトのメソッドとプロパティに直接アクセスできます。 $this->guessWord、$this->isGuessed(chr($i)) など。
26 文字をクリックすると、guessAction (array('submit'=>array('guess','g'=>chr($i)))) がトリガーされます。
7 は、guessAction の定義です。
推測ページで送信されるときにパラメータ「g」が渡され、すべての単語が正しく推測された場合は「勝ち」が表示され、すべての推測が使用された場合は「負け」が表示されます。 $this->render($result? 'win' : 'lose'),
まだ推測するチャンスがある場合は、推測ページ $this->render('guess');
8. Guess ページには「Give up」ボタンもあります。これをクリックすると、giveupAction がトリガーされ、loose ページが直接表示されます。これで、Hangman ゲームは基本的に完了です。ゲームは単純ですが、Yii を使用したアプリケーション開発の基本プロセスを示しています。Yii 開発ドキュメントに記載されている開発プロセスは比較的単純であり、データベースや国際化は使用しません。
ここでの開発プロセスは、アプリケーションの要件分析と必要な設計分析が完了していることを前提としています。
ディレクトリ構造のスケルトンを作成します。 「最初の Web アプリケーションの作成」で説明した yiic ツールを使用すると、この手順を迅速に実装できます。
このアプリを設定します。これは、アプリケーション構成ファイルを変更することによって実現されます。 この手順では、一部のアプリケーション コンポーネント (ユーザー コンポーネントなど) の作成も必要になる場合があります。
管理するデータの種類ごとに Model クラスを作成します。 「最初の Yii アプリケーションの作成と自動コード生成」で説明されている Gii ツールを使用すると、各データ テーブルのアクティブ レコード クラスを迅速に作成できます。 4. ユーザーリクエストのタイプごとにコントローラークラスを作成します。 ユーザーのリクエストをどのように分類するかは、実際のニーズによって異なります。一般に、ユーザーがモデル クラスにアクセスする必要がある場合は、対応するコントローラー クラスが必要です。 Gii ツールはこのステップを自動化することもできます。
アクションとそれに対応するビューを実装します。 これが実際に行わなければならない作業です。
コントローラークラスで必要なアクションフィルターを設定します。
テーマ機能が必要な場合は、テーマを作成します。
国際化(I18N)が必要な場合は、翻訳情報を作成します。
キャッシュ可能なデータ ポイントとビュー ポイントに適切なキャッシュ手法を適用します。
最終調整と展開。
上記は、PHP 開発フレームワーク Yii Framework チュートリアル (4) ハングマンの単語推測ゲームの例の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









クラウド コンピューティング テクノロジの継続的な発展により、データのバックアップはすべての企業が行う必要のあるものになりました。この文脈では、可用性の高いクラウド バックアップ システムを開発することが特に重要です。 PHP フレームワーク Yii は、開発者が高性能の Web アプリケーションを迅速に構築できる強力なフレームワークです。ここでは、Yii フレームワークを使用して可用性の高いクラウド バックアップ システムを開発する方法を紹介します。データベースモデルの設計 Yii フレームワークでは、データベースモデルは非常に重要な部分です。データ バックアップ システムには多くのテーブルとリレーションシップが必要なため、

Web アプリケーションの需要が高まるにつれ、開発者が開発フレームワークを選択する選択肢はますます増えています。 PHP フレームワークとして人気のある Symfony と Yii2 は、どちらも強力な機能とパフォーマンスを備えていますが、大規模な Web アプリケーションを開発する必要がある場合、どちらのフレームワークがより適しているのでしょうか。次に、より良い選択を行うために、Symphony と Yii2 の比較分析を行います。基本概要 Symphony は、PHP で書かれたオープンソースの Web アプリケーション フレームワークであり、上に構築されています。

インターネットの発展に伴い、Web アプリケーション開発の需要もますます高まっています。開発者にとって、アプリケーションの開発には、開発効率を向上させる、安定性、効率性、強力なフレームワークが必要です。 Yii は、豊富な機能と優れたパフォーマンスを提供する、優れた高性能 PHP フレームワークです。 Yii3 は Yii フレームワークの次世代バージョンであり、Yii2 に基づいてパフォーマンスとコード品質をさらに最適化します。この記事では、Yii3 フレームワークを使用して PHP アプリケーションを開発する方法を紹介します。

Yii フレームワークは、Web アプリケーション開発のプロセスを簡素化するための多数のツールとコンポーネントを提供するオープンソースの PHP Web アプリケーション フレームワークであり、その重要なコンポーネントの 1 つがデータ クエリです。 Yii フレームワークでは、SQL に似た構文を使用してデータベースにアクセスし、データを効率的にクエリおよび操作できます。 Yii フレームワークのクエリビルダーには主に次の種類があります: ActiveRecord クエリ、QueryBuilder クエリ、コマンド クエリ、独自の SQL クエリ

現在の情報化時代では、ビッグデータ、人工知能、クラウド コンピューティング、その他のテクノロジーが大手企業の焦点となっています。その中でも、高性能なグラフィックス処理技術として、グラフィックスカードレンダリング技術がますます注目を集めています。グラフィックス カード レンダリング テクノロジは、ゲーム開発、映画やテレビの特殊効果、エンジニアリング モデリングなどの分野で広く使用されています。開発者にとって、自分のプロジェクトに合ったフレームワークを選択することは非常に重要な決定です。現在の言語の中でも PHP は非常に動的な言語であり、Yii2、Ph などの優れた PHP フレームワークもいくつかあります。

「Yii とは何ですか?」という質問がある場合は、私の以前のチュートリアル「Yii フレームワークの紹介」を参照してください。このチュートリアルでは、Yii の利点をレビューし、2014 年 10 月にリリースされた Yii 2.0 の新機能の概要を説明しています。うーん> この Yii2 によるプログラミング シリーズでは、読者に Yii2PHP フレームワークの使い方をガイドします。今日のチュートリアルでは、Yii のコンソール機能を活用して cron ジョブを実行する方法を共有します。以前、私はバックグラウンド タスクを実行するために cron ジョブで wget (Web アクセス可能な URL) を使用しました。これにより、セキュリティ上の懸念が生じ、パフォーマンス上の問題も発生します。 Security for Startup シリーズでリスクを軽減するいくつかの方法について説明しましたが、コンソール駆動のコマンドに移行したいと考えていました。

インターネットの急速な発展に伴い、API はさまざまなアプリケーション間でデータを交換する重要な方法になりました。したがって、保守が容易で効率的で安定した API フレームワークを開発することがますます重要になっています。 API フレームワークを選択する場合、Yii2 と Symfony の 2 つは開発者の間で人気のある選択肢です。では、どちらが API 開発に適しているのでしょうか?この記事では、これら 2 つのフレームワークを比較し、いくつかの結論を示します。 1. 基本的な紹介 Yii2 と Symfony は、開発に使用できる対応する拡張機能を備えた成熟した PHP フレームワークです。

現代のソフトウェア開発において、強力なコンテンツ管理システム (CMS) を構築することは簡単な作業ではありません。開発者は広範なスキルと経験を持っている必要があるだけでなく、機能とパフォーマンスを最適化するために最先端のテクノロジーとツールを使用する必要もあります。この記事では、2 つの人気のあるオープン ソース ソフトウェアである Yii2 と GrapeJS を使用して、バックエンド CMS とフロントエンドのビジュアル編集を実装する方法を紹介します。 Yii2 は、迅速に構築するための豊富なツールとコンポーネントを提供する人気のある PHPWeb フレームワークです。
