一、ThinkPHP的介绍 //了解
MVC
M - Model 模型 工作:负责数据的操作
V - View 视图(模板) 工作:负责前台页面显示
C - Controller 控制器(模块) 工作:描述功能
框架
二、ThinkPHP核心文件介绍
├─ThinkPHP.php 框架入口文件
├─Common 框架公共文件
├─Conf 框架配置文件
├─Extend 框架扩展目录
├─Lang 核心语言包目录
├─Lib 核心类库目录
│ ├─Behavior 核心行为类库
│ ├─Core 核心基类库
│ ├─Driver 内置驱动
│ │ ├─Cache 内置缓存驱动
│ │ ├─Db 内置数据库驱动
│ │ ├─TagLib 内置标签驱动
│ │ └─Template 内置模板引擎驱动
│ └─Template 内置模板引擎
└─Tpl 系统模板目录
四、实验环境搭建

  使用phpstudy或者其他php环境搭建工具

五、项目搭建 
#项目目录结构及说明:

当我们实际部署网站的时候,目录结构往往由于项目的复杂而变得复杂。我们推荐的部署目录结构如下:

目录/文件 说明
ThinkPHP 系统目录(下面的目录结构同上面的系统目录)
Public 网站公共资源目录(存放网站的Css、Js和图片等资源)
Uploads 网站上传目录(用户上传的统一目录)
Home 项目目录(下面的目录结构同上面的应用目录)
Admin 后台管理项目目录
…… 更多的项目目录
index.php 项目Home的入口文件
admin.php 项目Admin的入口文件
 
 
官方推荐结构
 
六、M V C 对应的文件夹
 
  M -Model 编写model类 对数据进行操作

  V -View 编写html文件,页面呈现  

  C -Controller 编写类文件(UserAction.class.php)

对应目录:

  M   项目目录/应用目录/Lib/Model
  V   项目目录/应用目录/Tpl
  C   项目目录/应用目录/Lib/Action

 
七、v 和 c 的使用方法
 
  TP中的输出有多种方式:
    echo 方式(只有c的情况下 , 也是php原生输出方法)
    通过display方法输出(v 和 c)
      想要分配变量可以使用assign方法
 
  例子1 直接使用display方法:
  

<?php
// 位于 /Lib/Action/indexAction.class.php
class IndexAction extends Action { public function show(){
//直接输出位于 /Tpl/Index/show.html 的静态页面
$this->display();
}
?>

  例子2 为静态页面分配变量:

<?php
// 位于 /Lib/Action/indexAction.class.php
class IndexAction extends Action { public function show(){
//输出位于 /Tpl/Index/show.html 的静态页面
//并为变量分配一个名为data的名称方便页面展示
$name = 'guwei';
$this->assign('data',$name);
$this->display();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>HELLO world</title>
<body>
<!-- 显示分配的变量 -->
<div> <p>hello :{$data} </p></div>
</body> </head>

为了防止“{}”在html中被错误解析我们可以在配置文件中修改他的标识符

进入/Conf/config.php

<?php

/**
TP配置
ThinkPHP在项目配置上面创造了自己独有的分层配置模式,其配置层次体现在:
惯例配置->项目配置->调试配置->分组配置->扩展配置->动态配置
以上是配置文件的加载顺序,因为后面的配置会覆盖之前的同名配置(在没有生效的前提下),所以优先顺序从右到左。 */
return array(
//'配置项'=>'配置值'
'DB_NAME' => 'test',
//修改标识符的方法
'TMPL_L_DELIM' => '<{',
'TMPL_R_DELIM' => '}>',
'debug' => 'this is config',
'LOAD_EXT_CONFIG'=>'user',
);
?>

html代码做如下修改:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>HELLO world</title>
<body>
<!-- 显示分配的变量 -->
<div> <p>hello :<{$data}> </p></div>
</body> </head>
总结自: 兄弟连 赵桐正 视频

TP学习笔记一(tp的目录结构 , tp的输出方式)的更多相关文章

  1. vue学习笔记(三)——目录结构介绍

    1.初始目录结构如下: 2.目录结构介绍 目录/文件 说明 build 最终发布的代码存放位置. config 配置目录,包括端口号等.我们初学可以使用默认的. node_modules npm 加载 ...

  2. 【DM8168学习笔记5】EZSDK目录结构

