Think PHP 5.0手册笔记

这篇博客详细介绍了ThinkPHP5.0的目录结构、开发规范、模块设计、配置文件运行原理、入口文件绑定、请求与响应处理、视图加载以及模型操作,包括数据库连接配置。内容涵盖控制器、模型、视图、配置文件等多个核心概念。
摘要由CSDN通过智能技术生成

Think PHP 5.0笔记手册

目录结构
application 应用目录(可设置)
index 模块目录 可以建立多个模块 例如 前台 后台
controller 控制器目录
model 模型目录
view 视图目录
config.php 模块配置文件
common.php 模块函数文件

command.php         命令行工具配置文件      当执行命令行的时候会读取此文件的配置
common.php          应用公共(函数)文件    此文件用于书写公共的函数(方法)可以在全局使用
config.php          应用(公共)配置文件    配置之后建立的模块会共用此配置文件
database.php        数据库配置文件	    链接收据库
tags.php            应用行为扩展定义文件    对url进行美化修改此文件的路由配置
route.php           路由配置文件            应用行为扩展  可以对框架进行扩展并不需要修改框架的源码我们可以通过向钩子  注册某些函数或者行为 来改变框架执行流程  从而引用其他扩展

extend                  扩展类库目录(可定义)  下载第三方库  之后适当的修改命名空间之后就可以使用了第三方类文件了

public                  WEB 部署目录(对外访问目录)
favicon.ico	    访问网页的时候标签页面会显示图标
static              静态资源存放目录(css,js,image)
index.php           应用入口文件 	     所有请求都必须进过此入口文件之后再进行转发
router.php          快速测试文件	     检测电脑是否安装Apache  如果没有则通过php来启动此框架
    进入到public目录下  输入  php -S localhost 8888(端口号) router.php  
    在浏览器输入  localhost:8888  进行查看  会看到框架已经启动成功
    ctrl+C  进行退出之后  在进行查看  则会无法进行访问
robots.txt	    搜索引擎爬虫文件         定义所有引擎的url是否需要爬取  例如 后台所有的url是不需要被爬取到的  而前台是允许 需要对此文件进行配置的  
.htaccess           用于 apache 的重写

runtime                 应用的运行时目录(可写,可设置)  运行时的缓存文件  日志  缓存  编译文件等

thinkphp                框架系统目录
lang                语言包目录
library             框架核心类库目录
    think           Think 类库包目录	      框架核心文件
    traits          系统 Traits 目录	      类库的扩展
tpl                系统模板目录		      框架模板文件  里面还有框架的默认模拟
    default_index.tpl      控制器模板文件
    dispatch_jump.tpl      成功失败跳转文件
    page_trace.tpl	   调试模板文件
	    think_exception.tpl    异常时的模板文件

base.php            基础定义文件    	      定义常量
composer.json       composer 定义文件         定义 composer 配置文件
console.php         控制台入口文件
convention.php      惯例配置文件	      框架配置文件
helper.php          助手函数文件(可选)

LICENSE.txt         授权说明文件
phpunit.xml         单元测试配置文件
README.md           README 文件   	      说明文件
start.php           框架引导文件	      框架启动文件

vendor   		    第三方类库目录(Composer)       通过composer安装的所有类库都会放到此文件

开发规范

目录和文件
目录使用小写+下划线
类库、函数文件统一以.php为后缀
类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致
类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名
类名和类文件名保持一致,统一采用驼峰法命名(首字母大写)

函数和类、属性命名
类的命名采用驼峰法(首字母大写),例如 User、UserType,默认不需要添加后缀,例如UserController应该直接命名为User;
函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip
方法的命名使用驼峰法(首字母小写),例如 getUserName
属性的命名使用驼峰法(首字母小写),例如 tableName、instance
以双下划线“__”打头的函数或方法作为魔术方法,例如 __call 和 __autoload

常量和配置
常量以大写字母和下划线命名,例如 APP_PATH和 THINK_PATH
配置参数以小写字母和下划线命名,例如 url_route_on 和url_convert

数据表和字段
数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段,不建议使用驼峰和中文作为数据表字段命名
应用类库命名空间规范
应用类库的根命名空间统一为app(不建议更改,可以设置app_namespace配置参数更改,V5.0.8版本开始使用APP_NAMESPACE常量定义);
例如:app\index\controller\Index和app\index\model\User

模块设计 控制器
拥有命名空间
对应的文件夹目录 app\admin\controller 应用主体\模块\文件夹名称(view controller model 等)
创建公共模块 common 不能直接访问
新建立controller和action 新建控制器和方法
想访问公共文件需要 use 将文件命名空间引入 需要用as起别名
use app\common\controller\Index as commonIndex;
调用 方法 use 引入 实例化进行调用 获取数据
重写公共的方法 继承 引入公共方法 use 引入as起别名 类继承(继承as之后的别名) 调用方法可以传递参数 重写父类

重要知识点
继承是PHP5面象对象程序设计的重要特性之一,它是指建立一个新的派生类,从一个或多个先前定义的类中继承数据和函数,而且可以重新定义或加进新数据和 函数,从而建立了类的层次或等级。
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容

