Heim Backend-Entwicklung PHP-Tutorial PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

Jan 21, 2017 am 09:39 AM

Mit dem vorherigen „Hello, World“-Beispiel und der Einführung in die Grundlagen von Yii Framework-Webanwendungen können wir mit der Einführung einer einfachen, aber relativ vollständigen Webanwendung beginnen – Hangman (Ratespiel). Dieses Beispiel wird mit Yii Development geliefert Paket freigegeben. Anhand dieses Beispiels können Sie die grundlegenden Schritte der Entwicklung von Yii-Anwendungen verstehen.

Apropos „Hangman“: Es erinnert mich an das „Ratespiel“, das ich Ende der 1980er Jahre auf dem CPC464-Computer gespielt habe. Henker, jedes Mal habe ich falsch geraten. Einmal wurde ein Bösewicht einen Schritt näher an den Galgen gebracht. DOS war damals gerade herausgekommen :-).

Um eine Webanwendung zu entwickeln, ist der erste Schritt die Durchführung einer Anforderungsanalyse. Diese ist nicht in diesem Tutorial enthalten, aber der Vollständigkeit halber sind unten die Regeln des „Ratespiels“ aufgeführt:

Rate das Wort Das Spiel (englisch: Hangman, was „Gehängter“ bedeutet) ist ein Spiel für zwei Spieler. Ein Spieler denkt sich ein Wort aus und der andere Spieler versucht, jeden Buchstaben des Wortes zu erraten, an das der Spieler denkt.

Das zu erratende Wort wird durch eine Spalte aus horizontalen Linien dargestellt, die den Spielern mitteilen, wie viele Buchstaben das Wort hat. Wenn der Ratespieler einen der Buchstaben richtig errät, muss der andere Spieler diesen Buchstaben an allen Stellen schreiben, an denen er vorkommt. Wenn der erratene Buchstabe nicht im Wort vorkommt, zeichnet der andere Spieler einen der Striche der Hängepuppe. Das Spiel endet in den folgenden Situationen:

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

„Ich möchte das T-Wort.“ „Ja, auf dem achten und elften Platz.“ das Wort Der Spieler hat alle Buchstaben erraten oder das ganze Wort erraten

Der andere Spieler hat das vollständige Bild gezeichnet:

Das heutige Beispiel zeichnet nicht „Der Gehängte“, erraten Sie es richtig Wenn Sie falsch raten, wird „Sie gewinnen“ angezeigt, wenn Sie falsch raten, wird „Sie verlieren“ angezeigt. Daher können wir vier Seiten entwerfen:

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel Diese vier Seiten entsprechen dem Yii-Framework als vier Ansichten, die jeweils als Spielen, Raten, Gewinnen, Verlieren bezeichnet werden können Jede Seite Zeigt den Titel „Hangman Game“ an, sodass Sie eine „MasterPage“ entwerfen und in Yii zu einer Layoutvorlage für vier Ansichten zum Teilen werden können. Die Yii-Anwendung übernimmt das MVC-Entwurfsmuster, sodass wir einen Controller->GameController für vier Ansichten entwerfen können.

Im vorherigen Tutorial wurde gesagt, dass die Yii-Anwendung die Standardverzeichnisstruktur verwendet, um verschiedene Teile der Anwendung zu speichern. Verwenden Sie die von Yii bereitgestellten Tools, um ein Standardprojektverzeichnis hinzuzufügen. Ich persönlich bevorzuge es jedoch, jedes Verzeichnis selbst zu erstellen, sodass die Verzeichnisstruktur des Projekts basierend auf den oben genannten Anforderungen und dem Schnittstellendesign wie folgt erstellt werden kann:

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-WortratespielDie Die erstellte GameController.php wird im Verzeichnis protected/controller abgelegt.

Die vier erstellten Ansichten „guest.php“, „lose.php“, „play.php“ und „win.php“ werden im Verzeichnis protected/views/game abgelegt. Der Verzeichnisname game entspricht dem von GameController erstellten freigegebenen Layout.

und wird im Verzeichnis protected/views/layout abgelegt. Der Standardlayoutname lautet main.php

Anwendungskonfigurationsdatei Platzieren Sie es in protected/config. Die Standardkonfigurationsdatei ist main.php

