zoukankan      html  css  js  c++  java
  • ThinkPHP学习(二)理清ThinkPHP的目录结构及访问规则,创建第一个控制器

     

    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:PHPApplication”目录下有个“home”目录,这是ThinkPHP自动生成的一个控制器,

    主要文件是“F:PHPApplicationHomeControllerIndexController.class.php”,文件内容如下:

    [php] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. <?php  
    2. // 本类由系统自动生成,仅供测试用途  
    3. namespace HomeController;  
    4. use ThinkController;  
    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:PHPApplication”目录下新建一个目录“Index”,偷个赖,把“F:PHPApplicationHome”目录下的内容都复制

    到“F:PHPApplicationIndex”目录下,打开“F:PHPApplicationIndexControllerIndexController.class.php”文件,

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

    [php] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. <?php  
    2. namespace IndexController;  
    3. use ThinkController;  
    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:PHPThinkPHPConfconvention.php”文件,

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

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

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

  • 相关阅读:
    希尔排序(java实现)
    直接插入排序(java实现)
    android AsyncTask使用限制
    android TranslateAnimation动画执行时的坐标获取。
    android内存管理机制
    android实现前置后置摄像头相互切换
    【转-整理】JavaWeb框架中,各层的解释和关系
    安卓系统上安装.net运行时 mono runtime
    你不知道的https工作原理
    HTTPS的误解(二)
  • 原文地址:https://www.cnblogs.com/jxkshu/p/4445467.html
Copyright © 2011-2022 走看看