您好,登錄后才能下訂單哦!
本篇內容主要講解“ThinkPHP6.0入門知識點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“ThinkPHP6.0入門知識點有哪些”吧!
ThinkPHP是一個免費開源的,快速、簡單的面向對象的輕量級PHP開發框架,是為了敏捷WEB應用開發和簡化企業應用開發而誕生的。ThinkPHP從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡代碼的同時,更注重易用性。遵循Apache2
開源許可協議發布,意味著你可以免費使用ThinkPHP,甚至允許把你基于ThinkPHP開發的應用開源或商業產品發布/銷售。
TP 框架是免費開源的、輕量級的、簡單快速且敏捷的 PHP 框架
ThinkPHP6.0 要求 PHP 版本是 7.1+以上,官方推薦 7.3
除了 PHP7.1+,還需要開啟 PDO 數據庫引擎和 MBstring 字符串擴展
官網不提供軟件包下載,官方推薦使用composer下載和更新
關于composer的安裝和使用不做介紹
由于composer默認鏡像源在國外,鏈接速度較慢,因此安裝的時間可能會比較長,我們建議使用國內鏡像(阿里云),代碼如下
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
如果你是第一次安裝,或者你需要安裝全新框架,在命令行界面,切換到你需要安裝的WEB目錄,執行如下命令
composer create-project topthink/think tp
這里的“tp”是項目的根目錄名,你可以任意更改,這個就是我們后邊常提到的應用根目錄
如果你之前已經安裝過,那么切換到你的應用根目錄下面,然后執行下面的命令進行更新
composer update topthink/framework
在cmd命令行進入項目目錄運行命令
php think run
在瀏覽器輸入: http://127.0.0.1:8000 或 http://localhost:8000你就會看到歡迎界面
如果 80 端口沒有被占用的情況下,你也可以直接使用
php think run -p 80
然后你就可以直接使用http://localhost/ 直接訪問了,這時瀏覽器默認訪問文件是:應用根目錄/app/controller/index.php控制器的index方法,而http://localhost/的實際路徑是http://localhost/index.php/index/index,(具體原因這里不做詳細解釋,后邊在進行探討)
當然你現在可以把localhost配置為本地域名進行訪問,這里不做贅述
3.這里以tp.com為例:訪問index控制器的index操作
http://tp.com 訪問默認入口文件、默認控制器和默認方法
http://tp.com/index.php 指定index.php入口文件,默認控制器的默認方法
http://tp.com/index.php/index 指定index.php入口文件,index控制器的默認方法
http://tp.com/index.php/index/index 指定index.php入口文件,index控制器的index方法
開發規范沒什么好講直接參考手冊官方文檔
目錄結構也沒必要講直接參考手冊官方文檔
在項目的開發階段,我們建議開啟框架的調試模式
當調試模式開啟后,會犧牲一部分執行效率,但能大大提高我們的 開發排錯能力
當部署生產環境時,我們再關閉調試模式即可
默認安裝的tp6.0框架默認不開啟調試模式,這時我們可以在瀏覽器輸入不存在的控制器或錯誤的地址進行驗證
表示調試未開啟
通過命令行安裝的 TP6.0,會自動在根目錄生成一個.example.env 文件,即環境變量示例文件,我們只要把這個文件更名為.env (通常復制一份更名即可), 即可生效,同時開啟調試模式
//環境變量示例文件 APP_DEBUG = true [APP] DEFAULT_TIMEZONE = Asia/Shanghai [DATABASE] TYPE = mysql HOSTNAME = 127.0.0.1 DATABASE = test USERNAME = username PASSWORD = password HOSTPORT = 3306 CHARSET = utf8 DEBUG = true [LANG] default_lang = zh-cn
不難看出文件APP_DEBUG = true打開調試模式,若要關閉調試模式將true改為false,另外還有應用配置,數據庫和語言設置,當然你也可以配置更多內容
現在我們在刷新剛才的頁面,會提示控制器不存在,并且右下角會出現 Trace 調試小圖標,說明調試開啟了
開啟調試模式有什么用:
a. 記錄系統運行流程的執行過程
b. 展示錯誤和調試信息,并開啟日志記錄
c. 模版修改可以及時生效 ( 不會被緩存干擾 )
d. 啟動右下角的 Trace 調試功能,更加強大
e. 發生異常時,也會顯示異常信息
還有一種模式,就是關閉調試的時候,也可以顯示簡要的錯誤信息,打開根目錄下 config 的 app.php 最后一行設置為true
'show_error_msg' => false,
配置文件有兩種形式:一種是采用.env適用于本地開發,另一種就是在根目錄下的config目錄下,包含整個項目的配置,適用于生產環境
注意:官方明確表示.env文件部署后會被忽略,所以它僅適用于本地開發
配置優先級,如果在本地測試時 .env 優先于 config,從 config 配置中可以看出,它是先讀取 .env 的,然后再默認配置一個自己的,而部署環境則忽略.env,只讀取config
開開發項目過程中,我們少不了獲取配置文件中的屬性值,那么我們怎么能獲取到這些值呢?接下來我們以獲取數據庫的用戶名為例
對于.env文件。
APP_DEBUG = true [APP] DEFAULT_TIMEZONE = Asia/Shanghai [DATABASE] TYPE = mysql HOSTNAME = 127.0.0.1 DATABASE = test USERNAME = root PASSWORD = 123456 HOSTPORT = 3306 CHARSET = utf8 DEBUG = true [LANG] default_lang = zh-cn
比如要獲取[DATABASE]下的USERNAME=root獲取方式如下:
use think\facade\Env; return Env::get('database.username'); 我們寫一個getEnv發方法獲取databases下的username,這個比較簡單,直接獲取.env文件下的,database下的username
<?php namespace app\controller; use app\BaseController; use think\facade\Env;//引入env類 class Index extends BaseController { public function getEnv(){ return Env::get('database.username'); } }
對于config文件
<?php return [ // 默認使用的數據庫連接配置 'default' => env('database.driver', 'mysql'), // 自定義時間查詢規則 'time_query_rule' => [], // 自動寫入時間戳字段 // true為自動識別類型 false關閉 // 字符串則明確指定時間字段類型 支持 int timestamp datetime date 'auto_timestamp' => true, // 時間字段取出后的默認時間格式 'datetime_format' => 'Y-m-d H:i:s', // 時間字段配置 配置格式:create_time,update_time 'datetime_field' => '', // 數據庫連接配置信息 'connections' => [ 'mysql' => [ // 數據庫類型 'type' => env('database.type', 'mysql'), // 服務器地址 'hostname' => env('database.hostname', '127.0.0.1'), // 數據庫名 'database' => env('database.database', ''), // 用戶名 'username' => env('database.username', 'root123'), // 密碼 'password' => env('database.password', ''), // 端口 'hostport' => env('database.hostport', '3306'), // 數據庫連接參數 'params' => [], // 數據庫編碼默認采用utf8 'charset' => env('database.charset', 'utf8'), // 數據庫表前綴 'prefix' => env('database.prefix', ''), // 數據庫部署方式:0 集中式(單一服務器),1 分布式(主從服務器) 'deploy' => 0, // 數據庫讀寫是否分離 主從式有效 'rw_separate' => false, // 讀寫分離后 主服務器數量 'master_num' => 1, // 指定從服務器序號 'slave_no' => '', // 是否嚴格檢查字段是否存在 'fields_strict' => true, // 是否需要斷線重連 'break_reconnect' => false, // 監聽SQL 'trigger_sql' => env('app_debug', true), // 開啟字段緩存 'fields_cache' => false, ], // 更多的數據庫配置信息 ], ];
比如要獲取[DATABASE]下的USERNAME=root獲取方式如下:
use think\facade\Config;
return Config::get('database.connections.mysql.username');
我們寫一個getConfig發方法獲取databases下的username,這個就要麻煩一點,這里獲取的順序依次是:
所在配置文件——>數據庫連接配置信息——>mysql數據庫——>用戶名
需要注意的是:由于config配置文件的優先級低于.env,所以,如果當前是處于開發環境,如下代碼并不會獲取到config目錄下database配置文件的用戶名,而是獲取.env文件的用戶名,所以想要獲取正確配置則先關閉開發環境
<?php namespace app\controller; use app\BaseController; use think\facade\Env;//引入env類 class Index extends BaseController { public function hello($name = 'ThinkPHP6') { return 'hello,' . $name; } public function getEnv(){ return Env::get('database.username'); } public function getConfig(){ return Config::get('database.connections.mysql.username'); } }
對于上邊獲取config配置有限讀取.env文件的問題,我們可以在獲取信息之前先使用has方法判斷當前需要獲取值是否存在兩個文件再決定讀取哪一個文件
<?php namespace app\controller; use think\facade\Config; use app\BaseController; use think\facade\Env;//引入env類 class Index extends BaseController { public function getEnv(){ return Env::get('database.username'); } public function getConfig(){ return Config::get('database.connections.mysql.username'); } public function getSite(){ echo Env::has('database.username'); echo Config::has('database.connections.mysql.username'); } }
我們得到的值為字符串用echo輸出
到此,相信大家對“ThinkPHP6.0入門知識點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。