文档章节

新手指导Thinkphp开发指南

汤圆
 汤圆
发布于 2012/12/25 20:02
字数 1348
阅读 317
收藏 8

小编于昨日参加朋友婚礼,浑身喜气洋洋。今天给用户带来的是关于thinkphp开发指南的纯技术性的文档,本文档目的很简单:

1、  帮助开发人员掌握thinkphp入门

2、  快速利用thinkphp进行项目开发

无忧主机www.51php.com,继续沿用通俗易懂的语言风格,描述如何基于thinkphp平台进行项目的开发,并熟练掌握thinkphp平台的使用。这是一个从了解到精通thinkphp的必备的thinkphp基础使用教程。

1、 thinkphp如何创建项目文件?

使用thinkphp建立开发项目是任务开始的第一步,建立项目主要包括:thinkphp项目的目录结构、生成入口文件、配置文件等这些基本文 件。这些项目,都是以单独的目录存在,与其它项目没有直接关联性。它们包含有完整的入口文件、配置文件、缓存文件和数据、插件、日志等目录文件,还有包含 语言包,是一个有机的整体。由于各个项目的独立存在,没有关联性,我们在建立项目的时候,可以将其它项目的目录结构复制来,然后再修改,达到快速建立项目 的目录。

2、 thinkphp入口文件定义

thinkphp框架的入口文件是怎么定义的类?使用“define”命令,可以轻松帮我们搞定。由于thinkphp的入口是采用单向模式,所以 每个项目都必须有一个入口文件来执行,否则应用无法生效。那么thinkphp入口文件位置应该怎么设置类?入口文件位置设置,没有特别的要求,无论是在php虚拟主机环 境上,还是独立服务器上都可以随意设置,不会是因为用的是空间或独立服务器而有所不同,通常我们将入口文件配置放在web根目录下(可以任意位置)。 Thinkphp使用经验,程序对入口文件的操作是越少越好,防止过多的处理工作,影响系统的稳定性,增加日后的维护工作量。请看无忧主机 (www.51php.com)给大家准备的一个案例,使用的编辑器是:“ecidplus”。

将入口文件设置在web根目录上index.php文件上。

define(‘THINK_PATH’, ‘../ThinkPHP’);

define(‘WEB_ROOT’,’../’);

define(‘APP_NAME’, ‘Admin’);

define(‘APP_PATH’, ‘.’);

require(“../config.php”);

require(THINK_PATH.”/ThinkPHP.php”);

$App = new App();

$App->init();

$App->exec();

这是一个thinkphp完整入口文件代码。为了用户能充分理解意思,我将每段代码的含义做了注释。见下图

使用thinkphp建站中,还有一个用户经常关心的功能,就是多域名绑定(子域名)的问题。有的空间商提供的php虚拟主机是不支持多域名绑定的 (如:无忧主机只只支持1个域名),这个时候,我们就可以通过thinkphp的入口为文件配置来实现多域名绑定问题。请点击阅读详解thinkphp多域名(子域名)支持配置解决方案了解thinkphp多域名绑定问题。

3、  thinkphp定义数据库访问

thinkphp数据库配置文件可以采用有多种方式对MySQL、MySQLi、MsSQL、PgSQL、SqLite和Oracle这些常见数据 库进行定义配置。用户可以按照下面给出的规范,编写自己的数据库驱动方式。无忧主机(www.51php.com)对thinkphp官方技术文档整理, 将常用的三种thinkphp数据库访问的配置方法展现给大家。

A、 定义在每个WEB应用中的配置文件:

define(‘DB_TYPE’, ‘mysql’);

define(‘DB_HOST’, ‘localhost’);

define(‘DB_NAME’,’ 51php’); //数据库名称

define(‘DB_USER’,’51phpser’); //数据库访问用户名

define(‘DB_PWD’,”); //数据库访问密码

define(‘DB_PORT’,”);

B、 Thinkphp系统最常用的配置访问,官方技术文档中也推荐使用这种定义方式

$db_dsn = “mysql://username:passwd@localhost :3306/dbName”;

$db = new Db($db_dsn);

C、 数组方式定义数据库配置参数

$DSN = array(

 ’dbms’     => ‘mysql’, 

 ’username’ => ‘username’, 

 ’password’ => ‘password’, 

 ’hostname’ => ‘localhost’, 

 ’hostport’ => ’3306′, 

 ’database’ => ‘dbname’

 );

$db = new Db($DSN);

注释B和C中的参数含义:username 数据库访问用户,passwd数据库访问密码,localhohst本地访问方式,dbname数据库密码,3306是mysql数据库默认访问端口。

4、  thinkphp系统调试命令

在thinkphp系统中,用户可以有很多选择对程序进行排错差错处理,方便程序员对项目进行排错分析。在thinkphp框架中,可以使用如下命令,对程序进行调试:

halt($msg)  //输出错误信息,并中止执行

system_out($msg) //输出调试信息到日志文件

dump($var, $label=null, $echo=true)  //输出变量信息

__DEBUG_START($label=”) //记录调试开始时间

__DEBUG_END($label=”)  //输出调试范围运行时间(相同label属于一个调试范围)

get_include_contents($filename) //获取载入文件的内容

除此之外,用户还可以使用debug类来进行更加详细的程序调试处理,这些调试方法,可以方便的达到程序调试、排错的目的,极大的提高了用户的工作效率,节约开发时间。

5、为方便用户使用thinkphp建站开发,无忧主机(51php.com)将thinkphp常用系变量名整理出来,用户在开发过程中方便引用。


本文转载自:http://www.51php.com/thinkphp/951.html

汤圆
粉丝 6
博文 92
码字总数 45367
作品 0
南昌
私信 提问
加载中
「ThinkPHP开发者周刊」第8期——模型和关联

[ 本周读数 ] ——ThinkPHP官方公众号关注数 截至目前为止,ThinkPHP官方公众号(@thinkphp2012)用户订阅数超过(均为自然增长)。由于之前一直缺乏有效的运营而增长缓慢,现每周都会推送最...

流年
2018/11/26
146
0
thinkphp作为国内PHP第一框架,为什么有那么多人喷呢,具体问题出在哪?

如标题,一般PHP新手入门的第一个框架会选择thinkPHP,为什么,因为它简单易学,文档丰富,用的人多,案例也多,但是工作过几年的PHP一般都会不屑用thinkPHP框架,感觉不上档次。thinkPHP作为...

程序兵
2017/02/10
2.4K
19
适合PHP新手入门上手的开发框架-thinkphp

ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。早期的思想...

big_cat
2013/06/15
1K
0
「ThinkPHP开发者周刊」第15期——ThinkPHP十三周年专刊

[ 本周读数 ] —— ThinkPHP十三周年庆 1月15日是ThinkPHP发布13周年纪念,真的是十年弹指一挥间,这个国民PHP框架是如何诞生和发展起来的,来看看ThinkPHP十三周年的报告吧! [ 新闻/资讯 ...

流年
01/15
198
1
急求:linux服务器上xampp环境下使用thinkphp3.2.3连接不到mysql

大神过来看一下哈,我本地用的是window xp系统,wampserver的环境,thinkphp框架,编写的一个小网站,上传到linux服务器上面,就打不开了,会出现如下的错误: :( SQLSTATE[HY000] [2002] Co...

kuangkuang1
2015/11/14
4.1K
10

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部