ThinkPHP的目录结构

回顾上一篇的安装目录:

目录对应关系

F:\\PHP
├─index.php       入口文件
├─README.md       README文件
├─Application     应用目录
├─Public          资源文件目录
└─ThinkPHP        框架目录

thinkphp 的目录结构

ThinkPHP 的目录结构非常清晰和容易部署。大致的目录结构如下,以项目为基础进行部署。

┎━ThinkPHP 框架系统目录
┃ ┝ ThinkPHP.php 系统公共文件
┃ ┝ Common 公共文件目录
┃ ┝ Tpl 框架系统模版目录
┃ ┝ Lang 系统语言包目录
┃ ┝ PlugIns 公共插件目录
┃ ┗ Lib 系统基类库目录
┃ ┝ Think 系统运行库(必须)
┃ ┝ Com 扩展类库包(非必须)
┃ ┗ ORG 扩展类库包(非必须) 
┃
┝━Application     应用目录、项目目录
┃ ┝ index.php 项目入口文件(可任意放置)
┃ ┝ Cache 模版缓存目录
┃ ┝ Common 公共文件目录(非必须)
┃ ┝ Conf 项目配置目录
┃ ┝ Data 项目数据目录
┃ ┝ Html 静态文件目录(非必须)
┃ ┝ PlugIns 插件目录(非必须)
┃ ┝ Tpl 模版文件目录
┃ ┝ Lang 语言包目录(非必须)
┃ ┝ Logs 日志文件目录
┃ ┝ Temp 数据缓存目录
┃ ┗ Lib 应用类库目录
┃ ┝ Action 控制器(模块)类目录
┃ ┝ Model Model 类文件目录
┃ … 下面的应用目录可根据需要选择和定义
┃ ┝ Exception 异常类库目录
┃ ┝ Common 公共应用类目录
┃ ┗ Help 助手类目录
┃
┃…更多项目目录(和App 目录类似,每个项目采用独立目录,便于部署)
┃
┝━Public 网站公共目录(多项目公用)
┃ ┝ Js JS 类库目录(建议)
┃ ┝ Images 公共图像目录(建议)
┃ ┗ Uploads 公共上传目录(建议)

我的“F:\PHP\Application”目录下有个“home”目录,这是ThinkPHP自动生成的一个控制器,

主要文件是“F:\PHP\Application\Home\Controller\IndexController.class.php”,文件内容如下:

  1. <?php
  2. // 本类由系统自动生成,仅供测试用途
  3. namespace Home\Controller;
  4. use Think\Controller;
  5. class IndexController extends Controller {
  6. public function Index(){
  7. $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8');
  8. }
  9. }

在地址栏输入“http://localhost/index.php”,回车,看到的内容,就是这个文件中“Index”函数中的内容。

访问规则

就“home”目录下的控制器举例,您可以通过以下URL地址访问:

http://localhost/index.php

http://localhost/index.php/Home

http://localhost/index.php/Home/Index

http://localhost/index.php/Home/Index/Index

创建第一个控制器

在“F:\PHP\Application”目录下新建一个目录“Index”,偷个赖,把“F:\PHP\Application\Home”目录下的内容都复制

到“F:\PHP\Application\Index”目录下,打开“F:\PHP\Application\Index\Controller\IndexController.class.php”文件,

为了确定访问的确实是我们新加的内容,在“Index”函数中添加点东西,代码如下:

  1. <?php
  2. namespace Index\Controller;
  3. use Think\Controller;
  4. class IndexController extends Controller {
  5. public function index(){
  6. $this->show('//phpinfo();<br>');
  7. $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP aaaa</b>!</p></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8');
  8. $this->show('function index()<br>');
  9. }
  10. }

试试通过以下URL地址访问吧:
http://localhost/index.php/Index

http://localhost/index.php/Index/Index

http://localhost/index.php/Index/Index/Index

修改惯例配置

ThinkPHP的默认模块名称是“Home”,也就是说如果你在浏览器地址栏中输入“http://localhost/index.php”的话,默认访问的是“http://localhost/index.php/Home”。

修改方法:用文本编辑工具打开“F:\PHP\ThinkPHP\Conf\convention.php”文件,

修改第44行为:'DEFAULT_MODULE'        =>  'Index',  // 默认模块

注意:应用的目录只能是首字母大写后面全部小写,使用“WorkOvertime”结果就出现无法加载控制器的情况!改为“Workovertime”之后,还需要关闭之前的窗口,重新打开一个浏览器窗口访问才能正常!

