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

简介: 上一篇:ThinkPHP学习(一) Windows下Nginx+PHP5+ThinkPHP_3.2.1的安装与配置ThinkPHP的目录结构回顾上一篇的安装目录:目录对应关系F:\\PHP├─index.php 入口文件├─README.md README文件├─Application 应用目录├─Public 资源文件目录└─ThinkPHP 框架目录thinkphp的目录结构ThinkPHP的目录结构非常清晰和容易部署。

上一篇:ThinkPHP学习(一) Windows下Nginx+PHP5+ThinkPHP_3.2.1的安装与配置

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控制器(模块)类目录
┃┝ModelModel类文件目录
┃…下面的应用目录可根据需要选择和定义
┃┝Exception异常类库目录
┃┝Common公共应用类目录
┃┗Help助手类目录

┃…更多项目目录(和App目录类似,每个项目采用独立目录,便于部署)

┝━Public网站公共目录(多项目公用)
┃┝JsJS类库目录(建议)
┃┝Images公共图像目录(建议)
┃┗Uploads公共上传目录(建议)


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

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

<?php
// 本类由系统自动生成,仅供测试用途
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function Index(){
		$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');
    }
}

在地址栏输入“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”函数中添加点东西,代码如下:

<?php
namespace Index\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
		$this->show('//phpinfo();<br>');
		$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');
		$this->show('function index()<br>');
	}
}
试试通过以下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数据库

目录
相关文章
|
7月前
|
存储 PHP
代码审计 | ThinkPHP 5.1控制器定义
代码审计 | ThinkPHP 5.1控制器定义
|
文件存储
Yii2.0框架提供了内置的文件访问组件,可以通过配置只允许访问指定的目录,防止非法文件的包含。这个如何使用?
Yii2.0框架提供了内置的文件访问组件,可以通过配置只允许访问指定的目录,防止非法文件的包含。这个如何使用?
114 0
|
PHP 调度
ThinkPHP路由源码解析(三)(3)
ThinkPHP路由源码解析(三)
130 0
ThinkPHP路由源码解析(三)(3)
|
PHP
ThinkPHP路由源码解析(二)(1)
ThinkPHP路由源码解析(二)
102 0
ThinkPHP路由源码解析(二)(1)
|
PHP 容器
ThinkPHP路由源码解析(二)(3)
ThinkPHP路由源码解析(二)
95 0
ThinkPHP路由源码解析(二)(3)
|
缓存 中间件 PHP
ThinkPHP路由源码解析(二)(5)
ThinkPHP路由源码解析(二)
195 0
ThinkPHP路由源码解析(二)(5)
|
调度 PHP 索引
ThinkPHP路由源码解析(三)(4)
ThinkPHP路由源码解析(三)
100 0
ThinkPHP路由源码解析(三)(4)
|
中间件 PHP 调度
ThinkPHP路由源码解析(三)(1)
ThinkPHP路由源码解析(三)
112 0
ThinkPHP路由源码解析(三)(1)
|
PHP 网络架构
ThinkPHP路由源码解析(二)(2)
ThinkPHP路由源码解析(二)
115 0
ThinkPHP路由源码解析(二)(2)
|
缓存 PHP 调度
ThinkPHP路由源码解析(二)(4)
ThinkPHP路由源码解析(二)
68 0
ThinkPHP路由源码解析(二)(4)