一、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. ImageMagick Remote Command Execute

    CVE ID: CVE-2016-3714 我挺纠结应该用中文写博客还是应该用英文写博客.英文吧作用挺明显的,可以锻炼自己的英语表达能力,但是可能会阻碍和一些英文不好的朋友交流. It's upset ...

  2. 关于反射blog

    非常好的Java反射例子   疯狂java   在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请浏览疯狂java ...

  3. 向tiny6410中移植中移植linux-4.5.1内核(最新)

    下载linux-4.5.1.tar.gz 解压在任意目录下.我解压在/home/tiny6410/ # tar xvzf linux-4.5.1.tar.gz # cd linux-4.5.1/ 修改 ...

  4. apt-get update更新源时,出现“Hash Sum mismatch”问题

    当使用apt-get update更新源时,出现下面"Hash Sum mismatch"的报错,具体如下:root@localhost:~# apt-get update.... ...

  5. javascript中的双向队列

    1.概念 我们知道队列是一种先进先出的结构,只能在队伍的开头添加元素,队伍的结尾删除元素.双向队列的概念就是同时允许在队伍的开头和结尾添加和删除元素.在javascript中有一个处理数组的方法Arr ...

  6. sublime和python

    <转载> 使用 Sublime 工具时报Decode error - output not utf-8解决办法   打开Python.sublime-build文件,并添加"en ...

  7. Frequently Asked Questions - P-thresholds

    Source: http://mindhive.mit.edu/book/export/html 1. What is the multiple-comparison problem? What is ...

  8. workqueue机制分析之wb_workfn函数

    上面一篇文章说到: process_one_work中最重要的一件事情就是worker->current_func(work); 这里就具体到一项很具体的任务了,由于我要研究文件系统嘛,所以很自 ...

  9. 基于JSch的Sftp工具类

    本Sftp工具类的API如下所示. 1)构造方法摘要 Sftp(String host, int port, int timeout, String username, String password ...

  10. C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树

    业务系统里经常会需要计算类似的树形权限树的业务需求 1:往往会有一些需求,a 对 b 有权限, b对c 有权限, 等等. 2:还需要很直观的看到,整个权限的树形关系,一目了然的那种. 3:程序调用简单 ...