ThinkPHP3的使用

时间:2023-12-16 15:22:56

1. 初始目录

7d 根目录
├─Application 应用目录(空)
├─Public 资源文件目录
├─ThinkPHP 框架目录
└─index.php 入口文件

2. 入口文件

// 应用入口文件

// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<'))  die('require PHP > 5.3.0 !');

// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);

// 定义应用目录
define('APP_PATH','./Application/');    //如果把Application改为Apps,则define('APP_PATH','./Apps/');

// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';  //如果把ThinkPHP.php改为Think.php,则require './ThinkPHP/Think.php'; 

// 亲^_^ 后面不需要任何代码了 就是如此简单

3. 安装

访问时输入localhost/7d或localhost/7d/index.php可看到“欢迎使用thinkPHP页面”,此时,原来空的Application目录下面,自动生成Common、Home和Runtime。

7d 根目录
├─Application 应用目录
│ ├─Common 公共模块
│ ├─Home Home模块(默认)
│ ├─Runtime 运行时的目录
├─Public 资源文件目录
├─ThinkPHP 框架目录
└─index.php 入口文件

至此可以开始一个项目的开发了。

4. 控制器

在自动生成的Application/Home/Controller下面可以找到一个IndexController.class.php 文件,这就是默认的Index控制器文件。

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
        $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px } a,a:hover{color:blue;}</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p><br/>版本 V{$Think.version}</div><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_55e75dfae343f5a1"></thinkad><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8');
    }
}

默认的欢迎页面其实就是访问的Home模块下面的Index控制器类的index操作方法,即localhost/7d/home/index/index。

控制器文件的命名方式是:类名(首字母大写)+class.php
控制器类的命名方式是:控制器名(首字母大写)+Controller

5. 视图

模板默认是模块目录下面的View/控制器名/操作名.html。

Home模块
├─Common
├─Conf
├─Controller
│ ├─IndexController.class.php
│ ├─UserController.class.php
├─Model
├─View
│ ├─Index(控制器名)
│ │ ├─index.html
│ │ ├─add.html
│ ├─User(控制器名)
│ │ ├─hello.html
│ │ ├─edit.html

比如:在Home/Controller/UserController.class.php的hello方法中进行模板渲染输出操作:

<?php
namespace Home\Controller;
use Think\Controller;
class UserController extends Controller {
    public function hello($name='thinkphp'){
        $this->assign('name',$name);
        $this->display();
    }
}

则新建Home/View/User/hello.html文件

<html>
<head>
<title>hello {$name}</title>
</head>
<body>
    hello, {$name}!
</body>
</html>

注:{}和变量之间不能有空格。

如果User/hello方法指定模板输出到当前控制器下面的edit.html,则

display('edit');

如果User/hello方法指定模板输出到Index控制器下面的add.html,则

display('Index:add');