Das Anwendungseintragsskript ist index.php

Außerdem ist die Textdatei zum Erraten von Wörtern word.txt

1. Werfen wir zunächst einen Blick auf die Konfigurationsdatei protected/config/main.php

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

Alle beschreibbaren Attribute der CWebApplication-Anwendung können über definiert werden In der Konfigurationsdatei sehen wir, dass die Konfigurationsdatei den Namen der Anwendung als „Hangman Game“ definiert und dann den Standard-Controllernamen der Webanwendung in „Game“ ändert, was GameController entspricht Der Controllername ist SiteController, daher wird View im Verzeichnis protected/views/site gespeichert. Darüber hinaus öffnet diese Yii-Anwendung die URLManager-Komponente. Die Funktion dieser Komponente wird hauptsächlich zum Definieren des Formats von URLs verwendet, auf die Benutzer zugreifen können (Routing-Format).
return array(
'name'=>'Hangman Game',
'defaultController'=>'game',
'components'=>array(
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'game/guess/'=>'game/guess',),),
),);
Nach dem Login kopieren

2. Mit dieser Konfigurationsdatei können Sie sie im Eingabeskript index.php jeder Yii-Anwendung verwenden. In den meisten Fällen handelt es sich um Kopieren und Einfügen

3. Definieren Sie dann die von View verwendete Layoutdatei „protected/views/layout/main.php“. Die Anwendung kann das von View verwendete Layout ändern Ich möchte nur den Standardlayoutnamen main.

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

Das Layout ist im Grunde eine HTML-Datei, in der der Inhalt als Platzhalter der Ansicht, also bei der Anzeige einer bestimmten Ansicht, wie z. B. play.php, verwendet wird von play.php, um es zu ersetzen. Dadurch wird eine ähnliche Funktion wie „MasterPage“ realisiert.

4. Sie können die vier Ansichten einzeln definieren. Sie sind hier nicht aufgeführt: PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

Sie können sehen, dass es sich im Wesentlichen um HTML handelt und CHtml eine vom Yii-Framework unterstützte Hilfsklasse ist, die beim Generieren von HTML-Code hilft. Hangman ist relativ einfach, verwendet also kein separates Modell, sondern übergibt Parameter per Render-Push.

Sie müssen CController::render() aufrufen, indem Sie den Namen der Ansicht übergeben. Diese Methode sucht nach der entsprechenden Ansichtsdatei im Verzeichnis protected/views/ControllerID.

Innerhalb des Ansichtsskripts können wir über $this-> auf die Controller-Instanz zugreifen ; propertyName-Methode zum Abrufen einer beliebigen Eigenschaft des Controllers.

Wir können auch die folgende Push-Methode verwenden, um Daten an die Ansicht zu übergeben:

$this->render('edit', array (
'var1'=>$value1,
'var2'=>$value2,
));

In der obigen Methode die render()-Methode Extrahiert den zweiten Parameter des Arrays in die Variable. Das Ergebnis ist, dass wir im Ansichtsskript direkt auf die Variablen $var1 und $var2 zugreifen können.

5 Nachdem Sie das Layout und die Ansicht definiert haben Schreiben Sie GameController,

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

Im Allgemeinen ist die Standardaktion durch $defaultAction geändert. Wenn in diesem Beispiel die URL http://127.0.0.1:8888/yii/demos/hangman/
lautet, dann verwenden Sie http://127.0.0.1:8888/yii/demos/hangman/index.php und verwenden Sie http: //127.0 .0.1:8888/yii/demos/hangman/index.php?game/play hat den gleichen Effekt. Der Standard-Controller ist GameController und die Standardaktion von GameController ist Spielen.

Aktion (Aktion) kann als Methode definiert werden, deren Name das Wort Aktion ist. Hangman definiert drei Aktionen: actionPlay, actionGuess, actionGiveup, GameController, andere Methoden und Attribute sowie generierte Wörter. Die spezifische Spiellogik hat wenig mit dem Yii-Framework zu tun und wird nicht vorgestellt.

