Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Entwicklungsframework Yii Framework-Tutorial (1) Die erste Anwendung Hello World

PHP-Entwicklungsframework Yii Framework-Tutorial (1) Die erste Anwendung Hello World

黄舟
黄舟Original
2017-01-21 09:24:011319Durchsuche

Yii Framework-Tutorials finden Sie in der offiziellen chinesischen Dokumentation. Warum also dieses Entwicklungs-Tutorial schreiben? Der Zweck dieses Tutorials besteht darin, Windows-Desktopanwendungs- oder ASP.NET-Programmierern dabei zu helfen, das PHPYii Framework-Anwendungsframework aus verschiedenen Perspektiven schnell zu beherrschen (hauptsächlich aus der Perspektive der Entwicklung von Windows-Anwendungen in C++ und C#-Programmierern). Ein wichtiger Vorteil der Verwendung von PHP zur Entwicklung von Webanwendungen besteht darin, dass es auf verschiedene Betriebssysteme (Unix, Windows, Mac OS) angewendet werden kann, im Gegensatz zu Asp.Net, das im Allgemeinen nur auf Windows-Betriebssystemen angewendet werden kann. Mit PHP+Apache+MySQL (XMAP/LAMP) können Sie fast alle unbesiegbaren Spieler der Welt besiegen :-).

Das in diesem Tutorial verwendete Betriebssystem ist Windows und die Entwicklungs-IDE ist VS.PHP. Der Grund, warum diese Entwicklungsumgebung verwendet wird, liegt darin, dass VS.PHP Visual Studio als IDE verwendet, das Visual bekannt ist Studioentwickler. Und es kann zum gleichzeitigen Entwickeln und Debuggen von C#- und PHP-Anwendungen verwendet werden. Yii Framework selbst hat nichts mit IDE zu tun. Sie können Ihre bevorzugten PHP-Entwicklungstools verwenden, um Yii-Anwendungen zu entwickeln (wie Eclipse). Eine Einführung in VS.PHP finden Sie unter VS.PHP + YiiFramework-Kombinationsentwicklung von PHP-Anwendungen. Das Wissen über Yii Framework in diesem Tutorial hat nichts mit der Entwicklung von IDEs zu tun. Es kann auf verschiedene Entwicklungsumgebungen angewendet werden.

Bevor Sie die erste Anwendung erstellen, müssen Sie das Yii-Entwicklungspaket herunterladen. Sie können es von der Yii-Website herunterladen: http://www.yiiframework.com/download/. Die aktuelle Version ist 1.1.12. Entpacken Sie es nach dem Herunterladen der Einfachheit halber direkt in das Stammverzeichnis C::

PHP-Entwicklungsframework Yii Framework-Tutorial (1) Die erste Anwendung Hello World


Ein weiterer Vorteil der Verwendung von VS.PHP ist, dass es wird mit dem Apache-Webserver geliefert, sodass keine separate Installation erforderlich ist. Sie können auch XAMP (Apache+MySQL+PHP) installieren, aber wenn Sie MySQL verwenden müssen, müssen Sie MySQL separat installieren.

Nach der Installation des Yii Framework verwenden wir einfach VS.PHP, um Ihre erste PHP-Anwendung, Hello World, zu erstellen.

PHP-Entwicklungsframework Yii Framework-Tutorial (1) Die erste Anwendung Hello World

VS.PHP Erstellen Sie das HelloWorld-Projekt und fügen Sie eine index.php-Datei hinzu.

Ändern Sie zu diesem Zeitpunkt index.php in

<?php  
print "Hello, World!";  
  
?>
<?php  
print "Hello, World!";  
  
?>

. Drücken Sie F5, um das Programm auszuführen. VS.PHP öffnet den Browser und zeigt „Hello, World!“ an. Dies ist jedoch nicht der Fall. ! ! Wir haben das Yii-Webanwendungsframework nicht verwendet, das Yii-Framework ist ein rein objektorientiertes Anwendungsframework. Die Application-Klasse seines Webprogramms ist die CWebApplication-Klasse. Und übernimmt das MVC-Modell.

Das obige schematische Diagramm zeigt die statische Struktur der Yii-Anwendung

PHP-Entwicklungsframework Yii Framework-Tutorial (1) Die erste Anwendung Hello World

Die folgende Abbildung zeigt den typischen Arbeitsablauf einer Yii-Anwendung bei der Verarbeitung von Benutzeranfragen

PHP-Entwicklungsframework Yii Framework-Tutorial (1) Die erste Anwendung Hello World

Der Benutzer hat eine Anfrage zum Zugriff auf die URL http://www.example.com/index.php?r=post/show&id=1 gestellt und Der Webserver hat das Eingabeskript index.php übergeben, um diese Anfrage zu verarbeiten.

Das Eingabeskript erstellt eine Anwendungsinstanz und führt diese aus.

Die Anwendung erhält die Details der Benutzeranfrage von einer Anwendungskomponente namens Anfrage.

Die Anwendung ermittelt den angeforderten Controller und die angeforderte Aktion mithilfe einer Anwendungskomponente namens urlManager. In diesem Beispiel ist der Controller post, der die PostController-Klasse darstellt; die Aktion ist show, deren tatsächliche Bedeutung vom Controller bestimmt wird.

Die Anwendung erstellt eine Instanz des angeforderten Controllers, um die Benutzeranfrage weiter zu bearbeiten. Der Controller bestimmt, dass die Aktionsshow auf eine Methode namens actionShow in der Controller-Klasse verweist. Anschließend werden mit der Aktion verknüpfte Filter erstellt und verwaltet (z. B. Zugriffskontrolle, Benchmarking). Sofern der Filter dies zulässt, wird die Aktion ausgeführt.

Die Aktion liest ein Post-Modell mit der ID 1 aus der Datenbank.

Die Aktion rendert eine Ansicht mit dem Namen „show“ über das Post-Modell.

Die Ansicht liest und zeigt die Eigenschaften des Post-Modells an.

Die Ansicht führt einige Widgets aus.

Das Rendering-Ergebnis der Ansicht wird in ein Layout eingefügt.

Die Aktion schließt das Rendern der Ansicht ab und präsentiert sie dem Benutzer.

Die Yii-Anwendung selbst verfügt über viele Konfigurationen, z. B. den richtigen Controller, ob die Aktion Protokolldateien verwendet usw. Für eine einfache Anwendung wie Hello, World werden alle Standardwerte verwendet. Der Standard-Controller ist SiteController und die Aktion ist indexAction. Das heißt, wenn Ihre Website beispielsweise www.guidebee.com ist und Sie Yii Framework verwenden, wird die CWebApplication von aufgerufen, wenn der Benutzer www.guidebee.com anfordert Die Yii-Anwendung erstellt eine SiteController-Klasseninstanz und ruft die indexAction-Methode von SiteController auf (entspricht der Hauptmethode von Program in der C#-Konsolenanwendung).

Das Yii-Projekt verwendet verschiedene Verzeichnisse zum Speichern von Controller, Aktion, Ansicht, Layout usw. Die Standardverzeichnisstruktur ist wie folgt

Testdrive/
Index.php-Webanwendungs-Inlet-Skriptdatei
Index-TEST.PHP-Funktionstest verwendet Inlet-Skriptdatei
Assets/ enthält offene Ressourcendateien
CSS/ enthält CSS-Datei
Bilder/ Enthält Bilddateien
Themen/ Enthält Anwendungsthemen
geschützt/ Enthält geschützte Anwendungsdateien
yiic yiic Befehlszeilenskript
yiic.bat yiic Befehlszeilenskript unter Windows
yiic.php yiic Befehl Zeile PHP-Skript
Befehle/ enthält benutzerdefinierte „yiic“-Befehle
Shell/ enthält benutzerdefinierte „yiic-Shell“-Befehle
Komponenten/ enthält wiederverwendbare Benutzerkomponenten
Controller .php Die Basisklasse für alle Controller-Klassen
Identity.php Die für die Authentifizierung verwendete Klasse „Identity“
config/ Enthält die Konfigurationsdatei
console.php Konsolenanwendungskonfiguration
Main.php Webanwendungskonfiguration
test.php Konfiguration, die für Funktionstests verwendet wird
Controller/ Enthält die Klassendatei des Controllers
SiteController.php Die Klassendatei des Standardcontrollers
Daten/ Enthält Beispieldatenbank
schema.mysql.sql Beispiel-MySQL-Datenbank
schema.sqlite .sql Beispiel einer SQLite-Datenbank
testdrive.db Beispiel einer SQLite-Datenbankdatei
Erweiterungen/ Enthält Erweiterungen von Drittanbietern
Nachrichten/          Enthält übersetzte Nachrichten
        Modelle/                                                                                                                                 Enthält die übersetzte Nachricht
      Modelle/Klassendatei
LoginForm.php 'Login'-Aktionsformularmodell
ContactForm.php 'Kontakt'-Aktionsformularmodell
Laufzeit/ Enthält temporär generierte Dateien
Tests /                     Enthält Testskripte
Ansichten/ Enthält die Ansicht und das Layout Dateien für den Controller
Enthält die Layout-Ansichtsdatei
main.php Das Standardlayout für alle Ansichten
Verwenden Sie das für einspaltige Seiten verwendete Layout
columns2.php Verwenden Sie double Das Layout der Seiten von Spalten
Site/ Dateien anzeigen, die den 'Site'-Controller enthalten
Seiten/, die die Seite „Statisch“ enthalten
About.php „About“-Seite
Contact.php 'contact ' Die Ansicht der Aktion
            error.php             Die Ansicht der Aktion „Fehler“ (zeigt externe Fehler an)
                 index.php          ''''''''s Ansicht der Aktion ‐ ‐ ‐‐‐‐‐‐ , 🎜> system/ Enthält Systemansichtsdateien

这个目录结构可以通过Yii自带的工具来创建缺省的文件建立第一个 Yii 应用。

对于Hello World项目来说,没有必要这么复杂,我们只需创建 protected \controllers 目录以存放SiteController.php。

每个Yii应用都有的入口脚本,可以理解为C#的Program类。这个 入口脚本大同小异

<?php  
  
// 包含Yii引导文件  
//require_once(dirname(__FILE__).&#39;/../../framework/yii.php&#39;);  
$yii=&#39;C:/yiiframework/yii.php&#39;;  
// 发布应用时,去掉下面代码避免产生调试信息  
defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;,true);  
  
require_once($yii);  
// 创建一个应用实例并执行  
  
Yii::createWebApplication()->run();
<?php  
  
// 包含Yii引导文件  
//require_once(dirname(__FILE__).&#39;/../../framework/yii.php&#39;);  
$yii=&#39;C:/yiiframework/yii.php&#39;;  
// 发布应用时,去掉下面代码避免产生调试信息  
defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;,true);  
  
