ThinkPHP使用步骤

来源:互联网 发布:小米快传 mac 编辑:程序博客网 时间:2024/05/17 23:47

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

市面上常用的框架:

zend framework   yii    thinkPHP

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

 

1.       下载ThinkPHP

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

 

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

 

1.       写上:

<?php

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

?>

3、如果在index.php中写:

<?php

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

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

require("ThinkPHP/ThinkPHP.php");

?>

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

运行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目录保存的是视图层的文件

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

4、控制器的写法:

GoodsAction.class.php

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

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

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

index.php/控制器/动作

5、模型层

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

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

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

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

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

6、视图层显示数据

assign()

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

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

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

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

每个动作对应模板文件

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

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

在模板文件里面,访问数组的元素通过 {数组.元素下标}  或者通过  {数组[‘下标’]}

"{$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');
    }
  }

 

0 0
原创粉丝点击