ThinkPHP安装和设置


Posted in PHP onJuly 27, 2015

前提:此教程适用于ThinkPHP 3.2+

今天起的以后几天,将放出ThinkPHP的系列教程,一共七篇,需要的同学可以自行点赞收藏。

1.安装

安装ThinkPHP的方法很多,你可以直接到ThinkPHP的官网去下载,下载完之后直接解压就可以了;或者你也可以到ThinkPHP官方维护的Git地址下载

JB51: https://3water.com/codes/10795.html

Github: https://github.com/liu21st/thinkphp

Oschina: http://git.oschina.net/liu21st/thinkphp.git

Code: https://code.csdn.net/topthink2011/ThinkPHP

当然,作为一个流行的PHP框架,你也可以直接用composer来安装:

composer create-project topthink/thinkphp your-project-name

2. 设置

上面的安装看看就可以,因为实验楼已经安装好ThinkPHP了。所以我们现在开始学习ThinkPHP第一步:设置ThinkPHP。一个框架的原始模样可能无法满足你的开发需求,但你可以通过设置来满足。在学习ThinkPHP的配置的时候,首先要明白:ThinkPHP框架中所有配置文件的定义格式都是采用返回PHP数组的方式来定义的

<?php

return array(
  'URL_ROUTER_ON'  => true,
  'URL_ROUTE_RULES'=>array(

  'blogs/:id'        => array('Index/read'),
  'article/:id'        => array('Article/show')
),
  'URL_MAP_RULES'=>array(
  'new/top' => 'Index/top?type=top'
),

  'DB_TYPE'        => 'mysql',
  'DB_HOST'        => 'localhost',
  'DB_NAME'        => 'thinkdatabase',
  'DB_USER'        => 'root',
  'DB_PWD'        => 'password',
  'DB_PORT'        => '3306',
  'DB_PREFIX'       => 'think_',

);

说明:ThinkPHP的配置参数(一级参数)是不区分大小写的,因为不管大写小写,最后都会转为小写。但是为了在编程的过程中更符合规范,建议统一使用大写来设置配置参数。上面的第一个配置URL_ROUTER_ON,我们开启了路由重写功能,为后面的URL_ROUTE_RULES奠定基础(详细的后面我们会在路由章节说到)。最后几个带DB_的设置项是表示设置连接数据库的参数,几乎每一个web应用都会用到数据库,这些设置为我们后续进一步学习的基础。

<?php

 return array(
  'USER_CONFIG'    => array(
    'USER_AUTH' => true,
    'USER_TYPE' => 2,
  ),
);

如上面的USER_CONFIG下的USER_AUTH和USER_TYPE是区分大小写的。

了解了ThinkPHP的配置格式后,我们再看看ThinkPHP的配置加载顺序,理解配置项的加载顺序在开发的时候很重要,因为在同名的配置下,后加载的配置会覆盖前面加载的顺序,而生效的只有后加载的顺序。

惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置->动态配置

上面的顺序就是ThinkPHP的配置加载顺序,而在一般情况下,这些配置都是自动加载的。我们最常操作的是应用配置,默认的就是在Application/Common/Conf/config.php文件中。在开发的时候我们可以在这里设置自己的配置,如果你不熟悉你可以配置什么值,你可以打开ThinkPHP/Conf/convention.php文件来查看相对应的配置项

读取配置

在开发的过程中,我们有时候需要读取应用的配置值,在ThinkPHP中统一使用C('配置参数名')来读取配置。比如:

$model = C('URL_MODEL');

或者

$model = C('url_model');

这两个是等效的,都是可以读取到系统的URL访问模式的设置值,因为在ThinkPHP的配置项是不分大小写的。但是建议统一使用大写方式。

可以利用config首字母来记忆C()方法。

以上就是关于THINKPHP的安装与配置的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
Godaddy空间Zend Optimizer升级方法
May 10 PHP
PHP的简易冒泡法代码分享
Aug 28 PHP
基于php split()函数的用法详解
Jun 05 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
Jul 01 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
使用phpstorm和xdebug实现远程调试的方法
Dec 29 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
php 判断过去离现在几年的函数(实例代码)
Nov 15 PHP
PHP查询分页的实现代码
Jun 09 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
Jun 19 PHP
教你在PHPStorm中配置Xdebug
Jul 27 #PHP
关于PHP开发的9条建议
Jul 27 #PHP
Laravel 中获取上一篇和下一篇数据
Jul 27 #PHP
php实现将Session写入数据库
Jul 26 #PHP
php检测文本的编码
Jul 26 #PHP
PHP中COOKIES使用示例
Jul 26 #PHP
PHP实现简单数字分页效果
Jul 26 #PHP
You might like
PHP安全防范技巧分享
2011/11/03 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
2016/07/22 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
python利用MethodType绑定方法到类示例代码
2017/08/27 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python3实现字符串操作的实例代码
2019/04/16 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
康帕斯酒店预订:Compass Hospitality(支持中文)
2018/08/23 全球购物
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
编辑找工作求职信分享
2014/01/03 职场文书
企业形象策划方案
2014/05/29 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
关于Python中*args和**kwargs的深入理解
2021/08/07 Python
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js