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

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

黄舟
黄舟original
2017-03-20 09:09:491762parcourir

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!

Déclaration:
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