下一篇:ThinkPHP学习(三)配置PHP5支持MySQL,连接MySQL数据库

ThinkPHP学习(二)理清ThinkPHP的目录结构及访问规则,创建第一个控制器的更多相关文章

  1. wordpress学习二:源码目录结构和启动流程

    wordpress安装后的文件目录如下: 其中的主要目录和文件用途介绍如下: wp-admin:用于进行博客后台设置的功能目录 wp-content: wordpress的 主题,插件和本地化的存储目 ...

  2. thinkphp学习笔记1—目录结构和命名规则

    原文:thinkphp学习笔记1-目录结构和命名规则 最近开始学习thinkphp,在下不才,很多的问题看不明白所以想拿出来,恕我大胆发在首页上,希望看到的人能为我答疑解惑,这样大家有个互动,学起来快 ...

  3. Linux学习之二-Linux系统的目录结构

    Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...

  4. Android开发新手学习总结(六)——android开发目录结构【图文版】

    转载链接:http://bbs.itcast.cn/thread-87059-1-1.html?rss 既然已经搭建好环境了,那就对Android Studio中项目目录结构做个简单的了解了,这里以最 ...

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

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

  6. Android NDK学习(一):目录结构解析

    我们配置好NDK环境后,基本可以看到其目录结构如下图: 下面我们来分析一下NDK根目录的结构: ndk-build:该Shell脚本是Android NDK构建系统的起始点,一般在项目中仅仅执行这一个 ...

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

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

  8. android学习——android项目的的目录结构

       然后我们看一下Helloword的程序目录: 我们可以看到 大致有的文件: 1. MainHelloWorld.java文件 2. R.java文件 3. android.jar文件 4. RE ...

  9. ThinkPHP学习(二)

    书接前文. 我想前台填写内容,然后在后台保存一下,规划了一下前台要录入的内容,主要包括title.content两大内容.然后简单设计了一个前台页面(复杂的我得会啊),就在上篇文章的基础上直接加了: ...

随机推荐

  1. LayuiAdmin 滚动条设置问题解决

    LayuiAdmin 滚动条设置问题解决 今天在使用LayuiAdmin(单页版),发现通过: $("html,body").animate({"scrollTop&qu ...

  2. python复制文件到文件夹中

    目标:将一张图片复制到一个文件夹下 所有子文件中. import shutil import os #第一部分,准备工作,拼接出要存放的文件夹的路径 file = 'E:/测试/1.jpg' #cur ...

  3. Linux环境下Eclipse对C++新特性的支持设置

    Linux环境下Eclipse对C++新特性的支持设置     今天写一个简单的关于C11中的array容器的测试程序如下, #include <iostream> #include &l ...

  4. 2017《Java学习》第二次作业 计科1502任秀兴

    学习git总结 安装git 1. 安装完成后执行命令git --version查看版本 2.执行命令git config --global user.nam "你的用户名",执行命 ...

  5. jupyter notebook的魔法命令 % %%

    Magic单元分为两种,一种是line magics,另外一种cell magics. Line magic是通过在前面加%,表示magic只在本行有效. Cell magic是通过在前面加%%,表示 ...

  6. Django框架(十七)—— 中间件、CSRF跨站请求伪造

    目录 中间件 一.什么是中间件 二.中间件的作用 三.中间件执行顺序 四.自定义中间件 1.导包 2.定义类,继承MiddlewareMixin 3.在视图函数中定义一个函数 4.在settings的 ...

  7. Java8环境设置

    假设你已经安装在 C:Program Filesjavajdk 目录: 在“我的电脑”右键单击并选择“属性”. 在“高级”选项卡下单击“环境变量”按钮. 现在,改变“Path”变量,因此,它也包含了路 ...

  8. io.lettuce.core.RedisCommandExecutionException: ERR unknown command 'GEOADD'

    io.lettuce.core.RedisCommandExecutionException: ERR unknown command 'GEOADD' at io.lettuce.core.Exce ...

  9. Android开发:图文分析 Handler通信机制 的工作原理

    前言 在Android开发的多线程应用场景中,Handler机制十分常用 下面,将图文详解 Handler机制 的工作原理 目录 1. 定义 一套 Android 消息传递机制 2. 作用 在多线程的 ...

  10. AD库转换为KiCAD库的方法

    AD库转换为KiCAD库的方法 参照博主另外一篇文档: AD转换为KiCAD的方法,点击此处