重定义配置文件
配置文件运行原理
public function configdemo()
{
//模拟框架配置
$onearr=[‘username’=>‘人生得意须尽欢’];
$twoarr=[‘userpwd’=>‘莫使金撙节空对月’];
// array_merge — 合并一个或多个数组
//数组分别代表两个配置文件 会将数组中相同键的值用第二个数组的值进行替换
//数组分别代表两个配置文件 如果数组中键不同则获奖两个数组中的健及对应的值全部以数组的形式展示出来

	var_dump(array_merge($onearr,$twoarr));
}

在入口文件定义配置文件路径 与app文件平级  并建立conf文件夹(固定名称)
惯例配置  convention.php  在此文件对框架进行配置
	
应用配置  在conf文件夹新建config.php文件  对全局进行配置
可以将配置数据库单独分离新建database.php文件 对数据进行配置  注意此文件需要将一数组的方式将所有的数据库配置放在此目录 数组的方式进行配置 (惯例配置将数据库配置复制到此文件就可以了)  
此配置文件可以修改所有的惯例配置

扩展配置  在文件夹新建extra文件夹 可以新建任何的配置扩展文件 
(当扩展的配置较多的时候应用以数组的形式进行配置  扩展较少建议在config文件直接进行配置 便于维护配置信息) 
扩展的名称会默认新建的文件名称  配置扩展的优先级高于config文件的的配置

模块配置  conf新建与app模块文件夹相同的文件夹 并新建config.php文件对模块进行配置 在模块下也可以采用扩展配置  此配置只对对应的模块有效

动态配置  可以通过config类与config助手类 对某个方法进行配置  详细配置方法参考config类与config助手类

config类与config助手类
    config类 
    config()  //第一个参数键值  第二个参数值  第三各参数作用域
    获取配置 config('scopes', 'demo')
    设置配置 config('homoconfig','Just set a value', 'demo')
    检测配置 config('?scope',null,'demo');
    config助手类
    获取配置 config::get('scopes', 'demo');  //第一个参数键值  第二个参数作用域
    设置配置 config::set('homoconfig','Just set a value', 'demo');  //第一个参数键值  第二个参数值  第三各参数作用域
    检测配置 config::has('scopes', 'demo');//第一个参数键值  第二个参数作用域

入口文件
入口文件可以改变一些系统默认的配置 必须引入/…/thinkphp/start.php 引导文件并进行安全过滤
可以参考thinkphp下base.php文件
绑定入口文件
//一个参数默认指定访问的模块 页面url需要补全控制器与方法
//两个参数第一个参数指定访问的模块 第二个参数是指定访问的控制器 页面url需要补全方法
// define(‘BIND_MODULE’,‘admin’);
// define(‘BIND_MODULE’,‘admin/Admin’);
也可以重新新建入口文件 例如接口的入口文件 用户使用接口并不希望访问index.php此入口文件 而且不想让用户访问其他模块其他的模块 地址栏也不出现其他的模块
新建api.php入口文件 提供接口 直接绑定用户所要访问的模块
//定义应用目录
define(“APP_PATH”,DIR.’/…/app/’);
//定义配置文件目录
define(“CONF_PATH”,DIR.’/…/conf/’);
//绑定模块 如果文件不存 会报错
define(‘BIND_MODULE’,‘api’);
//引入start.php
require(DIR.’/…/thinkphp/start.php’);

另一种开启config配置
    //配置开启路由
    //自动绑定模块  默认访问和入口文件文件相同的模块  如果文件不存在会默认访问index Index index
    'auto_bind_module'=>true,

重写路由 美化路由
开启配置 
    //配置开启路由
    'url_route_on'	 =>true,
    //如果开启此配置所有的url都必须自己配置路由规则  默认路由规则将会失效
    'url_route_must' =>false,
在conf文件夹新建路由配置  对路由进行重写
    return [
	'newslist/:names'=>'admin/Index/newsinfo',
	// 'adminIndex/index'=>'adminIndex/index',
    ];
原路由  http://www.xiaoyangluntan.com/index.php/admin/Index/newsinfo/names/nuonuo
配置后路由  http://www.xiaoyangluntan.com/index.php/newslist/names/nuonuo

请求与响应
请求对象
//第一种方法直接获取
$request = request();
//第二种方法通过类调用静态方法获取
//引入请求
use think\Request; 此类为单例模式
//调用方法获取实例
$request = Request::instance();
//注入对象 常用
//引入请求
use think\Request;
//在当前方法 index(Request $request)

请求对象参数
    //获取浏览器的url地址信息
    //获取域名部分
    // echo $request->domain(); 
    //获取访问请求路径
    // echo $request->pathinfo(); 
    //获取访问请求真实路径
    // echo $request->path();
    //获取当前访问请求的类型
    // echo $request->method();
    //判断请求的类型 如果正确 返回bool真 否则返回bool假
    // var_dump($request->isGet());  //isPost isAjax 等
    //获取当前访问请求的传输的值  如果是get只包含?后见的传值 不包含路径中的参数
    // var_dump($request->get());  post() session()获取session cookie 获取cookie  可以单独制定获取的参数
    //获取请求路径中的参数
    // var_dump($request->p
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值