6. Schauen Sie sich zunächst die Standard-PlayAction an. Dies ist die vom Benutzer aufgerufene Standardmethode, das heißt, wenn die Benutzergruppenadressleiste http://127.0.0.1:8888/yii/demos eingibt /hangman / Von index.php aufgerufene Aktion (oder http://127.0.0.1:8888/yii/demos/hangman/index.php?game/play).

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

Diese Methode definiert die drei Schwierigkeitsgrade des Spiels, $levels, mit zwei Zweigen. Wenn kein Schwierigkeitsgrad ausgewählt ist, $this->render(' play'. ,$params), zeigen Sie die Wiedergabeseite an, verschieben Sie $params (Array) in die entsprechende Ansicht, protected/views/play.php, siehe Definition von Ansicht oben:

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

View verwendet Radiobutton, um die durch $levels definierte Liste anzuzeigen.

Wenn der Benutzer den Schwierigkeitsgrad auswählt, speichern Sie den Level, die Wörter usw. in den vom GameController definierten Attributen, z. B. Wort, Level usw. GameController und CController sind ebenfalls Unterklassen von CComponent und unterstützen Attributfunktionen ähnlich wie C# und Java. Weitere Details werden später bekannt gegeben.
Dann rufen Sie $this->render(‘guess’); auf, um die Guess-Seite anzuzeigen.
Guess-Seiteguest.php ist wie folgt definiert:

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

In View können Sie über $this direkt auf die Methoden und Eigenschaften des entsprechenden Controller-Instanzobjekts zugreifen. Zum Beispiel $this->guessWord, $this->isGuessed(chr($i)) usw.
Klicken Sie auf 26 Buchstaben, um „guessAction“ auszulösen (array('submit'=>array('guess','g'=>chr($i))))).

unten Die Definition von „guessAction“ ist

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

, wobei der Parameter „g“ bei der Übermittlung durch die Rateseite übergeben wird. Wenn alle Wörter richtig erraten werden, wird „Sie gewinnen“. angezeigt werden, oder alle Zeiten, in denen Sie falsch geraten haben, werden angezeigt zurück zur Guess-Seite $this->render('guess');

8 Es gibt auch eine Schaltfläche „Aufgeben“ auf der Guess-Seite. Wenn der Benutzer darauf klickt, wird die GiveupAction ausgelöst. Diese Methode ist relativ einfach und zeigt direkt die Verlustseite an

PHP-Entwicklungsframework Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel

Jetzt ist das Hangman-Spiel im Grunde abgeschlossen. Obwohl das Spiel einfach ist, veranschaulicht es den grundlegenden Prozess der Entwicklung von Anwendungen mit Yii. Der im Yii-Entwicklungsdokument beschriebene Entwicklungsprozess ist relativ einfach und verwendet keine Datenbanken und Internationalisierung.

Der Entwicklungsprozess setzt hier voraus, dass wir die Anforderungsanalyse und die notwendige Designanalyse der Anwendung abgeschlossen haben.

Erstellen Sie ein Verzeichnisstrukturgerüst. Das unter „Erstellen der ersten Webanwendung“ erwähnte yiic-Tool kann diesen Schritt schnell umsetzen.

Konfigurieren Sie diese Anwendung. Dies wird durch Ändern der Anwendungskonfigurationsdatei erreicht. Dieser Schritt erfordert möglicherweise auch das Schreiben einiger Anwendungskomponenten (z. B. Benutzerkomponenten).

Erstellen Sie eine Modellklasse für jeden verwalteten Datentyp. Die unter „Erstellen der ersten Yii-Anwendung und automatische Codegenerierung“ beschriebenen Gii-Tools können verwendet werden, um schnell aktive Datensatzklassen für jede Datentabelle zu erstellen. 4. Erstellen Sie für jeden Benutzeranforderungstyp eine Controller-Klasse. Wie Benutzeranfragen klassifiziert werden, hängt von den tatsächlichen Bedürfnissen ab. Wenn Benutzer auf eine Modellklasse zugreifen müssen, sollte sie im Allgemeinen über eine entsprechende Controller-Klasse verfügen. Gii-Tools können diesen Schritt auch automatisieren.

Implementieren Sie Aktionen und die entsprechenden Ansichten. Das ist die eigentliche Arbeit, die getan werden muss.

Konfigurieren Sie die erforderlichen Aktionsfilter in der Controller-Klasse.

