一、安装
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. easyUI跨Tab操作datagrid

    1.在datagrid那个页面定义方法 window.top["RELOAD_MY_DATAGRID"]=function(){ $("#dg").datagr ...

  2. 【转】Eclipse下启动tomcat报错:/bin/bootstrap.jar which is referenced by the classpath, does not exist.

    转载地址:http://blog.csdn.net/jnqqls/article/details/8946964 1.错误: 在Eclipse下启动tomcat的时候,报错为:Eclipse下启动to ...

  3. java内存详解

    二.JAVA中的内存模型 程序运行的时候,内存主要由以下部分组成: 堆:所有线程共享一个堆:存放的都是new 出来的对象:由垃圾回收器回收: 方法区:所有线程共享一个方法区:里面存放的内容有点杂,可以 ...

  4. delphi XE 5 Android 真机调试简易安装教程

    ① FireMonkey[DELPHI XE5]QQ群号:165232328,群内超过1600移动开发爱好者 第一步,打开手机中的USB调试 电脑自动装驱动,但是找不到 去手机官网下载驱动 手动安装驱 ...

  5. php中echo(),print(),print_r()之间的区别

    echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)  print只能打印出简单类型变量的值(如int,string)  print_r可以打印出复 ...

  6. java如何修改java.library.path并且不重启jvm也能生效

    先说一下需求吧, 目前在用JCEF实现java程序桌面版包装,源码中需要加载编译好的几个dll文件,而这些文件的路径必然是根据程序安装的路径而变化的,这就需要在程序运行的时候,去动态修改java.li ...

  7. 《利用python进行数据分析》读书笔记--第六章 数据加载、存储与文件格式

    http://www.cnblogs.com/batteryhp/p/5021858.html 输入输出一般分为下面几类:读取文本文件和其他更高效的磁盘存储格式,加载数据库中的数据.利用Web API ...

  8. Selenium的PO模式(Page Object Model)|(Selenium Webdriver For Python)

            研究Selenium + python 自动化测试有近两个月了,不能说非常熟练,起码对selenium自动化的执行有了深入的认识. 从最初无结构的代码,到类的使用,方法封装,从原始函数 ...

  9. 用CSS制作伪标签云

    performance testing stress testing conformance testing acceptane testing smoke testing regression te ...

  10. F12定义到元数据问题解决

    删除引用中的该dll,重新引用选择解决方案下的项目引用,下次F12就不会进入到元数据而是进入到源代码中方便调试