ThinkPHP學習(二)理清ThinkPHP的目錄結構及訪問規則,建立第一個控制器

微wx笑發表於2014-03-13

上一篇: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:PHPApplication”目錄下有個“home”目錄,這是ThinkPHP自動生成的一個控制器,

主要檔案是“F:PHPApplicationHomeControllerIndexController.class.php”,檔案內容如下:

<?php
// 本類由系統自動生成,僅供測試用途
namespace HomeController;
use ThinkController;
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:PHPApplication”目錄下新建一個目錄“Index”,偷個賴,把“F:PHPApplicationHome”目錄下的內容都複製

到“F:PHPApplicationIndex”目錄下,開啟“F:PHPApplicationIndexControllerIndexController.class.php”檔案,

為了確定訪問的確實是我們新加的內容,在“Index”函式中新增點東西,程式碼如下:

<?php
namespace IndexController;
use ThinkController;
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:PHPThinkPHPConfconvention.php”檔案,

修改第44行為:`DEFAULT_MODULE` => `Index`, // 預設模組

注意:應用的目錄只能是首字母大寫後面全部小寫,使用“WorkOvertime”結果就出現無法載入控制器的情況!改為“Workovertime”之後,還需要關閉之前的視窗,重新開啟一個瀏覽器視窗訪問才能正常!

下一篇:ThinkPHP學習(三)配置PHP5支援MySQL,連線MySQL資料庫


相關文章