[CodeIgniter4]-公共函數和全局常量

CodeIgniter 你可以在任何地方使用它們,並且不需要載入任何 類庫或輔助函數。

  • 公共函數
    • 服務訪問器函數
    • 其他函數
  • 全局常量
    • 核心常量
    • 時間常量

公共函數

服務訪問器函數

cache([$key])

參數:

$key (string) – 需從快取中檢索的參數名 (可選)

返回:

快取對象或從快取取回的變數

返回類型:

mixed

  • $key (string) – 需從快取中檢索的參數名 (可選)

返回: 快取對象或從快取取回的變數 返回類型: mixed 若 $key 不存在, 則返回快取引擎實例. 若 $key有值存在, 則返回 $key 當前存儲在快取中的值,若值不存在則返回null。 Examples: $foo = cache('foo'); $cache = cache();

env($key[, $default=null])

參數:

$key (string) – 需檢索的環境變數中的參數名 $default (mixed) – 如參數值不存在則返回默認值.

返回:

運行環境變數, 默認值, 或者 null.

返回類型:

mixed

  • $key (string) – 需檢索的環境變數中的參數名
  • $default (mixed) – 如參數值不存在則返回默認值.

返回: 運行環境變數, 默認值, 或者 null. 返回類型: mixed 用於檢索事前設置在環境變數中的變數值,若無設置則返回默認值. 若沒有找到健值則返回一個布爾值結果(false). 在特定的運行環境中利用 .env 文件設置環境變數非常有用,例如資料庫設置,API健值等.

esc($data$context='html'[, $encoding])

參數:

$data (string|array) – 被輸出的資訊. $context (string) – 被輸出內容的上下文. 默認值 『html』. $encoding (string) – 編碼字元串.

返回:

輸出的數據(The escaped data).

返回類型:

mixed

  • $data (string|array) – 被輸出的資訊.
  • $context (string) – 被輸出內容的上下文. 默認值 『html』.
  • $encoding (string) – 編碼字元串.

返回: 輸出的數據(The escaped data). 返回類型: mixed 頁面中包含的輸出數據, 它在防止 XSS 攻擊時很有用。 使用Laminas Escaper 庫來處理實際的數據過濾。 若 $data 為字元串, 則簡單轉義並且返回。 若 $data 為數組, 則遍曆數組,轉義 key/value 鍵值對中的 『value』。 有效的 context 值: html, js, css, url, attr, raw, null

helper($filename)

參數:

$filename (string|array) – 載入的輔助類文件的名稱,或一個包含類文件名的數組。

  • $filename (string|array) – 載入的輔助類文件的名稱,或一個包含類文件名的數組。

    載入輔助類文件。

詳情參照 輔助函數 頁.

lang($line[, $args[, $locale]])

param   string   $line: 檢索文本的行 param   array   $args: 一組數組數據,用於替代佔位符.

參數:

$locale (string) – 使用不同的地區,而不是默認的地區設置。 檢索一個基於某個別名字元串的本地特定文件。

  • $locale (string) – 使用不同的地區,而不是默認的地區設置。 檢索一個基於某個別名字元串的本地特定文件。

    更多詳細資訊請見 Localization 頁。

old($key[, $default = null[, $escape = 'html']])

param string $key: 需要使用的原有的表單提交的鍵。 param mixed $default: 如果當$key不存在時返回的默認值。

參數:

$escape (mixed) – 一個 escape 的上下文,或傳值false來禁用該功能。 returns: 給定的鍵對應的值,或設置的默認值

returns:

給定的鍵對應的值,或設置的默認值

returns:

給定的鍵對應的值,或設置的默認值

返回類型:

mixed

  • $escape (mixed) – 一個 escape 的上下文,或傳值false來禁用該功能。 returns: 給定的鍵對應的值,或設置的默認值

返回類型: mixed

提供了一個簡易的方式,在表單提交時訪問 「原有的輸入數據」。

示例:

// 在控制器中查看錶單提交  if (! $model->save($user))  {      // 'withInput'方法意味著"原有的數據"需要被存儲。      return redirect()->back()->withInput();  }    // 視圖中  <input type="email" name="email" value="<?= old('email') ?>">  // 以數組的形式  <input type="email" name="user[email]" value="<?= old('user.email') ?>">

註解

如果你正使用 :doc: form helper </helpers/form_helper> , 這個特性就是內置的。只有在你不使用form helper的時候才需要手動調用。

session([$key])

變數 string $key:

在session中查找的健值名稱.

返回:

$key的值或者null,若$key不存在則返回一個session object實例。

返回類型:

mixed

timer([$name])

參數:

$name (string) – 檢測點的名稱.

返回:

Timer 實例

返回類型:

CodeIgniterDebugTimer

  • $name (string) – 檢測點的名稱.

返回: Timer 實例 返回類型: CodeIgniterDebugTimer 提供一個快速訪問 Timer class的便捷的方法。 你可以將基準點的名稱作為唯一參數傳遞。這將從這一點開始計時, 如果這個名稱的計時器已經運行,則停止計時。 示例: // 獲取一個timer實例 $timer = timer(); // 設置計時器的開始與結束點 timer('controller_loading'); // 開始計時器 . . . timer('controller_loading'); // 停止計時器運行

view($name[, $data[, $options]])

參數:

$name (string) – 被載入的文件名 $data (array) – 鍵值對數組,在視圖中能被獲取。 $options (array) – 可選的參數數組,用於傳遞值給渲染類.

返回:

視圖的輸出.

返回類型:

string

  • $name (string) – 被載入的文件名
  • $data (array) – 鍵值對數組,在視圖中能被獲取。
  • $options (array) – 可選的參數數組,用於傳遞值給渲染類.

返回: 視圖的輸出. 返回類型: string 抓取當前的 RendererInterface-compatible 類(介面渲染類),告訴它展示特定的視圖。給控制器、庫、路由閉包提供了一種便捷的方法。 目前,在 $options 數組裡只有一個選項是可用的,saveData 指定在同一個請求中,在多次調用 view() 時數據將連續。默認情況下, 在顯示該單一視圖文件之後,該視圖的數據被丟棄。 $option 數組主要用於與第三方庫整合,例如Twig。 Example: $data = ['user' => $user]; echo view('user_profile', $data);

詳情參見 the Views 頁。

其他函數

csrf_token()

返回:

當前 CSRF token 名稱。

返回類型:

string

csrf_header()

returns: The name of the header for current CSRF token. rtype: string

The name of the header for current CSRF token.

csrf_hash()

返回:

當前 CSRF hash值.

返回類型:

string

csrf_field()

返回:

帶有全部請求CSRF資訊的隱藏input的HTML字元串。

返回類型:

string

csrf_meta()

returns: A string with the HTML for meta tag with all required CSRF information. rtype: string

Returns a meta tag with the CSRF information already inserted:

<meta name=」{csrf_header}」 content=」{csrf_hash}」>

force_https($duration = 31536000[, $request = null[, $response = null]])

參數:

$duration (int) – 瀏覽器的秒數應該將此資源的鏈接轉換為 HTTPS 。 $request (RequestInterface) – 當前請求對象的實例。 $response (ResponseInterface) – 當前響應對象的實例。

  • $duration (int) – 瀏覽器的秒數應該將此資源的鏈接轉換為 HTTPS 。
  • $request (RequestInterface) – 當前請求對象的實例。
  • $response (ResponseInterface) – 當前響應對象的實例。

檢查頁面當前是否通過HTTPS訪問,如果不是,則用戶通過HTTPS重定向回當前URI。 將設置 HTTP 嚴格的傳輸安全標頭,該命令指示現代瀏覽器自動將HTTP請求修改為 $duration 參數時間的HTTPS請求。

is_cli()

返回:

如果腳本是從命令行執行的,則為true,否則為false。

返回類型:

bool

log_message($level$message[, $context])

參數:

$level (string) – 級別程度 $message (string) – 寫入日誌的資訊. $context (array) – 一個標記和值的聯合數組被替換到 $message

返回:

如果寫入日誌成功則為 TRUE ,如果寫入日誌出現問題則為 FALSE 。

返回類型:

bool

  • $level (string) – 級別程度
  • $message (string) – 寫入日誌的資訊.
  • $context (array) – 一個標記和值的聯合數組被替換到 $message

返回: 如果寫入日誌成功則為 TRUE ,如果寫入日誌出現問題則為 FALSE 。 返回類型: bool 使用 app/Config/Logger.php 中定義的日誌處理程式記錄日誌。 級別可為以下值: emergencyalertcriticalerrorwarningnoticeinfo, or debug. Context 可用於替換 message 字元串中的值。詳情參見 the:doc:Logging Information <logging> 頁。

redirect(string $uri)

param string $uri: 需要引導用戶重定向到的頁面.