Wenn Sie Theme-Funktionalität benötigen, erstellen Sie ein Theme.

Wenn eine Internationalisierung (I18N) erforderlich ist, erstellen Sie Übersetzungsinformationen.

Wenden Sie geeignete Caching-Techniken auf zwischenspeicherbare Datenpunkte und Ansichtspunkte an.

Endgültige Anpassungen und Bereitstellung.

Das Obige ist der Inhalt des PHP-Entwicklungsframeworks Yii Framework-Tutorial (4) Beispiel für ein Hangman-Wortratespiel. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So entwickeln Sie mit dem PHP-Framework Yii ein hochverfügbares Cloud-Backup-System So entwickeln Sie mit dem PHP-Framework Yii ein hochverfügbares Cloud-Backup-System Jun 27, 2023 am 09:04 AM

Mit der kontinuierlichen Weiterentwicklung der Cloud-Computing-Technologie ist die Datensicherung zu etwas geworden, das jedes Unternehmen durchführen muss. In diesem Zusammenhang ist es besonders wichtig, ein hochverfügbares Cloud-Backup-System zu entwickeln. Das PHP-Framework Yii ist ein leistungsstarkes Framework, das Entwicklern dabei helfen kann, schnell leistungsstarke Webanwendungen zu erstellen. Im Folgenden wird vorgestellt, wie Sie mit dem Yii-Framework ein hochverfügbares Cloud-Backup-System entwickeln. Entwerfen des Datenbankmodells Im Yii-Framework ist das Datenbankmodell ein sehr wichtiger Teil. Denn das Datensicherungssystem erfordert viele Tabellen und Beziehungen

Symfony vs Yii2: Welches Framework eignet sich besser für die Entwicklung umfangreicher Webanwendungen? Symfony vs Yii2: Welches Framework eignet sich besser für die Entwicklung umfangreicher Webanwendungen? Jun 19, 2023 am 10:57 AM

Da die Nachfrage nach Webanwendungen weiter wächst, haben Entwickler bei der Auswahl von Entwicklungsframeworks immer mehr Möglichkeiten. Symfony und Yii2 sind zwei beliebte PHP-Frameworks. Sie verfügen beide über leistungsstarke Funktionen und Leistung. Welches Framework ist jedoch besser geeignet, wenn es darum geht, umfangreiche Webanwendungen zu entwickeln? Als nächstes führen wir eine vergleichende Analyse von Symphony und Yii2 durch, um Ihnen zu helfen, eine bessere Wahl zu treffen. Grundlegende Übersicht Symphony ist ein Open-Source-Webanwendungs-Framework, das in PHP geschrieben ist und darauf aufbaut

Datenabfrage im Yii-Framework: Effizienter Zugriff auf Daten Datenabfrage im Yii-Framework: Effizienter Zugriff auf Daten Jun 21, 2023 am 11:22 AM

Das Yii-Framework ist ein Open-Source-PHP-Webanwendungsframework, das zahlreiche Tools und Komponenten zur Vereinfachung des Prozesses der Webanwendungsentwicklung bereitstellt, wobei die Datenabfrage eine der wichtigen Komponenten ist. Im Yii-Framework können wir eine SQL-ähnliche Syntax verwenden, um auf die Datenbank zuzugreifen und Daten effizient abzufragen und zu bearbeiten. Der Abfrage-Builder des Yii-Frameworks umfasst hauptsächlich die folgenden Typen: ActiveRecord-Abfrage, QueryBuilder-Abfrage, Befehlsabfrage und Original-SQL-Abfrage

Wie verwende ich das Yii3-Framework in PHP? Wie verwende ich das Yii3-Framework in PHP? May 31, 2023 pm 10:42 PM

Mit der Weiterentwicklung des Internets wird auch die Nachfrage nach der Entwicklung von Webanwendungen immer größer. Für Entwickler erfordert die Entwicklung von Anwendungen ein stabiles, effizientes und leistungsstarkes Framework, das die Entwicklungseffizienz verbessern kann. Yii ist ein führendes Hochleistungs-PHP-Framework, das umfangreiche Funktionen und gute Leistung bietet. Yii3 ist die nächste Generation des Yii-Frameworks, das die Leistung und Codequalität basierend auf Yii2 weiter optimiert. In diesem Artikel stellen wir vor, wie Sie das Yii3-Framework zum Entwickeln von PHP-Anwendungen verwenden.

