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');

ThinkPHP3的使用的更多相关文章

  1. thinkphp3.2.3中U()方法和redirect()方法区别

    今天博主看3.1的教程,学着3.2,就遇到了这个坑,怎么就是不跳转呢,很纳闷!! 在thinkphp3.1 中 U()方法是可以执行跳转的(看视频教程里面是可以的,博主没有测试过). 但是在think ...

  2. thinkphp3.2.3版本文件目录及作用

    下载thinkphp3.2.3版本,解压缩后将文件夹名字改为thinkphp,然后放在www目录下,里面的文件夹和文件的名字和作用如下:(前面有Tab健的表示下一级,thinkphp是根目录) //t ...

  3. 基于ThinkPHP3的微信平台开发_1

    微信公众平台是个好东西,具体的就不说了,我直接说技术>_< 下图为目录结构一览: 微信开发 - 文件目录结构 平台功能: 此次开发的平台是面向多微信公众号.微信多公众号主(下面简称号主)的 ...

  4. Thinkphp3.2.3使用Ajax一定注意 数据返回

    Thinkphp3.2.3使用Ajax一定注意 数据返回 $data = 'ok'; $this->ajaxReturn($data); 不能直接 echo $data;

  5. ThinkPHP3.* 模型操作相关函数

    ThinkPHP3.* 版本,大家所不熟知的,且与数据库操作相关的函数做以简单罗列: 1.getLastSql 别名 _sql (鉴于getLastSql比较常用,故出现了别名函数_sql) 2.se ...

  6. ThinkPHP3.2设置404跳转页面

    在ThinkPHP3.2版本中当我们访问不存在的页面时会出现非常不友好错误提示页面,类如下图: 解决办法: 1.在ThinkPHP3.2详细的介绍了该框架下的ThinkPHP惯例配置文件convent ...

  7. 浅谈ThinkPHP3.2的子域名部署和路由优化(一)

    前言:建立一个网站系统,往往包含多个子网站,例如PC官网,移动端官网,后台管理,数据源自一个相同的数据库,整个架构上,从ThinkPHP来看,可以大体理解为Model(M)是一样的,Controlle ...

  8. ThinkPHP3快速入门教程二:数据CURD

    CURD(创建[Create].更新[Updata].读取[Read].删除[Delete]),定义了用于处理数据的基本原子操作. CURD在具体的应用中并非一定使用create.updata.rea ...

  9. thinkphp3.2与phpexcel带图片生成 完美案例

    thinkphp3.2与phpexcel完美案例 // 导出exl public function look_down(){ $id = I('get.id'); $m = M ('offer_goo ...

  10. ThinkPHP3.2.3整合smarty模板(二)

    前言:继ThinkPHP3.2.3整合smarty模板(一)之后,继续来探讨一下tp框架整合smarty模板,看到有人在群上问到怎么使用自定义的常量,今天就具体来谈谈: 一.开发一个项目,必不可少会用 ...

随机推荐

  1. Docker:Stacks

    Prerequisites Install Docker version 1.13 or higher. Get Docker Compose as described in Part 3 prere ...

  2. 解决Linux服务器磁盘空间不足的问题

    在linux服务器执行程序时报错: awk: write failure (No space left on device)awk: close failed on file /dev/stdout ...

  3. 【转载】C++宏定义详解

    摘自:http://blog.chinaunix.net/uid-21372424-id-119797.html   C++宏定义详解 2011-02-14 23:33:24   分类: C/C++ ...

  4. hdu 6170 Two strings dp

    Two strings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Prob ...

  5. selenium打开chrome时,出现 "您使用的是不受支持的命令行标记:--ignore-certificate-errors""

    from selenium import webdriveroptions = webdriver.ChromeOptions()options.add_experimental_option(&qu ...

  6. springmvc处理过程理解(一)

    DispatcherServlet前端控制器:接收request,进行response HandlerMapping处理器映射器:根据url查找Handler.(可以通过xml配置方式,注解方式) H ...

  7. STL_string.【转】C++中int、string等常见类型转换

    ZC:#include <sstream> ZC:貌似还有 istringstream 和 ostringstream ... https://www.cnblogs.com/gaobw/ ...

  8. VC.【转】窗口置于前台并激活的方法

    1.VC 窗口置于前台并激活的方法 - CSDN博客.html https://blog.csdn.net/oXunFeng/article/details/52681279 2.(http://ww ...

  9. .NET Core 管道

    从用户发请求到服务器响应返回数据 请求从 Request进去    先经过 Middleware(中间件) 然后经过AuthoriationFilters授权验证(token验证和 多租户验证) 在经 ...

  10. RNN生产唐诗

    1. 项目的RNN模型: 项目中的输入x是这样的: