ThinkPHP5.0框架学习

一 、 什么是php框架

php框架有助于促进应用开发,不但节省开发时间,有助于建立更为稳定的应用,而且减少了重复代码的开发。

目录结构

初始的目录结构如下:

www  WEB部署目录(或者子目录)

├─application          应用目录

│  ├─common            公共模块目录(可以更改)

│  ├─module_name        模块目录

│  │  ├─common.php      模块函数文件

│  │  ├─controller      控制器目录

│  │  ├─model          模型目录

│  │  ├─view            视图目录

│  │  └─ ...            更多类库目录

│  │

│  ├─command.php        命令行定义文件

│  ├─common.php        公共函数文件

│  └─tags.php          应用行为扩展定义文件

├─config                应用配置目录

│  ├─module_name        模块配置目录

│  │  ├─database.php    数据库配置

│  │  ├─cache          缓存配置

│  │  └─ ...           

│  │

│  ├─app.php            应用配置

│  ├─cache.php          缓存配置

│  ├─cookie.php        Cookie配置

│  ├─database.php      数据库配置

│  ├─log.php            日志配置

│  ├─session.php        Session配置

│  ├─template.php      模板引擎配置

│  └─trace.php          Trace配置

├─route                路由定义目录

│  ├─route.php          路由定义

│  └─...                更多

├─public                WEB目录(对外访问目录)

│  ├─index.php          入口文件

│  ├─router.php        快速测试文件

│  └─.htaccess          用于apache的重写

├─thinkphp              框架系统目录

│  ├─lang              语言文件目录

│  ├─library            框架类库目录

│  │  ├─think          Think类库包目录

│  │  └─traits          系统Trait目录

│  │

│  ├─tpl                系统模板目录

│  ├─base.php          基础定义文件

│  ├─console.php        控制台入口文件

│  ├─convention.php    框架惯例配置文件

│  ├─helper.php        助手函数文件

│  ├─phpunit.xml        phpunit配置文件

│  └─start.php          框架入口文件

├─extend                扩展类库目录

├─runtime              应用的运行时目录(可写,可定制)

├─vendor                第三方类库目录(Composer依赖库)

├─build.php            自动生成定义文件(参考)

├─composer.json        composer 定义文件

├─LICENSE.txt          授权说明文件

├─README.md            README 文件

├─think                命令行入口文件

一、 URL访问

在没有定义路由的情况下典型的URL访问规则是:

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

开发规范


1、目录和文件

1. 目录使用小写+下划线;

2. 类库、函数文件统一以.php为后缀;

3. 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;

4. 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);

2、函数和类、属性命名

1. 类的命名采用驼峰法(首字母大写),例如User、UserType,默认不需要添加后缀,例如UserController应该直接命名为User;

2. 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如get_client_ip;

3. 方法的命名使用驼峰法(首字母小写),例如getUserName

4. 类的命名采用驼峰法(首字母大写),例如User、UserType,默认不需要添加后缀,例如UserController应该直接命名为User;

3、常量和配置

1. 常量以大写字母和下划线命名,例如APP_PATH;

2. 配置参数以小写字母和下划线命名,例如url_route_on和url_convert;

4、数据表和字段

数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段,不建议使用驼峰和中文作为数据表及字段命名。

5、应用类库名空间规范

应用类库的根命名空间统一为app(可以设置app_namespace配置参数更改);例如:app\index\controller\Index 和app\index\model\User;

6、避免使用PHP保留字作为常量。


二、请求


1、请求信息

Request对象的作用是与客户端交互,收集客户端的From、Cookie、超链接,或者收集服务器端的环境变量。

2、获取URL信息

3、变量获取

变量获取使用\thinkk\Request类的如下方法及参数:

变量类型方法包括:

方法                                                                     含义

host                                                                      当前访问域名或者IP

scheme                                                                 当前访问协议

port                                                                        当前访问的端口

remotePort                                                            当前请求的REMOTE_PORT

protocol                                                                  当前请求的SERVER_PROTOCOL

contentType                                                            当前请求的CONTENT_TYPE

domain                                                                    当前包含协议的域名

subDomain                                                              当前访问的子域名

panDomain                                                              当前访问的泛域名

rootDomain                                                              当前访问的根域名(V5.1.6+)

url                                                                            当前完整URL

baseUrl                                                                    当前URL(不含QUERY_STRING)

query                                                                       当前请求的QUERY_STRING参数

baseFile                                                                   当前执行的文件

rootURL                                                                   访问根地址

rootUrlURL                                                              访问根目录

pathinfo                                                                    当前请求URL的pathinfo信息(含URL后缀)

path                                                                         请求URL的pathinfo信息(不含URL后缀)

ext                                                                           当前URL的访问后缀

time                                                                         获取当前请求的时间

type                                                                        当前请求的资源类型

method                                                                   当前请求类型


三、数据库

db助手函数默认会每次重新连接数据库,因此应当尽量避免多次调用。

注意:使用db助手函数默认每次都会重新连接数据库,而使用Db::name 或者Db::table方法的话都是单例。db函数如果需要采用相同的链接,可以传入第三个参数,例如:

db('user',[],false)->where('id',1)->find();

db('user',[],false)->where('status',1)->select();

上面的方式会使用同一个数据库连接,第二个参数为数据库连接参数,留空表示采用数据库配置文件的配置。

四、查询数据

select()方法用于查询数据集,如果成功,返回的是一个二维数组,如果没有成功则返回空数组,find()方法用于查找满足条件的第一个记录,如果成功,返回一个一维数组,没有满足条件返回null。

你可能感兴趣的:(ThinkPHP5.0框架学习)