ThinkPHP使用步骤

ThinkPHP使用步骤

ThinkPHP是一个框架:MVC(采用面向对象思想)框架

市面上常用的框架:

zend framework yii thinkPHP

ThinkPHP: 有完善的中文资料,使用相对来说比较多

1.

下载ThinkPHP

解压之后生成两个文件:ThinkPHP是我们需要的核心代码,Examples

是例子

2、把THinkPHP复制到www文件夹中,然后新建一个index.php文件(与ThinkPhp同级文件夹)

1.

写上:

require("ThinkPHP/ThinkPHP.php");//根据参数的不同,ThinkPHP.php中设置了,会跳转到IndexAction.class.php(这里没有参数)

?>

3、如果在index.php中写:

define('APP_PATH','APP/');//添加这个生产的文件会到App文件中

define('APP_DEBUG',true);//调试模式不生成缓存文件

require("ThinkPHP/ThinkPHP.php");

?>

刚开始就有ThinkPHP,index.php新建一个App,Public文件夹

运行index.php会在App中生成许多文件夹,不会再与ThinkPHP同级文件夹生成文件

在没有写define('APP_DEBUG',true);时会产生缓存文件

修改配置文件后,需要删除一下缓存

在index.php中写上这句话define('APP_DEBUG',true);不产生缓存文件

4、分前台后台

在D:\wamp\www\Think_php\App\Lib\Action里面创建Admin,Home文件夹

在D:\wamp\www\Think_php\App\Tpl中也创建Admin,Home文件夹

二、ThinkPHP的使用

1、在 Lib保存了控制器目录(Action,和我们之前写的Controller)和模型目录(Model),Action里面是动作

2、在Tpl目录保存的是视图层的文件

3、Runtime

保存的是系统生成临时文件(缓存...)

4、控制器的写法:

GoodsAction.class.php

访问控制器的时候,通过 index.php?m=控制器&a=动作

但是由于这种写法不美观,而且SEO不友好()

于是TP框架写了一个pathinfo模式

index.php/控制器/动作

5、模型层

链接数据库----通过配置文件来实现的

现在获得模型,调用模型的方法

TP框架封装了模型对象,通过M()函数获得模型,参数是需要操作的表名

但是需要注意:这个表名需要首字母大写

调用select()方法可以获得所有的记录,相当于我们之前写的getAll()

6、视图层显示数据

assign()

display() 注意:display()可以带参数也可以不带参数

如果不带参数,控制器会自动去

视图层/模块分组(控制器名)/模板文件(命名通常是每个动作对应一个模板文件)

每个控制器在Tpl视图层都对应一个目录,

每个动作对应模板文件

如果是标量数据,在模板里面通过{变量名}来访问

如果是数组,在模板文件需要循环遍历这个数组,通过

在模板文件里面,访问数组的元素通过 {数组.元素下标}

或者通过 {数组[‘下标’]}

"{$list.id}"或{$list['name']}s

三、真实项目的部署

1、(1)项目要区分前台和后台(控制器,视图层)

(2)我们要将浏览器能够直接访问的文件(js,images,css)统一的放到一个目录里面(Pulblic),

然后将不能被浏览器直接访问的文件,放到另一个目录(App)

通常情况下,浏览器能够直接访问的文件,放到 public目录里

不能被浏览器直接访问文件放到 private App(保存项目的应用文件)

2、先将项目分为公共部分和私有的部分

如何将TP自动生成的MVC的结构保存到App目录里面,因为按照项目的部署思想,公共的文件(js,images,css)应该放到

Pulic目录,而项目的核心代码应该放到 App目录

3、是通过在入口文件,增加一个常量 APP_PATH

4、调试模式和部署模式(生产模式)

(1)调试模式:如果修改了数据表的数据,或者是修改了配置文件,需要将缓存删除,开启调试模式 ,不生成缓存文件 APP_DEBUG =》 true

(为了方便调试错误,关闭缓存, APP_DEBUG =》 true)

(2)部署模式:真正上线了,我们很少再会修改数据表的结构或者是配置文件,这个时候,我们会将调试模式关闭 APP_DEBUG => FALSE,生成缓存文件

(上线之后,开启缓存 APP_DEBUG => FALSE)

5、将项目分成前台和后台(控制器,视图)

通过修改配置文件,增加两个配置项:“

‘APP_GROUP_LIST’ => ‘Admin,Home’,

‘DEFAULT_GROUP’=>’Home’,

(2)访问的时候,要:入口文件/分组/控制器/动作

利用基本的模型完成一个增删改查

增加:

表单应该提交到这个地址,因为控制器的职责是接收数据,命令视图显示或者

在视图层的模板里面给我们们封装了一些伪常量(),保存的是一些路径

(3)、接收数据的时候,用一个数组来保存我们接收到的数据,但是需要注意:数组的下标和数据表的字段对应

注意:M()参数是当前操作的数据表,表名尽量首字母大写,因为window系统没问题,但是移植到Linux操作系统的话,会出错

(4)、只需要调用当前模型的add()方法(参数是需要插入的数据),即可向数据表插入一条数据,插入成功之后返回新纪录的id,如果失败返回false

public function add2(){

$data=array(

'id'=>'5',

'name'=>'juan',

'age'=>'12',

);

$goods_model=M('Xiao');

var_dump($goods_model->add($data));

}

不管向数据表中添加数据成功还是失败,应该给我们提示一些信息,当前控制器的方法

success(‘提示信息’,‘跳转到哪个页面’)-------0-成功之后的提示信息

error(‘提示信息’,‘跳转到哪个页面’) -----------

失败之后提示的信息

if($goods_model->add($data)){

$this->success('添加成功','__URL__/goods');

}else{

$THIS->error('添加失败','__URL__/show');

}

(5)、删除:delete

public function del(){

$goods_id=$_GET['id'];

//var_dump($goods_id);

$goods_model=M('Xiao');

//var_dump($goods_model->delete($goods_id));

if($goods_model->delete($goods_id)){

$this->success('删除成功','__URL__/goods');

}else{

$this->error('删除失败','__URL__/goods');

}

}

删除成功之后返回1,失败返回false

(6)、查找:find

public function edit(){

$goods_id=$_GET['id'];

$goods_model=M('Xiao');

$list=$goods_model->find(1);

$this->assign('list',$list);

$this->display();

}

(7)、更新:save

调用模型的save()方法完成数据的更新

更新成功返回 1

更新失败返回 false

更新的时候要获得更新的这条记录的id,确切的说应该是这条记录的主键

public function update(){

$data=array(

'id' => $_POST['id'],

'name' => $_POST['name'],

'age' =>$_POST['age']

);

$goods_model=M('Xiao');

//var_dump($goods_model->save($data));

if($goods_model->save($data)){

$this->success('修改成功','__URL__/goods');

}else{

$this->error('修改失败','__URL__/goods');

}

}

相关推荐

微信营销策划公司:最受欢迎的7家微信营销策划公司,助力企业成功推广
YY传奇霸业 2022年12月13日合服公告
365速发登录入口

YY传奇霸业 2022年12月13日合服公告

📅 07-11 👁️ 8302
LOL魄罗大乱斗玩法教学:小白也能轻松上手
365速发登录入口

LOL魄罗大乱斗玩法教学:小白也能轻松上手

📅 07-07 👁️ 8141