require_once($yii);  
// 创建一个应用实例并执行  
  
Yii::createWebApplication()->run();

前面说过Yii的缺省Controller为SiteController,缺省Action为actionIndex, 因此HelloWorld的SiteController代码如下

/** 
 * SiteController is the default controller to handle user requests. 
 */  
class SiteController extends CController  
{  
    /** 
     * Index action is the default action in a controller. 
     */  
    public function actionIndex()  
    {  
        echo &#39;Hello World&#39;;  
    }  
}
/** 
 * SiteController is the default controller to handle user requests. 
 */  
class SiteController extends CController  
{  
    /** 
     * Index action is the default action in a controller. 
     */  
    public function actionIndex()  
    {  
        echo &#39;Hello World&#39;;  
    }  
}

此时再运行应用,可以在浏览器中显示“Hello,World”。 目前没有使用MVC模型直接在Controller 使用echo 打印出“Hello,World”, 下面稍微修改一下代码,创建一个简单的View。

View缺省目录为protected 目录下的views 子目录,和Controller类对于,比如SiteController对应到Views目录下的site子目录,和Asp.Net一样,Yii的View(对应到Asp.Net的Page类)也可以使用MasterPage,Yii应用成为Layout,缺省Layout存放在views的layouts 子目录。

PHP-Entwicklungsframework Yii Framework-Tutorial (1) Die erste Anwendung Hello World

