Heim > Backend-Entwicklung > PHP-Tutorial > Detailliertes Design des thinkPHP5.0-Framework-Moduls

Detailliertes Design des thinkPHP5.0-Framework-Moduls

黄舟
Freigeben: 2023-03-06 19:04:01
Original
1815 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich das thinkPHP5.0FrameworkModuldesign vor und beschreibt kurz die thinkPHP5.0Verzeichnisstruktur, die Namenskonventionen und die Analyse im Formular von Beispielen Die Prinzipien und Zugriffsmethoden der Modul-Klassenbibliothek werden erläutert

Dieser Artikel beschreibt das ThinkPHP5.0-Framework-Moduldesign mit Beispielen. Teilen Sie es als Referenz mit allen:

Version 5.0 verfügt standardmäßig über ein flexibles Design für die Funktion des Moduls und unterstützt ein einzelnes Moduldesign Namespace aller ModuleBeide verwenden app als Root-Namespace (konfigurierbare Änderung).

Verzeichnisstruktur

Die Standardanwendungs- und Modulverzeichnisstruktur ist wie folgt:

├─application           应用目录(可设置)
│  ├─common             公共模块目录(可选)
│  ├─common.php         公共函数文件
│  ├─route.php          路由配置文件
│  ├─database.php       数据库配置文件
│  ├─config.php         应用配置文件
│  ├─module1            模块1目录
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块函数文件
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  ├─view            视图目录
│  │  └─ ...            更多类库目录
│  │
│  ├─module2            模块2目录
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块函数文件
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  ├─view            视图目录
│  │  └─ ...            更多类库目录
Nach dem Login kopieren

Folgen Sie der Namenskonvention von ThinkPHP5.0 und Alle Modulverzeichnisse verwenden Namen in Kleinbuchstaben und mit Unterstrichen.

Bitte vermeiden Sie andernfalls die Verwendung von PHP-reservierten Schlüsselwörtern im Modulnamen (siehe http://php.net/manual/zh/reserved.keywords.php für die Liste der reservierten Wörter). Dies führt zu Systemfehlern.

Das gemeinsame Modul ist ein spezielles Modul, auf das standardmäßig kein direkter Zugriff möglich ist. Es wird im Allgemeinen verwendet, um einige öffentliche Klassenbibliotheken zur Vererbung anderer Module zu platzieren .

Modulklassenbibliothek

Der Namespace der Klassenbibliotheksdatei unter einem Modul beginnt einheitlich mit dem App-Modulnamen, zum Beispiel:

// index模块的Index控制器类
app\index\controller\Index
// index模块的User模型类
app\index\model\User
Nach dem Login kopieren

wobei die App auf definierte Weise geändert werden kann: Wir ändern sie beispielsweise in der Anwendungskonfigurationsdatei:

'app_namespace' => 'application',
Nach dem Login kopieren

Dann wird der Klassenbibliotheks-Namespace des Indexmoduls zu:

// index模块的Index控制器类
application\index\controller\Index
// index模块的User模型类
application\index\model\User
Nach dem Login kopieren

Mehr Weitere Informationen zur Beziehung zwischen Klassenbibliotheken und Namespaces finden Sie im vorherigen Artikel „Detaillierte Erläuterung der ThinkPHP5.0 Framework-Namespaces“.

Module und Controller ausblenden

Da die Unterstützung mehrerer Module standardmäßig übernommen wird, muss das aktuelle Modul in der URL-Adresse identifiziert werden, wenn mehrere Module vorhanden sind Nur für ein Modul kann die Modulbindung durch Hinzufügen des folgenden Codes zur öffentlichen Datei der Anwendung erfolgen:

// 绑定当前访问到index模块
\think\Route::bind('index');
Nach dem Login kopieren

Nach der Bindung lautet unsere URL-Zugriffsadresse:

http://serverName/index.php/控制器/操作/[参数名/参数值...]
Nach dem Login kopieren

Das Modul, auf das zugegriffen wird, ist das Indexmodul.

Wenn Ihre Anwendung relativ einfach ist und nur ein Modul und einen Controller hat, können Sie das Modul und den Controller wie folgt in die öffentliche Datei der Anwendung binden:

// 绑定当前访问到index模块的index控制器
\think\Route::bind('index/index');
Nach dem Login kopieren

Einstellungen schließlich , unsere URL-Zugriffsadresse lautet:

http://serverName/应用入口/操作/[参数名/参数值...]
Nach dem Login kopieren

Das Modul, auf das zugegriffen wird, ist das Indexmodul, und der Controller ist der Indexcontroller.

Einzelnes Modul

Wenn Ihre Anwendung relativ einfach ist und nur ein Modul enthält, kann die Verwendung einer Einzelmodulstruktur wie folgt weiter vereinfacht werden:

Definieren Sie es zunächst in der Anwendungskonfigurationsdatei:

// 关闭多模块设计
'app_multi_module' => false,
Nach dem Login kopieren

Passen Sie dann die Struktur des Anwendungsverzeichnisses wie folgt an:

├─application        应用目录(可设置)
│  ├─controller      控制器目录
│  ├─model           模型目录
│  ├─view            视图目录
│  ├─ ...            更多类库目录
│  ├─common.php      函数文件
│  ├─route.php       路由配置文件
│  ├─database.php    数据库配置文件
│  └─config.php      配置文件
Nach dem Login kopieren

URL-Zugriffsadresse wird zu

http://serverName/index.php(或者其它应用入口)/控制器/操作/[参数名/参数值...]
Nach dem Login kopieren

Gleichzeitig wurde auch der Namespace der Anwendungsklassenbibliothek im Einzelmoduldesign angepasst, zum Beispiel:

Das Original

app\index\controller\Index
app\index\model\User
Nach dem Login kopieren

wird zu

app\controller\Index
app\model\User
Nach dem Login kopieren

Eine weitere URL-Vereinfachung und -Anpassung kann auch durch die URL-Routing-Funktion erreicht werden.

Das obige ist der detaillierte Inhalt vonDetailliertes Design des thinkPHP5.0-Framework-Moduls. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle: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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage