Heim > Artikel > Backend-Entwicklung > Detailliertes Design des thinkPHP5.0-Framework-Moduls
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 视图目录 │ │ └─ ... 更多类库目录
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
wobei die App auf definierte Weise geändert werden kann: Wir ändern sie beispielsweise in der Anwendungskonfigurationsdatei:
'app_namespace' => 'application',
Dann wird der Klassenbibliotheks-Namespace des Indexmoduls zu:
// index模块的Index控制器类 application\index\controller\Index // index模块的User模型类 application\index\model\User
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 der Bindung lautet unsere URL-Zugriffsadresse:
http://serverName/index.php/控制器/操作/[参数名/参数值...]
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');
Einstellungen schließlich , unsere URL-Zugriffsadresse lautet:
http://serverName/应用入口/操作/[参数名/参数值...]
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,
Passen Sie dann die Struktur des Anwendungsverzeichnisses wie folgt an:
├─application 应用目录(可设置) │ ├─controller 控制器目录 │ ├─model 模型目录 │ ├─view 视图目录 │ ├─ ... 更多类库目录 │ ├─common.php 函数文件 │ ├─route.php 路由配置文件 │ ├─database.php 数据库配置文件 │ └─config.php 配置文件
URL-Zugriffsadresse wird zu
http://serverName/index.php(或者其它应用入口)/控制器/操作/[参数名/参数值...]
Gleichzeitig wurde auch der Namespace der Anwendungsklassenbibliothek im Einzelmoduldesign angepasst, zum Beispiel:
Das Original
app\index\controller\Index app\index\model\User
wird zu
app\controller\Index app\model\User
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!