Heim  >  Artikel  >  php教程  >  ThinkPHP3.1 Quick Start (1) Grundlagen

ThinkPHP3.1 Quick Start (1) Grundlagen

黄舟
黄舟Original
2016-12-20 11:29:271098Durchsuche

Einführung

ThinkPHP ist ein schnelles und einfaches, leichtes PHP-Entwicklungsframework, das auf MVC basiert und objektorientiert ist. Es wird unter der Open-Source-Vereinbarung Apache2 veröffentlicht und ist einfach und praktisch Designprinzipien und Aufrechterhaltung einer hervorragenden Leistung. Bei hervorragender Leistung und minimalem Code wird besonderer Wert auf Entwicklungserfahrung und Benutzerfreundlichkeit gelegt. Außerdem verfügt es über viele originelle Funktionen und Merkmale, die eine starke Unterstützung für die Entwicklung von WEB-Anwendungen bieten.

Verzeichnisstruktur

Die neueste Version von ThinkPHP finden Sie auf der offiziellen Website (http://thinkphp.cn/down/framework.html) oder Github (https://github.html). com/liu21st/thinkphp /downloads) herunterladen.

Extrahieren Sie die heruntergeladene komprimierte Datei in Ihr WEB-Verzeichnis (oder ein beliebiges Verzeichnis). Die Verzeichnisstruktur des Frameworks ist:

├─ThinkPHP.php Framework-Eintragsdatei

├ ─Gemeinsame öffentliche Framework-Dateien

├─Conf-Framework-Konfigurationsdatei

├─Framework-Erweiterungsverzeichnis erweitern

├─Lang-Kernsprachenpaketverzeichnis

├─ Verzeichnis der Lib-Kernklassenbibliothek

│ ├─Behavior-Kern-Verhaltensklassenbibliothek

│ ├─Core-Kernbasisklassenbibliothek

│ ├─In den Treiber integrierte Treiber

│ │ ├─Cache integrierter Cache-Treiber

│ │ ├─Db integrierter Datenbanktreiber

│ │ ├─TagLib integrierter Tag-Treiber

│ │ └─ Template integrierter Template-Engine-Treiber

│ └─Template integrierter Template-Engine

└─Tpl-Systemvorlagenverzeichnis

Beachten Sie, dass das Framework öffentlich ist Die Eingabedatei ThinkPHP.php kann nicht direkt ausgeführt werden. Ja, diese Datei kann nur dann normal ausgeführt werden, wenn sie in der Projekteintragsdatei aufgerufen wird (wird später besprochen). Dies ist ein Fehler, den viele Anfänger leicht machen.

Eintragsdatei

Bevor Sie beginnen, benötigen Sie einen Webserver und eine PHP-Laufumgebung. Falls Sie noch keine haben, empfehlen wir die Verwendung der integrierten Entwicklungsumgebung WAMPServer (ein integrierter Entwicklungskit für Apache, PHP und MySQL und unterstützt den Wechsel zwischen mehreren PHP-Versionen, MySQL-Versionen und Apache-Versionen) zur Verwendung von ThinkPHP für lokale Entwicklung und Tests.
Als nächstes erstellen wir zunächst ein App-Unterverzeichnis im WEB-Stammverzeichnis (diese App ist unser Projektname), erstellen dann eine index.php-Datei unter dem Verzeichnis und fügen eine einfache Codezeile hinzu:

< ;?php

require '/Verzeichnis, in dem sich das ThinkPHP-Framework befindet/ThinkPHP.php';

Die Funktion dieser Codezeile besteht darin, die Eingabedatei ThinkPHP.php des ThinkPHP zu laden Framework, das alle auf dem ersten Schritt bei der Entwicklung von Anwendungen mit ThinkPHP basiert.
Greifen Sie dann im Browser auf diese Eintragsdatei zu.

http://localhost/app/

Die Standarddatei allgemeiner Webserver ist index.php, daher müssen wir index.php nicht zur URL-Adresse hinzufügen. Nach dem Ausführen sehen wir die Willkommensseite

ThinkPHP3.1 Quick Start (1) Grundlagen

. Die Verzeichnisstruktur ist wie folgt:

├─index.php Eintragsdatei

├─Gemeinsames öffentliches Projektdateiverzeichnis

├─Conf-Projektkonfigurationsverzeichnis

├─Lang-Projektsprachenverzeichnis

├─Lib-Projektklasse Bibliotheksverzeichnis

│ ├─Action Action-Klassenbibliotheksverzeichnis

│ ├─Behavior Verhaltensklassenbibliotheksverzeichnis

│ ├─Modellmodellklassenbibliotheksverzeichnis

│ └─Widget Widget-Klassenbibliotheksverzeichnis

├─Laufzeitprojekt-Laufzeitverzeichnis

│ ├─Cache-Vorlagen-Cache-Verzeichnis

│ ├─Daten-Daten-Cache-Verzeichnis

│ ├─Protokolldateiverzeichnis

│ └─Temporäres Cache-Verzeichnis

└─Tpl-Projektvorlagenverzeichnis

Wenn Sie möchten, dass die Eintragsdatei des Projekts verschoben wird Außerhalb des App-Verzeichnisses müssen Sie nur den Inhalt der Eintragsdatei index.php wie folgt ändern:

define('APP_NAME','app');

define(' APP_PATH','./app/');

require '/ThinkPHP Framework Directory/ThinkPHP.php';

APP_NAME und APP_PATH werden verwendet Definieren Sie den Projektnamen und das Projektverzeichnis. Der Projektname bezieht sich normalerweise auf den Verzeichnisnamen des Projekts.
Nachdem wir die Eintragsdatei des Projekts verschoben und geändert haben, können wir über

http://localhost/

auf das App-Projekt zugreifen. Natürlich können Sie auch mehrere Unterverzeichnisse im Web-Stammverzeichnis erstellen, um mehrere Projekte bereitzustellen.

Konfiguration

Jedes Projekt verfügt über eine unabhängige Konfigurationsdatei (befindet sich in Conf/config.php im Projektverzeichnis. Das Definitionsformat der Konfigurationsdatei übernimmt die Methode, bei der PHP ein Array zurückgibt, zum Beispiel:

/). /Projektkonfigurationsdatei

return array(

'Konfigurationsparameter' => 'Konfigurationswert',

// Weitere Konfigurationsparameter

// .. .

);

Bei Bedarf können wir relevante Konfigurationselemente zur Projektkonfigurationsdatei hinzufügen. Wenn wir das Hinzufügen von Konfigurationselementen erwähnen, meinen wir normalerweise das Hinzufügen in der Projektkonfigurationsdatei:

'Konfigurationsparameter' => 'Konfigurationswert',

Konfigurationswert kann das Einschließen von Zeichenfolgen unterstützen. Für Daten einschließlich Bei Zahlen, booleschen Werten und Arrays empfehlen wir generell, Konfigurationsparameter in Großbuchstaben zu definieren. Bei Bedarf können wir auch weitere Konfigurationsdateien für das Projekt definieren.

Controller

muss für jedes Modul eine Controller-Klasse definieren. Die Namenskonvention der Controller-Klasse lautet: Modulname + Action.class.php (Modulname). Groß-/Kleinschreibung und Großschreibung des ersten Buchstabens)
Das Standardmodul des Systems ist Index, und der entsprechende Controller ist Lib/Action/IndexAction.class.php im Projektverzeichnis. Der Klassenname und der Dateiname sind konsistent. Die Standardoperation ist index, eine öffentliche Methode des Controllers. Beim ersten Generieren der Projektverzeichnisstruktur hat das System standardmäßig bereits einen Standardcontroller generiert (die Begrüßungsseite, die wir zuvor gesehen haben). Wir ändern die Indexmethode in den folgenden Code:

class IndexAction erweitert Action {

public function index(){

echo 'hello, world!';

}

}

Der Controller muss Erben Sie die Action-Klasse. Ein Modul kann mehrere Betriebsmethoden enthalten. Wenn Ihre Vorgangsmethode geschützt oder privat ist, kann der Vorgang nicht direkt über die URL aufgerufen werden.

URL-Anfrage

Die Eintragsdatei ist der einzige Einstiegspunkt für das Projekt. Alle Anfragen für das Projekt werden an die Eintragsdatei des Projekts weitergeleitet Analysieren Sie die aktuelle Anforderung anhand der URL-Parameter und -Operationen. Die zuvor besuchte URL-Adresse enthält keine Parameter, daher greift das System auf die Standardoperation (Index) des Standardmoduls (Index) zu, sodass der folgende Zugriff gleichwertig ist zum vorherigen:

http ://localhost/app/index.php/Index/index

Dieser URL-Modus ist der Standard-PATHINFO-Modus des Systems. Verschiedene URL-Modi haben unterschiedliche Methoden zum Abrufen Module und Operationen. ThinkPHP unterstützt vier URL-Typen: Normalmodus, PATHINFO, REWRITE und Kompatibilitätsmodus. Normaler Modus: Dies ist die herkömmliche GET-Parameterübergabemethode, um das aktuell aufgerufene Modul und den aktuell aufgerufenen Vorgang anzugeben, zum Beispiel:

http://localhost/app/?m=module&a=action&var=value

Der m-Parameter stellt das Modul dar, die a-Operation stellt die Operation dar (die URL-Parameternamen des Moduls und der Operation sind konfigurierbar) und das Folgende stellt andere GET-Parameter dar. PATHINFO-Modus: Dies ist der Standard-URL-Modus des Systems, der die beste SEO-Unterstützung bietet. Das System hat bereits intern eine Umgebungskompatibilitätsverarbeitung durchgeführt, sodass es die meisten Host-Umgebungen unterstützen kann. Entsprechend dem obigen URL-Muster lautet die URL-Zugriffsadresse unter dem PATHINFO-Muster:

http://localhost/app/index.php/module/action/var/value/

PATHINFO Adresse Der erste Parameter repräsentiert das Modul und der zweite Parameter repräsentiert die Operation.
Im PATHINFO-Modus kann die URL beispielsweise durch die folgende Konfiguration angepasst werden:

'URL_PATHINFO_DEPR'=>'-', // Ändern Sie das PATHINFO-Parametertrennzeichen

us Es kann auch den folgenden URL-Zugriff unterstützen:

http://localhost/app/index.php/module-action-var-value/

REWRITE-Modus: basierend auf PATHINFO-Modus Unterstützung hinzugefügt Für die Umschreiberegeln können Sie die Eintragsdatei index.php in der URL-Adresse entfernen, müssen aber zusätzlich die Umschreiberegeln des WEB-Servers konfigurieren.
Wenn es sich um Apache handelt, müssen Sie die .htaccess-Datei auf derselben Ebene wie die Eintragsdatei mit folgendem Inhalt hinzufügen:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [QSA, PT,L]> ;

Als nächstes können Sie mit der folgenden URL darauf zugreifen:

http://localhost/app/module/action/var/value/

Kompatibilitätsmodus: Wird in speziellen Umgebungen verwendet, die PATHINFO nicht unterstützen. Die URL-Adresse lautet:

http://localhost/app/?s=/module/action/var/value/.

Koordination des Kompatibilitätsmodus Die Definition von Regeln zum Umschreiben von Webservern kann den gleichen URL-Effekt erzielen wie der REWRITE-Modus.

Ansicht

ThinkPHP verfügt über eine integrierte kompilierte Template-Engine, die auch native PHP-Vorlagen unterstützt und außerdem Template-Engine-Treiber einschließlich Smarty bereitstellt. Anders als bei Smarty verwendet ThinkPHP beim Rendern einer Vorlage die Standardpositionierungsregeln des Systems. Die Definitionsspezifikation lautet daher TPL/Modulname/Operationsname.html Das Indexmodul befindet sich unter Tpl/Index/index.html im Projektverzeichnis.
Zum Beispiel:

hello {$name}

Hallo, {$name}!

Um die Ansicht auszugeben, muss dies im erfolgen Controller-Methode Template-Rendering-Ausgabeoperation, zum Beispiel:

class IndexAction erweitert Action {

public function index(){

$this->name = 'thinkphp'; // Vorlagenvariablenzuweisung durchführen

$this->display();

}

}