    EZSDK5.02的目录结构与之前的版本不同,之前的版本各个组件都放在/ezsdk目录下,5.02做了整合. 之前版本:(图片摘自:3.DM816x_1-day_Workshop-Getting_St ...

  3. [原创] linux课堂-学习笔记-课程3.Linux目录结构介绍及内核与shell分析

    一.目录说明 1.1 bin 一般用户,可执行的系统内置命令 1.2 sbin 系统管理员,可执行的系统内置命令 1.3 boot 启动文件目录,启动有关的文件都保存在此 1.4 dev 设备管理文件 ...

  4. Linux学习笔记1——Linux的目录结构

    / 是根目录 ~是主目录 bin 存放二进制可执行文件(Is,cat,mkdir等) boot 存放用于系统引导时使用的各种文件 dev 用于存放设备文件 etc 存放系统配置文件 home 存放所有 ...

  5. Android学习笔记一:项目目录结构

    一:Android目录 主要内容有: app目录下: manifests目录: AndroidManifest.xml:APP的配置 java目录:主要为源代码和测试代码 res目录:主要是资源文件, ...

  6. 【Head-First设计模式】C#版-学习笔记-开篇及文章目录

    原文地址:[Head-First设计模式]C#版-学习笔记-开篇及文章目录 最近一年断断续续的在看技术书,但是回想看的内容,就忘了书上讲的是什么东西了,为了记住那些看过的东西,最好的办法就是敲代码验证 ...

  7. Android开发笔记--hello world 和目录结构

    原文:Android开发笔记--hello world 和目录结构 每接触一个新东西 都有一个hello world的例子. 1.新建项目 2.配置AVD AVD 没有要新建个,如果不能创建 运行SD ...

  8. TP学习笔记

    ThinkPHP采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作,下面是一个标准的URL访问格式: http://serverNa ...

  9. FAT文件系统规范v1.03学习笔记---4.文件和目录数据区之长目录项

    1.前言 本文主要是对Microsoft Extensible Firmware Initiative FAT32 File System Specification中文翻译版的学习笔记. 每个FAT ...

随机推荐

  1. lsll 加载段限长指令

    static inline unsigned long get_limit(unsigned long segment) {  unsigned long __limit;  __asm__(&quo ...

  2. python 笔记(一) —— 不要误用 ++i、--i

    ilocker:关注 Android 安全(新手) QQ: 2597294287 在 python 中也可以写 ++i,但含义完全不同于 c/c++.python 的 ++i 并不是将 i 自增 1, ...

  3. Unity Project Wizard (最近打开的项目记录)

    最近打开工程列表 当用Unity打开过的项目越来越多之后,在最近打开项目记录框中就会变的很长,那么如何才能删除最近打开的记录呢? Unity4.x最近打开的工程记录 Unity5.x最近打开的工程记录 ...

  4. 学习ROS的基本知识,节点、话题、服务等

    之前我在电脑上安装的ROS版本为jade版的. 可是后来发现各个教程安装的是indigo版的 于是我又去看了看ROS官网,在官网上有这样的一句话. 而且又因为indigo版的资料多一些,于是我就换了r ...

  5. [No000021]跟维多利亚学英语

  6. CTF中那些脑洞大开的加密(1)

    0x01 目录 各种文本加密             Shell   1 2 3 4 5 6 7 8 9 10 11 12 换位加密:     1.栅栏密码(Rail-fence Cipher)    ...

  7. AppStore 上架注意事项及错误修改

    1.上架之前首页要配置好发布证书,配置用于发布的配置文件. 2.必须上传3.5英寸和4英寸图片,这两种图片尺寸不能缺. 3.提交的版本必须是在8.0及以上的版本. 4.必须用发布证书,如果提示UUID ...

  8. background-size背景缩放

    特别注意:背景图片缩放是相对于背景图片所在容器的宽高而言的,并不是相对背景图片本身的宽高 比如,一个div的宽高是300和200像素,背景图片本身的宽高是100*100的像素,设置div的backgr ...

  9. HTML DOM 属性 对象

    HTML DOM 属性 对象 HTML DOM 节点 在 HTML DOM (Document Object Model) 中, 所有的都是 节点: 文档是文档节点 所有 HTML 元素是元素节点 所 ...

  10. CSS3 perspecitve属性

    M M .div1 { position: relative; height: 150px; width: 150px; margin: 0px; padding:2px; border: 1px s ...