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

溫馨提示×

溫馨提示×

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

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

ThinkPHP6.0入門知識點有哪些

發布時間:2022-07-16 09:41:21 來源:億速云 閱讀:153 作者:iii 欄目:編程語言

本篇內容主要講解“ThinkPHP6.0入門知識點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“ThinkPHP6.0入門知識點有哪些”吧!

一.框架介紹

ThinkPHP是一個免費開源的,快速、簡單的面向對象的輕量級PHP開發框架,是為了敏捷WEB應用開發和簡化企業應用開發而誕生的。ThinkPHP從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡代碼的同時,更注重易用性。遵循Apache2開源許可協議發布,意味著你可以免費使用ThinkPHP,甚至允許把你基于ThinkPHP開發的應用開源或商業產品發布/銷售。

  1. TP 框架是免費開源的、輕量級的、簡單快速且敏捷的 PHP 框架

  2. ThinkPHP6.0 要求 PHP 版本是 7.1+以上,官方推薦 7.3

  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框架默認不開啟調試模式,這時我們可以在瀏覽器輸入不存在的控制器或錯誤的地址進行驗證

ThinkPHP6.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 調試小圖標,說明調試開啟了ThinkPHP6.0入門知識點有哪些

開啟調試模式有什么用:

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入門知識點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

宜君县| 宽城| 芷江| 平舆县| 仁化县| 玛纳斯县| 河东区| 舒兰市| 莆田市| 滕州市| 都昌县| 黄梅县| 体育| 榆中县| 汉源县| 莱芜市| 托克逊县| 华容县| 朝阳区| 鹤壁市| 陇西县| 登封市| 剑川县| 台东市| 永修县| 平度市| 万安县| 株洲市| 高唐县| 平乐县| 钟祥市| 菏泽市| 扶余县| 勐海县| 英吉沙县| 长阳| 罗平县| 安平县| 平陆县| 克什克腾旗| 将乐县|