Skip to main content
 Web开发网 » 站长学院 » Thinkphp教程

thinkphp 模块操作

2021年08月01日5830百度已收录

转载:

  默认模块和操作

  如果使用操作。也就是说:

  和

  以及

   等效。

  可以在项目配置文件中修改默认模块和默认操作的名称。

  模块分组

  模块分组功能是为了更好的组织已有的模块,并且增加项目容量的一个有效机制。分组功能可以把以往的多项目合并到一个项目中去,这样一来,之前需要采用跨项目操作的地方,现在因为在一个项目中从而免去了不少麻烦,并且公共文件的重用也方便了,并且每个分组都可以有自己独立的配置文件、公共文件、语言包,在URL的访问上面也非常清晰。

  要启用分组模块非常简单,配置下APP_GROUP_LIST参数和DEFAULT_GROUP参数即可。

  例如我们把当前的项目分成Home和Admin两个组,分别表示前台和后台功能,那么只需要进行下面的配置:

   'APP_GROUP_LIST'=>'Admin,Home',

   'DEFAULT_GROUP'=>'Home',

  需要注意的是,一定要把上面的配置参数放入项目的配置文件,而不是项目的分组配置或者模块配置文件。多个分组之间用逗号分隔即可,默认分组只允许设置一个。

  在我们启用项目分组之前,由于使用的两个项目,所以URL地址分别是:

  项目地址

  项目地址

  采用了分组模式后,URL地址变成:

  

  如果Home是默认分组的话 还可以变成

  

  如果设置了隐藏index.php的话,两者的URL表现效果基本上是一致的,但是从管理和公共调用的角度来看,确实方便了不少。当使用分组模式时,目录结构只是做了一点小小的扩展,主要区别在于项目类库目录和模板目录下面多了一层分组目录。

  如果不使用分组模式的话,Action目录下面应该是所有的Action类库,现在我们可以在Action目录下面创建自己的分组目录,例如我们把当前项目分成了Home和Admin两个组,那么就需要在Action目录下面创建Home和Admin目录,然后把属于各自的Action类库放到对应的目录下面。如果某个Action类库是每个分组都需要使用或者公共继承的话,可以把这个公共Action类库放到分组目录之外,并且利用ThinkPHP的自动加载机制无需手动引入。

  使用了模块分组后,如果需要实例化其他分组的模块类,可以使用:

  A('Home.User');// 实例化Home分组的UserAction类

  对于分组模式下面的Model类库是否需要分组完全看项目的需要,由于通常不同的分组对应的数据表是相同的,因此,我们推荐Model类库不分组存放,仍然保留之前的方式,无论是什么分组都公共调用Model类库。如果确实需要分组的话,仍然可以按照Action的方式,在Model目录下面创建Home和Admin目录,然后放入对应的Model类库,采用这种方式的话,模型类的调用方法有所区别。

  如果模型类也分组存放,在使用D方法调用的时候需要使用:

  $User = D('Home.User');// 实例化Home分组下面的UserModel类

  模板文件的分组和Action类库分组也基本类似,在原来的模板主题目录下面增加一个分组目录即可。

  例如:

  Tpl/default/Home/Index/index.html

  Tpl/default/Admin/User/index.html

  相比之前的模板文件位置就是多了一个分组目录Home和Admin,如果觉得目录结构太深了,可以配置 TMPL_FILE_DEPR参数 来减少目录层次,该参数默认是 “/”,如果改成

   'TMPL_FILE_DEPR'=>'_'

  那么分组的模板文件就变成了

  Tpl/default/Home/Index_index.html

  Tpl/default/Admin/User_index.html

  分组模块的概念,并不局限于将项目区分为前台和后台。你可以按自己所需类型,进行明确细致的区分,这样非常方便于项目管理和开发部署。

  分组模块下面的具体模块和之前的模块功能没有任何区别,已有的URL和模块功能都可以很好的支持,例如空模块、空操作、伪静态等等。

  更多的关于分组模式下面URL方面的区别可以查看URL生成部分的U方法的使用。

评论列表暂无评论
发表评论
微信