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数据库

时间: 2024-07-28 23:53:33

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

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

最近开始学习thinkphp,在下不才,很多的问题看不明白所以想拿出来,恕我大胆发在首页上,希望看到的人能为我答疑解惑,这样大家有个互动,学起来快点,别无他意,所谓活到老,学到老,希望各位不要见笑啊.   我的做法很简单,先从手册开始,手册是开发thinkphp作者辛勤劳动的成果,但是有些地方是在是不懂,如果有幸各位也遇到类似的问题希望能回复.        1.框架目录   在章节1.6 目录结构,内容如下:   新版的目录结构在原来的基础上进行了调整,更加清晰.   目录/文件 说明 Thi

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

工具原料: Nginx153: 网盘下载地址:http://pan.baidu.com/s/1qWNgLf2 php-5.3.28-nts-Win32-VC9-x86 网盘下载地址:http://pan.baidu.com/s/1pdukY ThinkPHP_3.2.1 网盘下载地址:http://pan.baidu.com/s/1pJlpfuj RunHiddenConsole是一个用来隐藏 DOS窗口的小程序 网盘下载地址:http://pan.baidu.com/s/1gd7kApP 开始

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

上一篇:ThinkPHP学习(二)理清ThinkPHP的目录结构及访问规则,创建第一个控制器 配置PHP5支持MySQL 打开PHP配置文件"F:\PHP\php5328Win32\php.ini",查找"extension=php_mysql.dll", 把前面的分号去掉,保存文件,启动服务: 却提示"PHP startup: Unable to load dynamic library :F:\PHP\php_mysql.dll"错误, 解决

ThinkPHP中自定义目录结构的设置方法_php技巧

效果如图所示: 入口文件 <?php // 应用入口文件 // 检测PHP环境 if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !'); // 网站文件入口位置 define('ABSPATH', dirname(__FILE__) . '/'); // 定义应用目录 define('APP_NAME', 'WEBSITE'); define('APP_PATH','./include/'); d

MVC进阶学习--个性化目录结构(二)

(一)  浅谈MVC目录结构 在上一篇(<MVC进阶学习--个性化目录结构(一)>)中了解到了MVC 的基本目录结构,以及各个目录的作用.我们只是说到了表面的目录结构,没有了解到它运行的原理.是不是MVC的目录结构只能有那种固定的模式呢,我们能否根据自己的需要扩展这些目录结构呢.答案是肯定的.因为asp.net MVC中引用了WebFromViewEngine 这个视图引擎 (二) WebFormViewEngine视图引擎 1.IView接口    IView接口是对MVC结构中View对象

PHP学习笔记(二) 了解PHP的基本语法以及目录结构_php技巧

通过这节课, 1.了解AppServ的目录结构 2.我们可以了解PHP的基本语法结构 1 我的AppServ安装目录是E盘: ①运用命令行的方式去操作apache服务器 apache服务器的开启和关闭: httpd -k restart //重启 httpd -k stop //关闭 httpd -k start //开启 如果修改端口的话,可以在下面的目录进行修改: AppServ\Apache2.2\conf  中的 httpd.conf(主配置文件) ②运用命令行的方式操作mysql数据库

ThinkPhp学习01

原文:ThinkPhp学习01 一.ThinkPHP的介绍           MVC  M - Model 模型                工作:负责数据的操作  V - View  视图(模板)        工作:负责前台页面显示  C - Controller 控制器(模块) 工作:描述功能 框架二.ThinkPHP的获取            http://www.thinkphp.cn三.ThinkPHP核心文件介绍      ├─ThinkPHP.php     框架入口文件 

thinkphp学习笔记4—眼花缭乱的配置

原文:thinkphp学习笔记4-眼花缭乱的配置   1.配置类别 ThinkPHP提供了灵活的全局配置功能,ThinkPHP会依次加载管理配置>项目配置>调试配置>分组配置>扩展配置>动态配置,所以后面的配置权限要大于前面的,因为后面的配置会覆盖前面同名配置,同事会生辰配置缓存文件无需重复解析,减小开销. 惯例配置:在惯例配置内对大多数常用参数进行默认配置,因为惯例配置最先加载,优先级别最低,如果不需要做特殊配置的话,完全可以保持默认值,惯例配置位于ThinkPHP/Con

ThinkPhp学习02

原文:ThinkPhp学习02 一.什么是MVC                M -Model 编写model类 对数据进行操作 V -View  编写html文件,页面呈现 C -Controller 编写类文件(UserAction.class.php)二.ThinkPHP的MVC特点        三.ThinkPHP的MVC对应的目录    M 项目目录/应用目录/Lib/Model V 项目目录/应用目录/Tpl C 项目目录/应用目录/Lib/Action四.url访问C