Thinkphp5简单的搭建(下)

Thinkphp5简单的搭建(下)

1.关键文件
application/config.php 项目配置文件,开启 debug 调试模式(在开发中)
application/database.php 数据库配置文件
public/index.php 项目入口文件,定义了应用目录的位置以及包含框架启动文件来启动框架

2.配置 URL 重写
http.conf 中解开下面的注释

LoadModule rewrite_module modules/mod_rewrite.so

并在虚拟主机配置中写上

AllowOverride All

注意:如果使用 phpstudy 的话,官方默认的 .htaccess 是不可以的,需要修改成下面这个样子

<IfModule mod_rewrite.c>
 RewriteEngine on
 
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

3.URL 自动生成
tp5 给我们提供了 url() 这个函数帮我们自动生成 Url

public function url()
 {
  echo url('url2','a=1&b=2');
 }

这个方法运行的结果就是
/index/index/url2/a/1/b/2.html

4.请求和响应

接收请求的参数

访问: http://localhost/index/index/req/username/test
通过以下代码可以得到 username

echo $this->request->param('username');

或者我们可以使用函数助手 input(),下面这段代码能达到和上面一样的效果

echo input('username');

包括我们通过下面的代码获取 url

echo $this->request->url();

这个也有自己的函数助手

echo request()->url();

我们可以获分别获取 get post cookie file 等方式的参数

$this->request->get()
$this->request->post()
$this->request->cookie()
$this->request->file()

或者实例化一个 Request 对象,但是这种方法只能接受 url 后面是 & 连接的参数,重写的好像不行

$Request = Request::instance()
 
$request->get()
$Rquest->post()
$Request->cookie()
$Request->file()

绑定参数

$this->request->bind('user',"hh");
 echo $this->request->user;

那么为什么请求还要动态地绑定参数呢?因为很多时候需要传递 session 的值,来维持会话

返回值

可以返回多种格式的值 比如 json xml 或者通过 $this->fetch() 来进行模板渲染

return json($data);
return xml($data);

当然我们的 tp 也有对一些东西的封装,比如实现输出一段话然后进行跳转到某个方法,或者是直接进行重定向

return json($data);
return xml($data);

5.模板与输出

一般的模板渲染就不想介绍了,这里说下模板布局,其实就是在 view 文件夹下有一个 layout.html 文件,这个文件的内容是这样的:layout.html

{include file="/index/header"/}
{__CONTENT__}
{include file="/index/footer"/}

然后我们写模板的时候就在最上面加上对这个文件的引用

{layout name="layout"/}

如果我们想全局引入页眉页脚,这个配置需要在 config.php 中进行设置,在模板配置中添加下面的代码

'layout_on' => 'true',
'layout_name' => 'layout',
'layout_item' => '{__CONTENT__}',

这样的话就是进行了全配置但是如果我们有些页面不想这样配置的话我们需要在这样的页面上写上

{__NOLAYOUT__}

如果我们模板文件中的静态文件路径想要不写死的话,我们可以在 php 文件中的 fecth 前设置字符替换

$this->view->replace(['__PUBLIC__' => '/static',]);

如果我们想每个方法都使用这个操作,我们就把上面这段代码放到 控制器的构造函数里面

function __construct(){
 parent::__construct();
 $this->view->replace(['__PUBLIC__' => '/static',]);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值