zoukankan      html  css  js  c++  java
  • thinkphp5.0模块设计

    5.0版本对模块的功能做了灵活设计,默认采用多模块的架构,并且支持单一模块设计,所有模块的命名空间均以app作为根命名空间(可配置更改)。

    目录结构

    标准的应用和模块目录结构如下:

    ├─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            视图目录
    │  │  └─ ...            更多类库目录

    遵循ThinkPHP5.0的命名规范,模块目录全部采用小写和下划线命名。

    模块名称请避免使用PHP保留关键字(保留字列表参见 http://php.net/manual/zh/reserved.keywords.php ),否则会造成系统错误。

    其中common模块是一个特殊的模块,默认是禁止直接访问的,一般用于放置一些公共的类库用于其他模块的继承。

    模块类库

    一个模块下面的类库文件的命名空间统一以app模块名开头,例如:

    // index模块的Index控制器类
    appindexcontrollerIndex
    // index模块的User模型类
    appindexmodelUser

    其中app可以通过定义的方式更改,例如我们在应用配置文件中修改:

    'app_namespace' => 'application',

    那么,index模块的类库命名空间则变成:

    // index模块的Index控制器类
    applicationindexcontrollerIndex
    // index模块的User模型类
    applicationindexmodelUser

    更多的关于类库和命名空间的关系可以参考下一章节:命名空间。

    模块和控制器隐藏

    由于默认是采用多模块的支持,所以多个模块的情况下必须在URL地址中标识当前模块,如果只有一个模块的话,可以进行模块绑定,方法是应用的公共文件中添加如下代码:

    // 绑定当前访问到index模块
    	hinkRoute::bind('index');

    绑定后,我们的URL访问地址则变成:

    http://serverName/index.php/控制器/操作/[参数名/参数值...]

    访问的模块是index模块。

    如果你的应用比较简单,模块和控制器都只有一个,那么可以在应用公共文件中绑定模块和控制器,如下:

    // 绑定当前访问到index模块的index控制器
    	hinkRoute::bind('index/index');

    设置后,我们的URL访问地址则变成:

    http://serverName/应用入口/操作/[参数名/参数值...]

    访问的模块是index模块,控制器是Index控制器。

    单一模块

    如果你的应用比较简单,只有唯一一个模块,那么可以进一步简化成使用单一模块结构,方法如下:

    首先在应用配置文件中定义:

    // 关闭多模块设计
    'app_multi_module'  =>  false,

    然后,调整应用目录的结构为如下:

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

    URL访问地址变成

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

    同时,单一模块设计下的应用类库的命名空间也有所调整,例如:

    原来的

    appindexcontrollerIndex
    appindexmodelUser

    变成

    appcontrollerIndex
    appmodelUser

    更多的URL简化和定制还可以通过URL路由功能实现。

  • 相关阅读:
    Data Base mysql备份与恢复
    java 乱码问题解决方案
    【知识强化】第二章 物理层 2.1 通信基础
    【知识强化】第二章 进程管理 2.2 处理机调度
    【知识强化】第二章 进程管理 2.1 进程与线程
    【知识强化】第一章 操作系统概述 1.3 操作系统的运行环境
    【知识强化】第一章 网络体系结构 1.1 数据结构的基本概念
    【知识强化】第一章 网络体系结构 1.2 计算机网络体系结构与参考模型
    【知识强化】第一章 网络体系结构 1.1 计算机网络概述
    【知识强化】第一章 操作系统概述 1.1 操作系统的基本概念
  • 原文地址:https://www.cnblogs.com/chinalorin/p/5828426.html
Copyright © 2011-2022 走看看