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會員
49內容數
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
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
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 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
Thumbnail
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
在PHP中可以用$this、self、與static代表自己這個類別,有些人可能搞不清楚他們的區別,尤其是self、與static,但是他們各別有自己的意義和用法,在實戰中這些些微的差別可能就會造成不可預期的問題,本文仔細說明了他們之間的差別。
Thumbnail
在PHP中可以用$this、self、與static代表自己這個類別,有些人可能搞不清楚他們的區別,尤其是self、與static,但是他們各別有自己的意義和用法,在實戰中這些些微的差別可能就會造成不可預期的問題,本文仔細說明了他們之間的差別。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News