一、安装
ThinkPHP无需任何安装,直接拷贝到你的电脑或者服务器的WEB运行目录下面即可。
如:我使用的是XAMPP集成环境,将框架解压缩到htdocs目录下即可。
 
二、目录结构
1、初始目录结构
www  WEB部署目录(或者子目录)
├─index.php       入口文件
├─README.md       README文件
├─Application     应用目录
├─Public          资源文件目录
└─ThinkPHP        框架目录
说明:
1)ApplicationPublic目录下面都是空的。
2)Application目录默认是空的,但是第一次访问入口文件会自动生成。
3)上面的目录结构和名称是可以改变的,这取决于入口文件和配置参数。
4)除了应用入口文件和Public资源目录外,其他文件都放到非WEB目录下面,具有更好的安全性。
 
2、框架目录ThinkPHP的目录结构
├─ThinkPHP 框架系统目录(可以部署在非web目录下面)
│  ├─Common       核心公共函数目录
│  ├─Conf         核心配置目录
│  ├─Lang         核心语言包目录
│  ├─Library      框架类库目录
│  │  ├─Think     核心Think类库包目录
│  │  ├─Behavior  行为类库目录
│  │  ├─Org       Org类库包目录
│  │  ├─Vendor    第三方类库目录
│  │  ├─ ...      更多类库目录
│  ├─Mode         框架应用模式目录
│  ├─Tpl          系统模板目录
│  ├─LICENSE.txt  框架授权协议文件
│  ├─logo.png     框架LOGO文件
│  ├─README.txt   框架README文件
│  └─ThinkPHP.php 框架入口文件
 
三、入口文件
ThinkPHP采用单一入口模式进行项目部署和访问 ,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口。
默认情况下,在初始目录结构下已经自带了一个入口文件,可以根据实际情况更改目录:
 
在浏览器输入url(http://localhost/ThinkPHP-3.2.3/index.php)访问入口文件,即可看到如下页面:
 
四、自动生成
第一次访问应用入口文件后,自动生成了一个默认的应用模块Home。原来空的Apps(相当于默认的Application)目录下面,自动生成了公共模块Common、默认的Home模块和Runtime运行时目录的目录结构:
说明:
1) 如果不是调试模式的话,会在Runtime目录下面生成common~runtime.php文件(应用编译缓存文件)。
2)目录安全文件: 为了避免某些服务器开启了目录浏览权限后可以直接在浏览器输入URL地址查看目录,系统默认开启了目录安全文件机制,在自动生成目录结构的同时,在各个目录下面生成空白的index.html文件,这是ThinkPHP自动生成的目录安全文件。
      如果环境足够安全,不希望生成目录安全文件,可以在入口文件里面关闭目录安全文件的生成:
define('BUILD_DIR_SECURE', false);
     如果想更改安全文件的名称,可以在入口文件中添加:
define('DIR_SECURE_FILENAME', 'default.html');     // 将index.html改为default.html
 
五、模块
一个应用目录下面可以有多个模块目录结构, 每个模块是相对独立的,可以方便的卸载和部署,并且支持公共模块。
Application      默认应用目录(可以设置)
├─Common         公共模块(不能直接访问)
├─Home           前台模块
├─Admin          后台模块
├─...            其他更多模块
├─Runtime        默认运行时目录(可以设置)
每个模块(如Home、Admin等)的目录结构如下:
├─Module         模块目录
│  ├─Conf        配置文件目录
│  ├─Common      公共函数目录
│  ├─Controller  控制器目录
│  ├─Model       模型目录
│  ├─Logic       逻辑目录(可选)
│  ├─Service     Service目录(可选)
│  ... 更多分层目录可选
│  └─View        视图目录
 
六、控制器
在自动生成的Application/Home/Controller目录下面找到一个 IndexController.class.php 文件,这是默认的Index控制器文件。
默认的欢迎页面其实就是访问的Home模块下面的Index控制器类的index操作方法。
控制器类的命名方式是:控制器名(驼峰法,首字母大写)+Controller
控制器文件的命名方式是:类名+class.php(类文件后缀)
 
修改index方法:
再次访问应用入口文件(http://localhost/ThinkPHP-3.2.3/index.php) , 浏览器会显示:hello,world!
说明:
1)namespace Home\Controller;
开头是命名空间定义,表示当前类是Home模块下的控制器类,命名空间和实际的控制器文件所在的路径是一致的,如果改变了当前的模块名,那么这个控制器类的命名空间也需要随之修改。
即:Home\Controller\IndexController类对应的控制器文件位于应用目录下面的Home/Controller/IndexController.class.php
 
2)use Think\Controller;
表示引入 Think\Controller 类库便于直接使用。
 
3)写法
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller
等同于使用
namespace Home\Controller;
class IndexController extends \Think\Controller
 
以下原理不明,尚需在后续学习中探索:

