精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
thinkphp第1課:使用thinkphp創(chuàng)建一個項目
一、thinkphp第一課:
1、在網(wǎng)站根目錄下,建立一個項目名稱orange;
2、在orange目錄下,創(chuàng)建一個入口文件index.php:

<?php
define('APP_DEBUG',true); //開啟調(diào)試模式
require('../TP/ThinkPHP.php');
?>

3、下載thinkphp核心包并解壓,放在網(wǎng)站根目錄下(與orange同級,這樣做的目的是為了方便多個項目調(diào)用。如果你只有一個項目,那么可以放在orange目錄下)。我這里文件夾名改成了TP。
4、在瀏覽器打開 http://localhost/orange/,便可以看到thinkphp的歡迎頁面了。
5、同時, 你也會發(fā)現(xiàn),在orange目錄下,創(chuàng)建了一系列的目錄。

二、瀏覽器訪問 http://localhost/orange/ 時,發(fā)生了什么?think的執(zhí)行流程是怎么樣的

(1)第一步:引入框架下的 thinkphp.php

<?php
// ThinkPHP 入口文件
//記錄開始運行時間
$GLOBALS['_beginTime'] = microtime(TRUE);
// 記錄內(nèi)存初始使用
// PHP5.2及以后的版本,提供了一個編譯選項,允許不編譯此函數(shù)(memory_get_usage)。也就是有可能不存在此函數(shù),所以先進行判斷
define('MEMORY_LIMIT_ON',function_exists('memory_get_usage'));
if(MEMORY_LIMIT_ON) $GLOBALS['_startUseMems'] = memory_get_usage();
//計算當(dāng)前應(yīng)用頁面的絕對地址(調(diào)用頁面所在的目錄)
//本實例:APP_PATH項目目錄——>D:/www/Apache2.2/htdocs/orange/
defined('APP_PATH') or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');
//計算出運行臨時目錄;如果手工設(shè)定RUNTIME_PATH,則以手工定義的常量為準(zhǔn)
//本實例:RUNTIME_PATH臨時目錄——>D:/www/Apache2.2/htdocs/orange/Runtime/
defined('RUNTIME_PATH') or define('RUNTIME_PATH',APP_PATH.'Runtime/');
//是否開啟調(diào)試選項,如果定義了常量,則以定義的為準(zhǔn);未定義,則為flase
//如果不開啟調(diào)試,則在項目目錄下有一個~runtime.php的緩存。具體見框架目錄下的runtime.php代碼
//我們在本地做測試,需要在入口文件開啟調(diào)試,即修改后立即生效,如果出錯,頁面會輸出詳細的錯誤信息
defined('APP_DEBUG') or define('APP_DEBUG',false); // 是否調(diào)試模式
//模式:不同的模式,生成不同的runtime.php。暫時用不著
//比如,定義一個mini,則生成~mini_runtime.php
$runtime = defined('MODE_NAME')?'~'.strtolower(MODE_NAME).'_runtime.php':'~runtime.php';
//根據(jù)模式算出運行文件的路徑 ~runtime.php
//本實例:RUNTIME_FILE運行文件的路徑——>D:/www/Apache2.2/htdocs/orange/Runtime/~runtime.php
defined('RUNTIME_FILE') or define('RUNTIME_FILE',RUNTIME_PATH.$runtime);
if(!APP_DEBUG && is_file(RUNTIME_FILE)) {
// 部署模式直接載入運行緩存
require RUNTIME_FILE;
}else{ //第一次運行時,走這條路線
// 系統(tǒng)目錄定義
defined('THINK_PATH') or define('THINK_PATH', dirname(__FILE__).'/');
// 加載運行時文件
//THINK_PATH 為框架的路徑
require THINK_PATH.'Common/runtime.php';
}

thinkphp.php文件,定義了常量app_name和think_path(大寫),并引入runtime.php

(2)第二步,加載框架下的 Common/runtime.php文件
1)、再次定義了一些常量,具體見源碼;
2)、創(chuàng)建項目目錄結(jié)構(gòu)(由build_app_dir()方法創(chuàng)建;
3)、如果app_dubug設(shè)置為false,則把核心加載文件進行編譯。否則,刪除編譯文件,即項目下的~runtime.php文件;
4)、調(diào)用框架TP下的 lib/core/Think.class.php 文件——>執(zhí)行入口 Think::Start()。

(3)第三步,執(zhí)行框架TP下的 lib/core/Think.class.php 的start()方法
1)、接第二步,開始執(zhí)行入口文件Think::Start()。包括聲明錯誤處理句柄、異常處理句柄,并聲明類的自動加載機制;
2)、Think::buildApp(); //初始化app運行,即項目預(yù)編譯,加載項目的各種配置文件,大約有10個文件左右。
3)、加載完配置文件后,執(zhí)行app::run

(4)第四步,執(zhí)行框架下的 lib/core/App.class.php下的run方法
1)、執(zhí)行app下init()靜態(tài)方法:分析url,得出調(diào)用哪個控制器。
2)、執(zhí)行app下exec靜態(tài)方法:根據(jù)計算出來的模型和方法,實例化該module,并執(zhí)行action相應(yīng)的方法。本實例找到的項目下 lib/action目錄下的 IndexAction.class.php,并執(zhí)行index()方法。

經(jīng)過了以上這么多的步驟,我們終于是看到了瀏覽器上顯示的 thinkphp歡迎頁面。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
轉(zhuǎn)php單一入口框架設(shè)計
模塊化設(shè)計
ThinkPHP(3.1.2)源碼分析
ThinkPHP 框架執(zhí)行流程分析
從ThinkPHP框架核心討論C、E、G、L、T、I、N...等函數(shù)
系統(tǒng)發(fā)生錯誤
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服

主站蜘蛛池模板: 临安市| 东山县| 图片| 沙坪坝区| 肃宁县| 永清县| 六枝特区| 分宜县| 旬邑县| 湖北省| 八宿县| 佛冈县| 灌阳县| 新建县| 苏尼特右旗| 榆林市| 乐平市| 融水| 清徐县| 蓝田县| 莱西市| 永和县| 盐津县| 宝清县| 昌都县| 青海省| 蓬安县| 乌拉特后旗| 观塘区| 菏泽市| 丰原市| 锡林郭勒盟| 怀化市| 项城市| 南和县| 奉化市| 和田市| 林甸县| 漯河市| 银川市| 敖汉旗|