Heim Backend-Entwicklung PHP-Tutorial Detaillierter Überblick über die Gesamtarchitektur des thinkPHP5.0-Frameworks

Detaillierter Überblick über die Gesamtarchitektur des thinkPHP5.0-Frameworks

Mar 27, 2017 am 09:17 AM

Dieser Artikel stellt hauptsächlich die Gesamtarchitektur des thinkPHP5.0-Frameworks vor und stellt kurz die Anwendungen, Module, MVC, Treiber, Verhaltensweisen und Namespace von thinkPHP5 vor. 0 und andere Konzepte und grundlegende Verwendungszwecke können Freunde in Not finden

Dieser Artikel beschreibt die Gesamtarchitektur des thinkPHP5.0-Frameworks. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

ThinkPHP5.0-Anwendung basiert auf MVC (Modell-Ansicht-Controller) Kommen Sie und organisieren Sie.

MVC ist ein Entwurfsmuster, das die Trennung von Anwendungseingabe, -verarbeitung und -ausgabe erzwingt. Anwendungen, die MVC verwenden, sind in drei Kernkomponenten unterteilt: Modell (M), Ansicht (V) und Controller (C), von denen jede ihre eigenen Aufgaben übernimmt.

5.0's URL-Zugriff wird durch Routing bestimmt. Wenn das Routing deaktiviert ist oder keine passende Route vorhanden ist, basiert es auf:

serverName/index .php (oder andere Anwendungseintragsdateien)/module/controller/operation/parameter/value...

Es ist notwendig, einige der folgenden Punkte zu verstehen Konzepte, die möglicherweise im folgenden Inhalt häufig erwähnt werden.

Eintragsdatei

Die vom Benutzer angeforderte PHP-Datei, die für die Verarbeitung des Lebenszyklus einer Anfrage verantwortlich ist (Hinweis: nicht unbedingt eine URL). Anfrage) und schließlich Die gemeinsame Eintragsdatei ist index.php Manchmal werden für einige spezielle Anforderungen neue Eintragsdateien hinzugefügt, z. B. eine separate Eintragsdatei für das Hintergrundmodul admin.php oder ein Controller-Programmeintrag think.

Anwendung

Eine Anwendung in ThinkPHP ist ein Objekt, das die Systemarchitektur und den Lebenszyklus verwaltet. Sie wird durch die thinkApp-Klasse des Systems vervollständigt . Anwendung Wird normalerweise in der Eintragsdatei aufgerufen und ausgeführt. Anwendungen mit demselben Anwendungsverzeichnis (APP_PATH) gelten als dieselbe Anwendung, eine Anwendung kann jedoch mehrere Eintragsdateien haben.

Die Anwendung verfügt über eine eigene unabhängige Konfigurationsdatei und eine öffentliche (Funktions-)Datei.

Modul

Eine typische Anwendung besteht aus mehreren Modulen. Diese Module befinden sich normalerweise in einem Unterverzeichnis im Anwendungsverzeichnis, und jedes Modul besteht aus unabhängigen Konfigurationsdateien, öffentlichen Dateien usw Klassenbibliothek-Dateien.

5.0 unterstützt den Entwurf einer Einzelmodularchitektur. Wenn sich in Ihrer Anwendung nur ein Modul befindet, kann das Unterverzeichnis dieses Moduls in der Anwendungskonfigurationsdatei weggelassen und geändert werden :

'app_multi_module' =>  false,
Nach dem Login kopieren

Controller

Jedes Modul verfügt über eine unabhängige MVC-Klassenbibliothek und Konfigurationsdatei. Es gibt mehrere Controller unter einem Modul, die für die Beantwortung von Anforderungen verantwortlich sind, und jeder Controller ist tatsächlich ein separater Controller Klasse.

Der Controller ist hauptsächlich dafür verantwortlich, Anfragen zu empfangen, die entsprechende Modellverarbeitung aufzurufen und sie schließlich über die Ansicht auszugeben. Streng genommen sollte der Controller nicht zu sehr in die Verarbeitung der Geschäftslogik involviert sein.

Tatsächlich kann der Controller in 5.0 durch Routing übersprungen werden, sodass wir die Anfrage direkt an ein bestimmtes Modell oder eine andere Klasse zur Verarbeitung weiterleiten können.

Die Controller-Klasse von 5.0 ist flexibler und muss keine grundlegende Klassenbibliothek erben.

Eine typische Index-Controller-Klasse lautet wie folgt:

namespace app\index\controller;
class Index 
{
  public function index()
  {
    return 'hello,thinkphp!';
  }
}
Nach dem Login kopieren

Operation

Ein Controller enthält mehrere Operationen (Methoden), Operationsmethoden die kleinste Einheit des URL-Zugriffs.

Das Folgende ist die Definition der Operationsmethode eines typischen Index-Controllers, der zwei Operationsmethoden enthält:

namespace app\index\controller;
class Index 
{
  public function index()
  {
    return 'index';
  }
  public function hello($name)
  {
    return 'Hello,'.$name;
  }
}
Nach dem Login kopieren

Die Operationsmethode kann keine Parameter verwenden, sofern dies nicht optional ist Definierter Parameter, der Parameter muss über die Benutzeranforderung übergeben werden. Wenn es sich um eine URL-Anfrage handelt, wird er normalerweise über $_GET oder $_POST übergeben.

Modell

Modellklasse vervollständigt normalerweise die eigentliche Geschäftslogik und Datenkapselung und gibt formatunabhängige Daten zurück.

Die Modellklasse muss nicht unbedingt auf die Datenbank zugreifen, und im 5.0-Architekturdesign wird die Datenbankverbindung nur hergestellt, wenn der eigentliche Datenbank-Abfrage-Vorgang ausgeführt wird. Ja, eine wirklich faule Verbindung.

ThinkPHP的模型层支持多层设计,你可以对模型层进行更细化的设计和分工,例如把模型层分为逻辑层/服务层/事件层等等。

视图

控制器调用模型类后返回的数据通过视图组装成不同格式的输出。视图根据不同的需求,来决定调用模板引擎进行内容解析后输出还是直接输出。

视图通常会有一系列的模板文件对应不同的控制器和操作方法,并且支持动态设置模板目录。

驱动

系统很多的组件都采用驱动式设计,从而可以更灵活的扩展,驱动类的位置默认是放入核心类库目录下面,也可以重新定义驱动类库的命名空间而改变驱动的文件位置。

行为

行为(Behavior)是在预先定义好的一个应用位置执行的一些操作。类似于AOP编程中的“切面”的概念,给某一个切面绑定相关行为就成了一种类AOP编程的思想。所以,行为通常是和某个位置相关,行为的执行时间依赖于绑定到了哪个位置上。

要执行行为,首先要在应用程序中进行行为侦听,例如:

// 在app_init位置侦听行为
\think\Hook::listen('app_init');
Nach dem Login kopieren

然后对某个位置进行行为绑定:

// 绑定行为到app_init位置
\think\Hook::add('app_init','\app\index\behavior\Test');
Nach dem Login kopieren

一个位置上如果绑定了多个行为的,按照绑定的顺序依次执行,除非遇到中断。

命名空间

ThinkPHP5采用了PHP的命名空间进行类库文件的设计和规划,并且符合PSR-4自动加载规范。

Das obige ist der detaillierte Inhalt vonDetaillierter Überblick über die Gesamtarchitektur des thinkPHP5.0-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

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)

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Apr 03, 2025 am 12:04 AM

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Erklären Sie das Konzept der späten statischen Bindung in PHP. Erklären Sie das Konzept der späten statischen Bindung in PHP. Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Mar 31, 2025 pm 11:54 PM

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Apr 01, 2025 pm 03:12 PM

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Mar 28, 2025 pm 05:11 PM

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Mar 28, 2025 pm 05:12 PM

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

See all articles