ThinkPHP3的使用
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的使用的更多相关文章
- thinkphp3.2.3中U()方法和redirect()方法区别
今天博主看3.1的教程,学着3.2,就遇到了这个坑,怎么就是不跳转呢,很纳闷!! 在thinkphp3.1 中 U()方法是可以执行跳转的(看视频教程里面是可以的,博主没有测试过). 但是在think ...
- thinkphp3.2.3版本文件目录及作用
下载thinkphp3.2.3版本,解压缩后将文件夹名字改为thinkphp,然后放在www目录下,里面的文件夹和文件的名字和作用如下:(前面有Tab健的表示下一级,thinkphp是根目录) //t ...
- 基于ThinkPHP3的微信平台开发_1
微信公众平台是个好东西,具体的就不说了,我直接说技术>_< 下图为目录结构一览: 微信开发 - 文件目录结构 平台功能: 此次开发的平台是面向多微信公众号.微信多公众号主(下面简称号主)的 ...
- Thinkphp3.2.3使用Ajax一定注意 数据返回
Thinkphp3.2.3使用Ajax一定注意 数据返回 $data = 'ok'; $this->ajaxReturn($data); 不能直接 echo $data;
- ThinkPHP3.* 模型操作相关函数
ThinkPHP3.* 版本,大家所不熟知的,且与数据库操作相关的函数做以简单罗列: 1.getLastSql 别名 _sql (鉴于getLastSql比较常用,故出现了别名函数_sql) 2.se ...
- ThinkPHP3.2设置404跳转页面
在ThinkPHP3.2版本中当我们访问不存在的页面时会出现非常不友好错误提示页面,类如下图: 解决办法: 1.在ThinkPHP3.2详细的介绍了该框架下的ThinkPHP惯例配置文件convent ...
- 浅谈ThinkPHP3.2的子域名部署和路由优化(一)
前言:建立一个网站系统,往往包含多个子网站,例如PC官网,移动端官网,后台管理,数据源自一个相同的数据库,整个架构上,从ThinkPHP来看,可以大体理解为Model(M)是一样的,Controlle ...
- ThinkPHP3快速入门教程二:数据CURD
CURD(创建[Create].更新[Updata].读取[Read].删除[Delete]),定义了用于处理数据的基本原子操作. CURD在具体的应用中并非一定使用create.updata.rea ...
- thinkphp3.2与phpexcel带图片生成 完美案例
thinkphp3.2与phpexcel完美案例 // 导出exl public function look_down(){ $id = I('get.id'); $m = M ('offer_goo ...
- ThinkPHP3.2.3整合smarty模板(二)
前言:继ThinkPHP3.2.3整合smarty模板(一)之后,继续来探讨一下tp框架整合smarty模板,看到有人在群上问到怎么使用自定义的常量,今天就具体来谈谈: 一.开发一个项目,必不可少会用 ...
随机推荐
- facebook api call——error
Error Codes send-api error-codes whatsapp api errors marketing-api error-reference graph-api/using-g ...
- pyqt笔记2 布局管理
https://zhuanlan.zhihu.com/p/28559136 绝对布局 相关方法setGeometry().move() 箱式布局 QHBoxLayout和QVBoxLayout是基本的 ...
- 你所要掌握的最简单基础的React渲染优化
一.React的渲染机制 要掌握一两项React-render优化的方法不难,但是非常重要.无论是在实际项目中的一个小细节,还是迎合'面试官'的口味 1.1 触发Render 我们知道React要更新 ...
- mime模块响应或设置Node.js的Content-Type头
转载自:https://itbilu.com/nodejs/core/VJYaAfKrl.html MIME,即:Multipurpose Internet Mail Extensions,多用途 ...
- Http请求处理流程 管道流程 MVC扩展HttpModule
HttpApplication 封装了管道处理请求的所有事件 HttpModule 对HttpApplication中事件的扩展 HttpHandler 处理程序 每个请求都要经过Handle ...
- Meta referrer标签的,可以防止CSRF的攻击
Meta referrer标签的简要介绍 在某些情况下,出于一些原因,网站想要控制页面发送给 server 的 referer 信息的情况下,可以使用这一 referer metadata 参数. 参 ...
- leecode第十四题(最长公共前缀)
class Solution { public: string longestCommonPrefix(vector<string>& strs) { string res=&qu ...
- DAY3 数据类型与运算符
一.注释 代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号""" """ 注释用于解释某一行代码的作用,增加代码的可读性 ...
- Spring Cloud 入门教程(一): 服务注册
1. 什么是Spring Cloud? Spring提供了一系列工具,可以帮助开发人员迅速搭建分布式系统中的公共组件(比如:配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁 ...
- Redis持久化AOF和RDB对比
RDB持久化 AOF持久化 全量备份,一次保存整个数据库 增量备份,一次保存一个修改数据库的命令 保存的间隔较长 保存的间隔默认一秒 数据还原速度快 数据还原速度一般 save会阻塞,但bgsave或 ...