中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP學習筆記(三)入口

發布時間:2020-07-07 03:38:22 來源:網絡 閱讀:752 作者:elegant2008 欄目:web開發

1.入口文件

ThinkPHP采用單一入口模式進行項目部署和訪問,無論完成什么功能,一個項目都有一個統一(但不一定是唯一)的入口。應該說,所有項目都是從入口文件開始的,并且所有的項目的入口文件是類似的,入口文件中主要包括:

2定義框架路徑、項目路徑和項目名稱(可選)

2定義調試模式和運行模式的相關常量(可選)

2載入框架入口文件(必須

首先,在服務器或者本地的Web目錄下面創建一個App目錄,并且把下載的ThinkPHP框架的ThinkPHP目錄拷貝到App目錄下面,然后在App目錄下面創建一個index.php文件,該文件就是我們要創建項目的入口文件。

新版的入口文件更加簡化,默認情況下,只需要在該文件中添加一行代碼即可:

   require  './ThinkPHP/ThinkPHP.php';

然后,我們打開瀏覽器,輸入地址并運行:

http://localhost/App/

就會看到歡迎頁面:

表示ThinkPHP已經成功執行,這個時候,系統已經在App下面自動生成了項目相關目錄,并寫入了初始Action。(注意:如果是類Unix或者Linux環境下測試的話,需要對App目錄設置可寫權限,否則無法自動生成目錄結構

入口文件中還可以添加系統或者應用的常量定義,如果我們的項目需要采用其他的模式運行(例如,采用命令行模式運行),那么可以定義MODE_NAME如下:

define('MODE_NAME','cli');

如果沒有在項目入口文件中設置MODE_NAME常量的話,就表示采用系統的標準模式運行。由于模式擴展可以改變底層的運行機制和行為定義,本手冊中的內容如無特別說明,功能描述均表示運行于標準模式下面。

入口文件并不一定都是指index.php 文件,因為我們可以為不同的項目創建不同的入口文件,例如,前臺項目的入口文件為index.php ,后臺項目的入口文件可能是admin.php。

如果你改變了項目目錄(例如把Application更改為Apps),只需要在入口文件更改APP_PATH常量定義即可:

   define('APP_PATH','./Apps/');
   require './ThinkPHP/ThinkPHP.php';

注意:3.2版本開始無需定義APP_NAME常量。

注意:APP_PATH的定義支持相對路徑和絕對路徑,但必須以“/”結束。

如果你調整了框架核心目錄的位置或者目錄名,只需要這樣修改:

   define('APP_PATH','./Application/');require './Think/ThinkPHP.php';

也可以單獨定義一個THINK_PATH常量用于引入:

   define('APP_PATH','./Application/');
   define('THINK_PATH',realpath('../Think').'/');
   require THINK_PATH.'ThinkPHP.php';

和APP_PATH一樣THINK_PATH路徑定義也必須以“/”結尾。
給THINK_PATH和APP_PATH定義絕對路徑會提高系統的加載效率。

2.入口文件的其他定義


一般不建議在入口文件中做過多的操作,但可以重新定義一些系統常量,入口文件中支持定義(建議)的一些系統常量包括:

常量
描述
THINK_PATH

框架目錄

APP_PATH
應用目錄
RUNTIME_PATH
應用運行時目錄(可寫)
APP_DEBUG
應用調試模式(默認false)
STORAGE_TYPE
存儲類型(默認為FILE)
APP_MODE
應用模式(默認common)

注意:所有路徑常量都必須以“/”結尾

3.自動生成目錄

接下來再看原來空的Application目錄下面,已經自動生成了公共模塊Common、默認的Home模塊和Runtime運行時目錄的目錄結構:

Application
├─Common         應用公共模塊
│  ├─Common      應用公共函數目錄
│  └─Conf        應用公共配置文件目錄
├─Home           默認生成的Home模塊
│  ├─Conf        模塊配置文件目錄
│  ├─Common      模塊函數公共目錄
│  ├─Controller  模塊控制器目錄
│  ├─Model       模塊模型目錄
│  └─View        模塊視圖文件目錄
├─Runtime        運行時目錄
│  ├─Cache       模版緩存目錄
│  ├─Data        數據目錄
│  ├─Logs        日志目錄
│  └─Temp        緩存目錄

如果你不是Windows環境下面的話,需要對應用目錄Application設置可寫權限才能自動生成。
如果不是調試模式的話,會在Runtime目錄下面生成
common~runtime.php文件(應用編譯緩存文件)。

4.目錄安全文件

在自動生成目錄結構的同時,在各個目錄下面我們還看到了index.html文件,這是ThinkPHP自動生成的目錄安全文件。

為了避免某些服務器開啟了目錄瀏覽權限后可以直接在瀏覽器輸入URL地址查看目錄,系統默認開啟了目錄安全文件機制,會在自動生成目錄的時候生成空白的index.html文件,當然安全文件的名稱可以設置,例如你想給安全文件定義為default.html可以在入口文件中添加:

   define('DIR_SECURE_FILENAME', 'default.html');
   define('APP_PATH','./Application/');
   require './ThinkPHP/ThinkPHP.php';

如果你的環境足夠安全,不希望生成目錄安全文件,可以在入口文件里面關閉目錄安全文件的生成,例如:

   define('BUILD_DIR_SECURE', false);

5.控制器

我們可以在自動生成的Application/Home/Controller目錄下面找到一個IndexController.class.php 文件,這就是默認的Index控制器文件。

控制器類的命名方式是:控制器名(駝峰法,首字母大寫)+Controller

控制器文件的命名方式是:類名+class.php(類文件后綴)

默認的歡迎頁面其實就是訪問的Home模塊下面的Index控制器類的index操作方法我們修改默認的index操作方法如下:

namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller 
{    
    public function index()
    {        
    echo 'hello,world!';    
    }
}

再次運行應用入口文件,瀏覽器會顯示:hello,world!

我們再來看下控制器類,IndexController控制器類的開頭是命名空間定義:

    namespace Home\Controller;

這是系統的規范要求,表示當前類是Home模塊下的控制器類,命名空間和實際的控制器文件所在的路徑是一致的,也就是說: Home\Controller\IndexController類 對應的控制器文件位于應用目錄下面的 Home/Controller/IndexController.class.php,如果你改變了當前的模塊名,那么這個控制器類的命名空間也需要隨之修改。

注意:命名空間定義必須寫在所有的PHP代碼之前聲明,否則會出錯

    use Think\Controller;

表示引入 Think\Controller 命名空間便于直接使用。所以,

    use Think\Controller;
   class IndexController extends Controller

等同于使用:

    class IndexController extends \Think\Controller


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平武县| 仙游县| 清苑县| 同仁县| 福清市| 阳信县| 塔河县| 上栗县| 桐柏县| 甘南县| 米泉市| 宜君县| 东兴市| 屏边| 墨竹工卡县| 祁东县| 镇沅| 绍兴县| 腾冲县| 时尚| 博罗县| 张掖市| 清水河县| 玉林市| 景泰县| 钦州市| 榕江县| 兴海县| 子长县| 北辰区| 竹北市| 留坝县| 大新县| 秭归县| 方城县| 嘉兴市| 鸡泽县| 曲靖市| 六安市| 札达县| 崇左市|