Wir geben keine Vorlage in der Anzeige an Methode, also je nach System Die Standardregel gibt die Vorlagendatei Index/index.html aus.
Als nächstes geben wir

http://localhost/app/

in den Browser ein und der Browser gibt
hello, thinkphp!

Daten lesen

Bevor wir beginnen, erstellen wir zunächst eine think_data-Datentabelle in der Datenbank thinkphp (am Beispiel der MySQL-Datenbank):

CREATE TABLE IF NOT EXISTS ` think_data` (

`id` int(8) unsigned NOT NULL AUTO_INCREMENT,

`data` varchar(255) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

INSERT INTO `think_data` (`id`, `data`) VALUES

(1, 'thinkphp'),

(2, 'php'),

(3, 'framework');

Wenn wir Daten aus der Datenbank lesen müssen, müssen wir sie dem Projekt hinzufügen Konfigurationsdatei Fügen Sie Datenbankverbindungsinformationen wie folgt hinzu:

// Datenbankkonfigurationsinformationen hinzufügen

'DB_TYPE' => // Datenbanktyp

'DB_HOST' => ; 'localhost', // Serveradresse

'DB_NAME' => // Datenbankname

'DB_USER' =>

'DB_PWD' => '', // Passwort

'DB_PORT' => 3306, // Port

'DB_PREFIX' => , // Datenbanktabellenpräfix

oder verwenden Sie die folgende Konfiguration

'DB_DSN' => 'mysql://root@localhost:3306/thinkphp'

definiert mit DB_DSN Die Konfigurationsparameter können vereinfacht werden: Datenbanktyp://Benutzername:Kennwort@Datenbankadresse:Datenbankport/Datenbankname. Wenn beide Konfigurationsparameter gleichzeitig vorhanden sind, hat der Konfigurationsparameter DB_DSN Vorrang.


Als nächstes ändern wir die Controller-Methode und fügen den Code zum Lesen der Daten hinzu:

class IndexAction erweitert Action {

public function index(){

       $Data = M('Data'); // Datenmodell instanziieren

            $this->data = $Data->select();

                            >display() ;

}

}

Hier wird die M-Funktion verwendet, die in ThinkPHP integrierte Methode zum Instanziieren des Modells, und es ist nicht erforderlich, das Modell mit zu instanziieren Die M-Methode muss die entsprechende Modellklasse erstellen. Sie können verstehen, dass die M-Methode die zugrunde liegende Modellklasse direkt betreibt und die Modellklasse über grundlegende CURD-Operationsmethoden verfügt.

Nachdem M('Data') instanziiert wurde, können Sie die Datentabelle think_data bearbeiten (einschließlich CURD) (think_ ist das Datentabellenpräfix, das wir in der Projektkonfigurationsdatei definiert haben). Es gibt viele andere Verwendungsmöglichkeiten der M-Funktion . Wir werden später mehr darüber erfahren.
Nachdem wir den Controller definiert haben, ändern wir die Vorlagendatei und fügen das Datenausgabe-Tag wie folgt hinzu:

Daten auswählen

{$vo.id}--{$vo.data}

Das volist-Tag ist ein Tag, das von der integrierten Template-Engine zur Ausgabe des Datensatzes verwendet wird. Die Verwendung von {$vo.id} und {$vo.data} ähnelt der von Smarty. Dabei handelt es sich um Felder zur Ausgabe von Daten. Hier werden die Werte der Felder id und data der Tabelle think_data ausgegeben .

Wenn wir auf

http://localhost/app/

zugreifen, wird

1--thinkphp

2--php

3--framework

Wenn Sie die obige Ausgabe sehen, herzlichen Glückwunsch, Sie haben den Schlüssel für den Einstieg mit ThinkPHP!

Zusammenfassung

In diesem Artikel haben wir etwas über die Verzeichnisstruktur, das URL-Muster von ThinkPHP und die Erstellung von Projekteintragsdateien, Controllern und Vorlagen gelernt. Wir werden weiterhin etwas über CURD-Operationen an Daten lernen später. .

Das Obige ist der grundlegende Inhalt von ThinkPHP3.1 Quick Start (1). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (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