返回以後RedirectResponse的實例以便創建重定向:

        // 回到上一個頁面Go back to the previous page          return redirect()->back();            // 跳轉至具體的URI          return redirect()->to('/admin');            // 跳轉到一個命名路由或反向路由 URI          return redirect()->route('named_route');            // 在跳轉中保持原有的輸入值,使得它們可以被 `old()` 函數調用。          return redirect()->back()->withInput();            // 顯示一個消息          return redirect()->back()->with('foo', 'message');    當將URI傳給這個函數時。它將會被作為一個反向路由請求,而不是一個完整的URI,就像使用 redirect()->route()一樣::    // 跳轉到一個命名路由或反向路由 URI          return redirect('named_route');

redirect_with_input($uri[, …$params])

參數:

$uri (string) – 重定向URI。 $params (mixed) – 一個或更多附加參數可被用於 the RouteCollection::reverseRoute() 方法。

  • $uri (string) – 重定向URI。
  • $params (mixed) – 一個或更多附加參數可被用於 the RouteCollection::reverseRoute() 方法。

跟“redirect()“方法等同, 該session刷新的請求中的 $_GET 和 $_POST的值除外。 在下一頁的請求, 表單輔助類的 set_* 方法將首先檢查舊的輸入數據, 若沒發現, 則當前的 GET/POST 將被檢查。 注意 為了取回舊的值, session必須被啟用,優先調用函數.

remove_invisible_characters($str[, $urlEncoded = TRUE])

參數:

$str (string) – 輸入字元串 $urlEncoded (bool) – 是否移除URL編碼字元

返回:

已過濾的字元串

返回類型:

string

  • $str (string) – 輸入字元串
  • $urlEncoded (bool) – 是否移除URL編碼字元

返回: 已過濾的字元串 返回類型: string 這個函數防止在 ASCII 字元之間插入空字元(NULL),例如 Javascript。 範例: remove_invisible_characters('Java\0script'); // 返回: 'Javascript'

route_to($method[, …$params])

參數:

$method (string) – 命名路由別名, 或匹配controller/method名稱。 $params (mixed) – 一個或更多參數被傳遞到路由中匹配。

  • $method (string) – 命名路由別名, 或匹配controller/method名稱。
  • $params (mixed) – 一個或更多參數被傳遞到路由中匹配。

以指定的路由別名或 controller::method 組合為依據生成一個相對 URI 。如果提供參數,將執行參數。 詳情參見 the URI 路由 頁。

service($name[, …$params])

參數:

$name (string) – 載入的服務名稱 $params (mixed) – 一個或多個參數傳遞到服務方法。

返回:

指定的服務類的實例。

返回類型:

mixed

  • $name (string) – 載入的服務名稱
  • $params (mixed) – 一個或多個參數傳遞到服務方法。

返回: 指定的服務類的實例。 返回類型: mixed 提供簡易訪問任何在系統中定義的服務,詳見the Services 。 這將總是返回類的共享實例,因此不管在單個請求中調用多少次,都只會創建一個類實例。 範例: $logger = service('logger'); $renderer = service('renderer', APPPATH.'views/');

single_service($name[, …$params])

參數:

$name (string) – 載入的服務名稱 $params (mixed) – 一個或多個參數傳遞到服務方法。

返回:

指定的服務類的實例。

返回類型:

mixed

  • $name (string) – 載入的服務名稱
  • $params (mixed) – 一個或多個參數傳遞到服務方法。

返回: 指定的服務類的實例。 返回類型: mixed 等同於前面所描述的 service() 函數, 除了所有調用該函數將返回一個類的新實例。service 返回的是相同的實例。

stringify_attributes($attributes[, $js])

參數:

$attributes (mixed) – 字元串, 鍵值對數組, 或者對象 $js (boolean) – TRUE 若值不需要引用 (Javascript風格)

返回:

字元串包含鍵值對屬性, 逗號分隔

返回類型:

string

  • $attributes (mixed) – 字元串, 鍵值對數組, 或者對象
  • $js (boolean) – TRUE 若值不需要引用 (Javascript風格)

返回: 字元串包含鍵值對屬性, 逗號分隔 返回類型: string 輔助函數用於轉換字元串, 數組, 或者字元串的對象屬性。

全局常量

以下的常量在你的應用中的任何地方有效。

核心常量

constantAPPPATH

app 目錄的路徑。

constantROOTPATH

項目根目錄,APPPATH 目錄的上層目錄。

constantSYSTEMPATH

system 目錄的路徑。

constantFCPATH

保存的前端控制器目錄的路徑。

constantSELF

前端控制器的路徑, index.php.

constantWRITEPATH

writable 目錄的路徑。

時間常量

constantSECOND

等於 1.

constantMINUTE

等於 60.

constantHOUR

等於 3600.

constantDAY

等於 86400.

constantWEEK

等於 604800.

constantMONTH

等於 2592000.

constantYEAR

等於 31536000.

constantDECADE

等於 315360000.