本文简要的介绍了如何从无到有的创建一个基于thinkphp框架的项目,并对项目进行相应的配置以及一些基本原理的介绍,在介绍的过程中涉及到的具体内容都可以去thinkphp官方网站下载核心包或者完全包、帮助文档进行学习.
那这里工程中我们可以直接下载核心包即可,可以将该包解压放置在任何位置,只要我们的项目能够访问得到,假设我们的项目在coomy文件夹下,统计目录放核心文件夹名为thinkphp.
入口文件
首次访问项目时访问的php文件,在开始项目之前,可以在任意位置创建一个php文件,在该文件中引入thinkphp核心文件,并自动生成项目目录,在浏览器中访问该入口文件后,弹出“Hello!欢迎使用thinkPHP!”的页面说明项目创建成功,下面的示例在coomy文件夹中创建create.php文件,并加入以下代码:
require '../thinkphp/ThinkPHP.php';
App::run();
这样在浏览器中访问http://localhost/coomy/create.php后,便会发现目录coomy中生成了以下文件夹:
|—-Common 公共函数区
控制器用来接收用户的输入,并调用模型和视图去完成用户的需求,模型则定义了一个网站的数据库相关业务逻辑,这是MVC框架的基本概念,这里不做过多介绍.
URL访问说明
http://localhost/index.php/ActionName/FunctionName
以上URL表示访问项目下的ActionName控制器下的FunctionName函数,那么接下来就只要创建控制器就行了.
创建控制器:
定义类文件—定义类方法,存放位置Lib/Action.
命名规则:
控制器名+Action.class.php
那我们直接在Lib/Action文件夹中创建一个CoomyAction.class.php文件,并打开文件创建控制器:
- class CoomyAction extends Action{
- function index(){
- echo "hello world!";
- }
- function hello(){
- echo "hello php";
- }
- }
由此创建之后,假如我们想要输出”hello php”,则可以通过localhost/index.php/coomy/hello即可,如果想输出”hello world!”的话,则直接通过localhost/index.php/coomy即可,因为index函数是默认的.
注意:index.php必须是入口文件,命名可以随意
项目配置文件
thinkphp所有配置项的默认值都在其核心代码的Common/convention.php中,而如果我们想要自定义的话,则可以在我们的项目目录中找到Conf文件夹下的config.php,并在该文件中对我们的项目进行配置,如数据库连接配置:
- true, // 是否开启调试模式
- 'DB_TYPE' => 'mysql', // 数据库类型
- 'DB_HOST' => 'localhost', // 服务器地址
- 'DB_NAME' => 'test', // 数据库名
- 'DB_USER' => 'root', // 用户名
- 'DB_PWD' => '', // 密码
- 'DB_PORT' => 3306, // 端口
- 'DB_PREFIX' => '', // 数据库表前缀
- 'DB_SUFFIX' => '', // 数据库表后缀
- 'DB_FIELDTYPE_CHECK' => false, // 是否进行字段类型检查
- 'DB_FIELDS_CACHE' => true, // 启用字段缓存
- 'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8
- 'DB_DEPLOY_TYPE' => 0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
- 'DB_RW_SEPARATE' => false, // 数据库读写是否分离 主从式有效
- );
- ?>
以上便对我们的项目数据库进行了配置,有了这些配置之后,我们便可以在控制器中,对数据库进行添删改操作了,如:
- M(“tableName”)->add($data) //向tableName表中插入data数据
- M(“tableName”)->save($data) //向tableName表中更新data数据
- M(“tableName”)->select() //读取tableName表中的数据
- M(“tableName”)->delete($id) //从tableName表中删除id=$id的数据
使用模板
说了半天,都是和数据库交互的,这一般都是后台的代码,那前台的代码写在哪里?当然,是在模板中,模板使一个页面的UI和响应处理程序分隔开来,使他们各行其道,这也正是MVC的精髓吧,在ThinkPHP中,模板与控制器是要一一对应的.
存放位置:模板存放于Tpl/default目录之下;
命名规则(对应):建立一个与控制器齐名的文件夹,在其中建立一个与控制器函数齐名的html文件;
localhost/Lib/Action/TestAction.class.php (function myTestFun..)
localhost/Tpl/test/mytestfun.html
使用模板:在控制器的任意函数中调用display()方法,即可通过url访问该函数显示模板,那进一步我们也就可以在模板函数中,对数据进行处理或者控制模板的输出了.
除此之外,thinkphp还内置了模板引擎,支持很多模板标签,如变量标签,我们可以在HTML文件的任意位置使用{$attriName}类似的标签,来从后台控制器中获取值,那在控制器中则需要指派该变量,最简单的方法则是通过属性指派:
1 $this->attriName = "value";
如此,模板引擎便会通过变量输出attriName,如此一来,模板负责显示变量,而控制器负责处理.我们便可以通过thinkphp开始我们的开发了.