Maison >développement back-end >tutoriel php >Conception détaillée du module du framework thinkPHP5.0
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 视图目录 │ │ └─ ... 更多类库目录
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
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',
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
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');
Après la liaison, notre adresse URL d'accès devient :
http://serverName/index.php/控制器/操作/[参数名/参数值...]
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');
Paramètres Enfin , notre adresse URL d'accès devient :
http://serverName/应用入口/操作/[参数名/参数值...]
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,
Ensuite, ajustez la structure du répertoire de l'application comme suit :
├─application 应用目录(可设置) │ ├─controller 控制器目录 │ ├─model 模型目录 │ ├─view 视图目录 │ ├─ ... 更多类库目录 │ ├─common.php 函数文件 │ ├─route.php 路由配置文件 │ ├─database.php 数据库配置文件 │ └─config.php 配置文件
L'adresse d'accès URL devient
http://serverName/index.php(或者其它应用入口)/控制器/操作/[参数名/参数值...]
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
devient
app\controller\Index app\model\User
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!