Maison > développement back-end > tutoriel php > Conception détaillée du module du framework thinkPHP5.0

Conception détaillée du module du framework thinkPHP5.0

黄舟
Libérer: 2023-03-06 19:04:01
original
1818 Les gens l'ont consulté

Cet article présente principalement le thinkPHP5.0frameworkconception de module, et décrit brièvement la thinkPHP5.0structure de répertoire, les conventions de dénomination et l'analyse sous la forme d'exemples Les principes et méthodes d'accès au module bibliothèque de classes sont expliqués. Les amis dans le besoin peuvent se référer à

Cet article décrit la conception du module du framework thinkPHP5.0 avec des exemples. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

La version 5.0 a une conception flexible pour la fonction du module. Elle adopte une architecture multi-module par défaut et prend en charge une conception de module unique. Espace de noms de tous les modulesLes deux ont l'application comme espace de noms racine (peut être modifié de manière configurable).

Structure des répertoires

La structure standard des répertoires des applications et des modules est la suivante :

├─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            视图目录
│  │  └─ ...            更多类库目录
Copier après la connexion

Suivez la convention de dénomination de ThinkPHP5.0, et tous les répertoires de modules utilisent des noms en minuscules et en traits de soulignement.

Veuillez éviter d'utiliser des mots-clés réservés PHP dans les noms de modules (voir http://php.net/manual/zh/reserved.keywords.php pour la liste des mots réservés), sinon le système des erreurs se produiront.

Le module commun est un module spécial, auquel l'accès direct est interdit par défaut. Il est généralement utilisé pour placer certaines bibliothèques de classes publiques pour l'héritage d'autres modules. .

Bibliothèque de classes de module

L'espace de noms du fichier de bibliothèque de classes sous un module commence uniformément par le nom du module d'application, par exemple :

// index模块的Index控制器类
app\index\controller\Index
// index模块的User模型类
app\index\model\User
Copier après la connexion

où L'application peut être modifiée d'une manière définie. Par exemple, on la modifie dans le fichier de configuration de l'application :

'app_namespace' => 'application',
Copier après la connexion

Ensuite, l'espace de noms de la bibliothèque de classes du module d'index devient :

// index模块的Index控制器类
application\index\controller\Index
// index模块的User模型类
application\index\model\User
Copier après la connexion

Plus Pour plus d'informations sur la relation entre les bibliothèques de classes et les espaces de noms, veuillez vous référer à l'article précédent « Explication détaillée des espaces de noms du framework ThinkPHP5.0 ».

Masquer les modules et les contrôleurs

La prise en charge multi-modules étant adoptée par défaut, le module actuel doit être identifié dans l'adresse URL s'il y a plusieurs modules. sont uniquement Pour un module, la liaison du module peut être effectuée en ajoutant le code suivant au fichier public de l'application :

// 绑定当前访问到index模块
\think\Route::bind('index');
Copier après la connexion

Après la liaison, notre adresse URL d'accès devient :

http://serverName/index.php/控制器/操作/[参数名/参数值...]
Copier après la connexion

Le module accédé est le module index.

Si votre application est relativement simple et ne comporte qu'un seul module et contrôleur, vous pouvez lier le module et le contrôleur dans le fichier public de l'application, comme suit :

// 绑定当前访问到index模块的index控制器
\think\Route::bind('index/index');
Copier après la connexion

Paramètres Enfin , notre adresse URL d'accès devient :

http://serverName/应用入口/操作/[参数名/参数值...]
Copier après la connexion

Le module accédé est le module d'index, et le contrôleur est le contrôleur d'index.

Module unique

Si votre application est relativement simple et ne comporte qu'un seul module, elle peut être encore simplifiée pour utiliser une structure de module unique comme suit :

Définissez-le d'abord dans le fichier de configuration de l'application :

// 关闭多模块设计
'app_multi_module' => false,
Copier après la connexion

Ensuite, ajustez la structure du répertoire de l'application comme suit :

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

L'adresse d'accès URL devient

http://serverName/index.php(或者其它应用入口)/控制器/操作/[参数名/参数值...]
Copier après la connexion

Dans le même temps, l'espace de noms de la bibliothèque de classes d'application sous la conception d'un module unique a également été ajusté, par exemple :

L'original

app\index\controller\Index
app\index\model\User
Copier après la connexion

devient

app\controller\Index
app\model\User
Copier après la connexion

Une simplification et une personnalisation accrues des URL peuvent également être obtenues grâce à la fonction de routage des URL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal