美文网首页
ThinkPHP笔记

ThinkPHP笔记

作者: ResearchWorld | 来源:发表于2016-09-12 19:52 被阅读0次

基础

文件目录

www WEB部署目录(或者子目录)
├─index.php 入口文件,保留在www目录
├─README.md README文件,可删除
├─Application 应用目录,为了安全,可放置www之外
├─Public 资源文件目录,保留在www目录
└─ThinkPHP 框架目录,为了安全,可放置www之外

入口文件

作用:
定义框架路径、项目路径(可选)
定义调试模式和应用模式(可选)
定义系统相关常量(可选)
载入框架入口文件(必须)

控制器

控制器类的命名方式是:控制器名(驼峰法,首字母大写)+Controller
控制器文件的命名方式是:类名+class.php(类文件后缀)


配置文件

配置文件格式

ThinkPHP框架中默认所有配置文件的定义格式均采用返回PHP数组的方式,格式为:

//项目配置文件
return array(
    'DEFAULT_MODULE'     => 'Index', //默认模块
    'URL_MODEL'          => '2', //URL模式
    'SESSION_AUTO_START' => true, //是否开启session
    'USER_CONFIG'        => array(
        'USER_AUTH' => true,
        'USER_TYPE' => 2,
    ),
    //更多配置参数
);

配置加载

配置加载顺序,右边最大
惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置->动态配置

模式配置(可选)

如果使用了普通应用模式之外的应用模式的话,还可以为应用模式(后面会有描述)单独定义配置文件,文件命名规范是: Application/Common/Conf/config_应用模式名称.php(仅在运行该模式下面才会加载)。
模式配置文件是可选的

调试配置(可选)

如果开启调试模式的话,则会自动加载框架的调试配置文件(位于ThinkPHP/Conf/debug.php)和应用调试配置文件(位于Application/Common/Conf/debug.php)

状态配置(可选)
每个应用都可以在不同的情况下设置自己的状态(或者称之为应用场景),并且加载不同的配置文件。
举个例子,你需要在公司和家里分别设置不同的数据库测试环境。那么可以这样处理,在公司环境中,我们在入口文件中定义:
define('APP_STATUS','office');
那么就会自动加载该状态对应的配置文件(位于Application/Common/Conf/office.php)。

读取配置

C方法的使用

$get = C('配置属性名');
// 如果my_config尚未设置的话,则返回default_config字符串
C('my_config',null,'default_config');
//获取用户配置中的用户类型设置
C('USER_CONFIG.USER_TYPE');

动态配置

就是给配置参数赋予一个新的值
C('参数名称','新的参数值')

扩展配置

'LOAD_EXT_CONFIG' => 'user,db',
如果在模块(假设是Home模块)的配置文件中配置的话,则会自动加载模块目录下面的配置文件 Application/Home/Conf/user.php和Application/Home/Conf/db.php.

如果配置文件改成:

//加载扩展配置文件'LOAD_EXT_CONFIG' =>array('USER'=>'user','DB'=>'db'),
则最终获取用户参数的方式改成:
C('USER.USER_AUTH_ID');

批量配置

$config=array('WEB_SITE_TITLE'=>'ThinkPHP','WEB_SITE_DESCRIPTION'=>'开源PHP框架');
C($config);```

---

#架构
**URL访问规则**
http://serverName/index.php(或者其他应用入口文件)/模块/控制器/操作/[参数名/参数值...]

**自动生成模块目录、控制器、模型**

// 绑定Admin模块到当前入口文件
define('BIND_MODULE','Admin');
// 绑定Index控制器到当前入口文件
define('BIND_CONTROLLER','Index');
//第一种,生成更多控制器类的方法
define('BUILD_CONTROLLER_LIST','Index,User,Menu');
//第二种,生成更多控制器类的方法, 如果已经存在则不会重新生成。
\Think\Build::buildController('Admin','Role');
//第一种,生成模型类的方法
define('BUILD_MODEL_LIST','User,Menu');
//第二种,生成模型类的方法
\Think\Build::buildModel('Admin','Role');
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';


**禁止访问模块**

// 设置禁止访问的模块列表
'MODULE_DENY_LIST' => array('Common','Runtime','Api'),


**设置访问列表**

'MODULE_ALLOW_LIST' => array('Home','Admin','User'),
'DEFAULT_MODULE' => 'Home',


**单模块设计**
如果你的应用够简单,那么也许仅仅用一个模块就可以完成,那么可以直接设置:

// 关闭多模块访问
'MULTI_MODULE' => false,
'DEFAULT_MODULE' => 'Home',
一旦关闭多模块访问后,就只能访问默认模块(这里设置的是Home)。


##多层MVC

相关文章

  • 学习thinkPHP的笔记

    学习thinkPHP的笔记 thinkPHP的文件结构的介绍 thinkPHP核心文件的介绍├─ThinkPHP....

  • think-queue之redis

    [TOC] thinkphp-queue 笔记 前言 当前笔记中的内容针对的是 thinkphp-queue 的 ...

  • thinkPHP学习笔记之基础概念(一)

    这里记录的是本人学习的thinkPHP笔记官方开发手册http://document.thinkphp.cn/ma...

  • 转载 thinkphp-queue在使用过程中 遇到的一个教训

    thinkphp-queue在使用过程中 遇到的一个教训thinkphp-queue 笔记 在项目中我们使用了适合...

  • ThinkPhp 笔记

    控制器 新建控制器的定义 1/声明命名空间 app\模块\controller 2/控制器文件名首字母大写,采用驼...

  • ThinkPHP笔记

    基础 文件目录 www WEB部署目录(或者子目录)├─index.php 入口文件,保留在www目...

  • Thinkphp 笔记

    模型 模型where 关联模型支持field 加了field如何显示with内容 只需要在原语句的field中加入...

  • PHP全栈学习笔记20

    thinkphp概述,thinkphp项目构建流程,thinkphp项目结构,thinkphp配置,thinkph...

  • PHP全栈学习笔记20

    thinkphp概述,thinkphp项目构建流程,thinkphp项目结构,thinkphp配置,thinkph...

  • ThinkPHP笔记-模型

    模型定义 ThinkPHP中的模型类主要用于操作数据表。 模型类通常需要继承系统的\Think\Model类或其子...

网友评论

      本文标题:ThinkPHP笔记

      本文链接:https://www.haomeiwen.com/subject/ednpettx.html