修改SiteController的actionIndex 方法,改为:

public function actionIndex()  
{  
 $this->render("index");  
}
public function actionIndex()  
{  
 $this->render("index");  
}

View 视图是一个包含了主要的用户交互元素的PHP脚本.他可以包含PHP语句,但是我们建议这些语句不要去改变数据模型,且最好能够保持其单纯性(单纯作为视图)。为了实现逻辑和界面分离,大段的逻辑应该被放置于控制器或模型中,而不是视图中,视图有一个名字,当渲染(render)时,名字会被用于识别视图脚本文件。

actionIndex 通过render 方法来显示一个View,对应到views->site 目录下的 index.php 。render 缺省使用views ->layouts 下的 main.php 作为 Layout (布局,MasterPage)

布局是一种用来修饰视图的特殊的视图文件.它通常包含了用户界面中通用的一部分视图.例如:布局可以包含header和footer的部分,然后把内容嵌入其间.

......header here......

......footer here......

其中的 $content 则储存了内容视图的渲染结果.

来看一下View是目录下的index.php (View) 代码:

<?php echo "Hello,World!"; ?>
<?php echo "Hello,World!"; ?>

这样就完成了Hello,World的MVC模型,运行显示“Hello,World”。

PHP-Entwicklungsframework Yii Framework-Tutorial (1) Die erste Anwendung Hello World

以上就是PHP开发框架Yii Framework教程(1) 第一个应用Hello World的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Stellungnahme:
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