ThinkPHP框架学习
phpstorm 运行调试环境搭建
xdebug的安装和配置按照官方文档即可,我这里主要说一下配置php运行环境
最后点击的validate
是一个验证,看我们的xdebug是否已经配置好
然后点击validate按钮,如果都是对勾就说明没问题了,我这次配置遇到的坑就是
端口9000
后面多了一个空格
controller
通过URL调用控制器
index.php/模块名称/控制器/方法
比如我们现在创建了一个Admin
模块,然后编写了一个控制器TestController.class.php
,里面内容如下:
<?php
namespace Admin\Controller;
use Think\Controller;
class TestController extends Controller {
public function Test(){
echo 'Test';
}
}
这时我们可以通过http://localhost/html/shop/index.php/admin/test/test
来调用admin
模块中的Test
控制器的Test
方法,注意url
是小写,控制器文件以及控制器类和方法都是驼峰命名
如果需要传参,也可以使用/的形式进行传参,比如aa/1/bb/9
,等价于?aa=1&bb=9
view
我们在在home模块中创建一个user控制器,内容如下:
<?php
namespace Home\Controller;
use Think\Controller;
class UserController extends Controller {
public function add(){
$a = phpinfo();
$this->assign('a', $a);
$this->display();
}
}
然后我们调用assign和display方法,这都是框架自带的,我们从Controller类继承而来,它会调用view层的对应html来显示内容,我们需要在view文件中创建一个和控制器同名的文件夹User,然后在里面创建一个名字和**调用display方法的方法(add)**名相同的html文件,内容如下:
<html>
<title>test</title>
<body>
<h1>{$a}</h1>
</body>
</html>
使用{}
引用变量
model
model的名字和(要连接的数据库的)表名是一样的,我们需要先配置自己的对应模块或者项目的配置文件,在该配置文件中修改相关配置,然后才能正常地连接到数据库
使用D()和M()方法都可以得到model的实例,但D函数是优先得到子类的Model实例,而M函数是得到父类的Model实例,即Think\Model类,我们可以在UserController.class.php中按照如下方式实例化Model类:
<?php
namespace Home\Controller;
use Think\Controller;
class UserController extends Controller {
public function add(){
$a = phpinfo();
$this->assign('a', $a);
$this->display();
}
public function ff(){
$a = D('Xxx');
var_dump($a);
}
}
这样当我们使用http://localhost/html/shop/index.php/home/user/ff
调用ff方法时,XxxModel就会被实例化
配置文件
TP框架自带的配置文件:
/ThinkPHP/Conf/convention.php
项目的配置文件:
/www/tpshop/Common/Conf/config.php
模块的配置文件:
比如Home模块的配置文件:
/www/tpshop/Home/conf/config.php