url还可以写成http://localhost/ThinkPHP-3.2.3/home/index/index,home对应模块,第一个index对应类,第二个index对应方法:
如果在IndexController中添加第二个方法echoStr( ):
则url写为http://localhost/ThinkPHP-3.2.3/home/index/echoStr

ThinkPHP 3.2.3(一)基础的更多相关文章

  1. thinkphp系列:类的自动加载是如何设计的

    在使用框架开发时,可以发现框架有很多核心类,却很少看到显示的引入某个文件的代码,这是因为框架都采用了类的自动加载机制,即使用到类时,框架会自动找到该类所在文件的位置并引入该文件.为了更容易看出代码思路 ...

  2. node.js上除了Express还有哪些好用的web开发框架

    老司机都有体会, 开发本身没有多难, 最纠结其实是最初的技术和框架选型, 本没有绝对的好坏之分, 可一旦选择了不适合于自己业务场景的框架, 将来木已成舟后开发和维护成本都很高, 等发现不合适的时候更换 ...

  3. sanchi

    修炼之路阶段1能简单处理html+css+js前端页面,可实现管理后台前端页面 熟练安装php的web运行环境,并调整配置,会自行安装php扩展 熟练数据库操作,清楚为何使用pdo而不使用mysql等 ...

  4. ThinkPHP框架基础

    ThinkPHP 一.php框架基础介绍 真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维 ...

  5. 6月13 ThinkPHP框架基础

    ThinkPHP 一.php框架基础介绍 真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维 ...

  6. ThinkPHP -- 基础入门

      ThinkPHP文件结构说明: |——ThinkPHP.php    框架入口文件    |——Common            框架公共文件目录    |——Conf              ...

  7. ThinkPHP框架基础知识二

    一.空操作和空控制器处理 空操作:没有指定的操作方法:空控制器:没有指定控制器,例如: http://网址/index.php/Home/Main/login  正常 http://网址/index. ...

  8. ThinkPHP 5.1 基础知识

    ==========================================//模板中的默认标题{$title|default='默认标题'}========================= ...

  9. 《ThinkPHP 5.0快速入门》 基础和路由

    一.基础: 创建项目:conposer create-project topthink/think tp5 --prefer-dist 创建项目模块:php think build --module ...

  10. ThinkPHP框架的一些基础应用

    这是俺滴师傅给俺传授了的知识,特在此分享. TP框架,做PHP开发的都应该有所耳闻.下面,我们就来说说入口文件的生成: 创建新项目时,首先,在目录文件下创建一个新的文件夹.然后将Thinkphp框架文 ...

随机推荐

  1. win10+PHP7

    在D盘自定义新建文件夹ApacheServer 再在ApacheServer文件夹下分别建立php,Apache,mysql,web四个文件夹分别用来存放 php,apache,mysql,项目文件 ...

  2. Android setVisibility()

    android view setVisibility(): 有三个参数:Parameters:visibility One of VISIBLE, INVISIBLE, or GONE,想对应的三个常 ...

  3. android 补间动画和Animation

    介绍: 补间动画是一种设定动画开始状态.结束状态,其中间的变化由系统计算补充.这也是他叫做补间动画的原因. 补间动画由Animation类来实现具体效果,包括平移(TranslateAnimation ...

  4. Java基础应用

    Java集合类解析 List.Map.Set三个接口,存取元素时,各有什么特点? List 以特定次序来持有元素,可有重复元素.Set 无法拥有重复元素,内部排序.Map 保存key-value值,v ...

  5. 【Python】使用Supervisor来管理Python的进程

    来源 : http://blog.csdn.net/xiaoguaihai/article/details/44750073     1.问题描述 需要一个python的服务程序在后台一直运行,不能让 ...

  6. Duilib改进窗口拖动,使整个窗口都能拖动两种方法(转载)

    转载:http://www.cnblogs.com/XiHua/articles/3490490.html 转载:http://blog.csdn.net/lostspeed/article/deta ...

  7. HDU1232 畅通工程 并查集

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  8. IOS苹果和百度地图的相关使用

    iOS中使用较多的3款地图,google地图.百度地图.苹果自带地图(高德).其中苹果自带地图在中国使用的是高德的数据.苹果在iOS 6之后放弃了使用谷歌地图,而改用自家的地图.在国内使用的较多的就是 ...

  9. [Python]实现简单决策树

    基本思路: 通过香农熵来决定每一层使用哪一种标签做分类,分类后,通过多数表决法来决定该层两个节点的类别.每次消耗一个标签,所以一共需要递归"标签个数"层. # -*- coding ...

  10. Arduino 极速入门系列 - 光控灯(3) - 光敏电阻、与电阻分压那些事

    继续是讲解基础原理,新手专用部分.这次讲光敏电阻,和用电阻分压.光电元器件有好几种,其中测光相关的元器件,常见的有光敏三极管和光敏电阻,我们这次光控灯用光敏电阻.在我们光控灯里面,将会使用它搭建出分压 ...