PHP系列 - 7: Yii 的小知識

更新於 發佈於 閱讀時間約 4 分鐘

由於我在使用 Yii 的過程中,並沒有遇到太多雷,因此這篇文章不會是新的系列,而是作為 PHP 系列的補充,整理一些 Yii 的小知識與筆記。

取得使用者資訊

一般來說,我們(比較菜的時候)可能會透過使用者 ID 去查詢資料庫來獲取使用者資訊。然而實際上,我們可以直接使用 Yii::$app->user->identity 來取得當前使用者的資訊,並且可以透過加上 ->欄位名稱 來獲取特定欄位的資料。

要注意的是,若要將完整的使用者資料輸出,應使用 toArray(),否則只會得到 User 類別的物件,而不是陣列格式的資料。例如:

Yii::info(json_encode(Yii::$app->user->identity->toArray()));

取得 IP

我們可以直接使用 Yii::app()->request->getUserHostAddress(); 取得使用者的 IP 地址。

參數註解

在為函式的參數撰寫註解時,與其直接在參數旁邊加上註解,更推薦使用 PHPDoc 來標註,將註解寫在函式上方。這不僅是 PHPDoc 的標準寫法,還能讓大多數 IDE 正確解析類型資訊,提供更好的語法提示與型別檢查。

舉例來說:

/**
* 取得使用者資訊
*
* @param string $name 使用者名稱
* @param int $age 年齡
* @return array 回傳使用者資訊
*/
function getUserInfo(string $name, int $age): array {
return [
'name' => $name,
'age' => $age
];
}

預設的依賴注入

在 Yii 中,如果我們希望在獲取使用者資訊時,自動取得相關的資料(例如使用者登入時自動獲取他的訂單資訊),可以使用 singleton 來統一管理預設的依賴注入。這樣一來,就不需要在每個控制器中重複處理相同的依賴注入邏輯。

舉例來說:

$this->app->singleton(
LetterService::class,
function ($app) {
return new LogoPictureService(
$app->make(ProfileDao::class),
$app->make(FileApi::class),
$app->make(IndexQueue::class)
);
}
);

取得 Session

我們可以直接使用 Yii::$app->session; 的方式取得當前使用者的 Session 資料,並使用 get() 方法來取得特定的值或進行判斷。例如:

empty($session->get('update_time'))


留言
avatar-img
留言分享你的想法!
avatar-img
林柏宇的沙龍
2會員
57內容數
test
林柏宇的沙龍的其他內容
2025/06/01
本文章介紹了 AWS CodeDeploy 的自動化部署過程,涵蓋從創建部署組、應用程式到設定部署規範文件的步驟。學習如何透過 AWS CLI 和管理控制檯來建構完整的 CICD 流程,提升應用程式的高可用性並實現持續交付。這些內容旨在幫助開發者在 AWS 環境中順利實現自動化部署。
Thumbnail
2025/06/01
本文章介紹了 AWS CodeDeploy 的自動化部署過程,涵蓋從創建部署組、應用程式到設定部署規範文件的步驟。學習如何透過 AWS CLI 和管理控制檯來建構完整的 CICD 流程,提升應用程式的高可用性並實現持續交付。這些內容旨在幫助開發者在 AWS 環境中順利實現自動化部署。
Thumbnail
2025/05/25
這篇文章繼續介紹 AWS CICD 的流程,特別是如何建立和配置 buildspec.yml 文件。內容涵蓋建構階段、環境變數設定、緩存策略及建構產物的定義等重要部分,並提供範例以助於讀者理解。進一步提升 CICD 流程的效率,是開發者與團隊的寶貴資源。
Thumbnail
2025/05/25
這篇文章繼續介紹 AWS CICD 的流程,特別是如何建立和配置 buildspec.yml 文件。內容涵蓋建構階段、環境變數設定、緩存策略及建構產物的定義等重要部分,並提供範例以助於讀者理解。進一步提升 CICD 流程的效率,是開發者與團隊的寶貴資源。
Thumbnail
2025/05/18
本文將介紹如何在 AWS 雲端環境中建立 CI/CD 流程,涵蓋使用 AWS 的 CodeBuild、CodeDeploy 和 CodePipeline 等服務。這個流程讓每次程式碼上傳後,可以自動化執行測試和部署。文章中將說明運作流程、建構過程以及最佳實踐,幫助讀者順利導入 CI/CD。
Thumbnail
2025/05/18
本文將介紹如何在 AWS 雲端環境中建立 CI/CD 流程,涵蓋使用 AWS 的 CodeBuild、CodeDeploy 和 CodePipeline 等服務。這個流程讓每次程式碼上傳後,可以自動化執行測試和部署。文章中將說明運作流程、建構過程以及最佳實踐,幫助讀者順利導入 CI/CD。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
在本章節中,我們探討了 PHP 中如何引用和管理套件。學習了如何使用 Composer 來安裝第三方套件,以及如何引用自定義模組。此外,我們還介紹了如何創建和使用自定義套件,並列舉了一些在 PHP 社群中常見且廣泛使用的套件和庫。通過掌握這些知識,開發者可以更有效地管理和利用各種資源。
Thumbnail
在本章節中,我們探討了 PHP 中如何引用和管理套件。學習了如何使用 Composer 來安裝第三方套件,以及如何引用自定義模組。此外,我們還介紹了如何創建和使用自定義套件,並列舉了一些在 PHP 社群中常見且廣泛使用的套件和庫。通過掌握這些知識,開發者可以更有效地管理和利用各種資源。
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
在這一章中,我們探討了 PHP 中的函數,包括函數的基本結構、不同的函數定義方式(如函數聲明、函數表達式、箭頭函數和匿名函數)以及如何呼叫函數。我們還討論了函數的參數處理方式,包括單個參數、多個參數、預設參數值和剩餘參數。此外,我們還介紹了函數的返回值,包括返回單個值、返回物件和返回函數的情況。
Thumbnail
在這一章中,我們探討了 PHP 中的函數,包括函數的基本結構、不同的函數定義方式(如函數聲明、函數表達式、箭頭函數和匿名函數)以及如何呼叫函數。我們還討論了函數的參數處理方式,包括單個參數、多個參數、預設參數值和剩餘參數。此外,我們還介紹了函數的返回值,包括返回單個值、返回物件和返回函數的情況。
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
在本節中,我們介紹了PHP的基本語法,包括如何在HTML中嵌入PHP代碼,PHP腳本的執行順序,以及多種註解方式。我們還學習了如何定義和使用變數,包括單個變數和多個變數的賦值方法。這些基礎知識將幫助你開始使用PHP進行Web開發。
Thumbnail
在本節中,我們介紹了PHP的基本語法,包括如何在HTML中嵌入PHP代碼,PHP腳本的執行順序,以及多種註解方式。我們還學習了如何定義和使用變數,包括單個變數和多個變數的賦值方法。這些基礎知識將幫助你開始使用PHP進行Web開發。
Thumbnail
這個章節介紹了PHP的基本特性和應用領域,並且列舉了使用PHP的知名公司和網站。了解PHP的簡單易學、跨平台、嵌入HTML等特性,以及PHP在動態網站、電子商務、內容管理系統、社交媒體平台、數據庫管理和API開發中的應用。
Thumbnail
這個章節介紹了PHP的基本特性和應用領域,並且列舉了使用PHP的知名公司和網站。了解PHP的簡單易學、跨平台、嵌入HTML等特性,以及PHP在動態網站、電子商務、內容管理系統、社交媒體平台、數據庫管理和API開發中的應用。
Thumbnail
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
Thumbnail
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News