Yii2 vs. Phalcon: Welches Framework eignet sich besser für die Entwicklung von Grafik-Rendering-Anwendungen? Yii2 vs. Phalcon: Welches Framework eignet sich besser für die Entwicklung von Grafik-Rendering-Anwendungen? Jun 19, 2023 am 08:09 AM

Im aktuellen Informationszeitalter sind Big Data, künstliche Intelligenz, Cloud Computing und andere Technologien in den Fokus großer Unternehmen gerückt. Unter diesen Technologien hat die Grafikkarten-Rendering-Technologie als leistungsstarke Grafikverarbeitungstechnologie immer mehr Aufmerksamkeit erhalten. Die Grafikkarten-Rendering-Technologie wird häufig in der Spieleentwicklung, bei Film- und Fernsehspezialeffekten, im technischen Modellbau und in anderen Bereichen eingesetzt. Für Entwickler ist die Wahl eines Frameworks, das zu ihren Projekten passt, eine sehr wichtige Entscheidung. Unter den aktuellen Sprachen ist PHP eine sehr dynamische Sprache. Einige hervorragende PHP-Frameworks wie Yii2, Ph

Yii2-Programmierhandbuch: So führen Sie den Cron-Dienst aus Yii2-Programmierhandbuch: So führen Sie den Cron-Dienst aus Sep 01, 2023 pm 11:21 PM

Wenn Sie fragen: „Was ist Yii?“ schauen Sie sich mein vorheriges Tutorial an: Einführung in das Yii Framework, das die Vorteile von Yii bespricht und die Neuerungen in Yii 2.0 beschreibt, das im Oktober 2014 veröffentlicht wurde. Hmm> In dieser Serie „Programmieren mit Yii2“ werde ich die Leser in die Verwendung des Yii2PHP-Frameworks einführen. Im heutigen Tutorial werde ich Ihnen zeigen, wie Sie die Konsolenfunktionalität von Yii nutzen können, um Cron-Jobs auszuführen. In der Vergangenheit habe ich wget – eine über das Internet zugängliche URL – in einem Cron-Job verwendet, um meine Hintergrundaufgaben auszuführen. Dies wirft Sicherheitsbedenken auf und hat einige Leistungsprobleme zur Folge. Während ich in unserer Serie „Sicherheit für Startup“ einige Möglichkeiten zur Risikominimierung besprochen habe, hatte ich gehofft, auf konsolengesteuerte Befehle umsteigen zu können

Yii2 vs Symfony: Welches Framework ist besser für die API-Entwicklung? Yii2 vs Symfony: Welches Framework ist besser für die API-Entwicklung? Jun 18, 2023 pm 11:00 PM

Mit der rasanten Entwicklung des Internets sind APIs zu einer wichtigen Möglichkeit geworden, Daten zwischen verschiedenen Anwendungen auszutauschen. Daher wird es immer wichtiger, ein API-Framework zu entwickeln, das einfach zu warten, effizient und stabil ist. Bei der Auswahl eines API-Frameworks sind Yii2 und Symfony zwei beliebte Optionen unter Entwicklern. Welches ist also besser für die API-Entwicklung geeignet? In diesem Artikel werden diese beiden Frameworks verglichen und einige Schlussfolgerungen gezogen. 1. Grundlegende Einführung Yii2 und Symfony sind ausgereifte PHP-Frameworks mit entsprechenden Erweiterungen, die zur Entwicklung verwendet werden können

So konvertieren Sie Yii-Objekte in Arrays oder geben sie direkt im JSON-Format aus So konvertieren Sie Yii-Objekte in Arrays oder geben sie direkt im JSON-Format aus Jan 08, 2021 am 10:13 AM

Yii-Framework: In diesem Artikel wird die Methode von Yii zum Konvertieren von Objekten in Arrays oder zur direkten Ausgabe in das JSON-Format vorgestellt. Sie hat einen bestimmten Referenzwert und ich hoffe, dass sie jedem helfen kann.

See all articles