di.xml注入的使用方式
今天要來介紹di.xml注入的使用方式,開發magento2的時候常常會需要plugin或preference去影響原生的程式,如果只要針對原生程式中的一個物件、參數或陣列做替換或注入的話,用preference去覆蓋掉原本的程式又過於費工,這時候就可以用Argument type直接替換或注入就可以。
這邊我們預設各位讀者都已經知道如何製作一個基本的magento2 module來進行範例製作,因此這邊只寫出必要的設定檔案。
virtualType是一種將不同的依賴項注入class而又不影響sub-class的方法。
type 直接替換並注入並影響所有使用class的方法
以自製logger為例,在開發moudle的時候常常會需要用專門的檔案放log追蹤程式。
先在di.xml用virtualType注入filesystem和fileName這兩個參數,LoggerHandler是對這次創建的virtualType命名,避免會影響到其他有使用Magento\Framework\Logger\Handler\Base。
然後建立一個自己的Logger去extend Monolog\Logger
並對自己寫的Logger用type進行注入name和handlers,此時用type直接替換並注入name=TestExample和handlers[‘system’]=LoggerHandlers 進原本Test\Example\Logger\Logger。
以上就可以用di.xml注入的方式去完成自製logger。
關於di.xml注入詳細的使用方式請參考https://devdocs.magento.com/guides/v2.4/extension-dev-guide/build/di-xml-file.html
以上就是本篇的分享呦!大家都知道該如何做了嗎?喜歡歐斯瑞的讀者們,記得追蹤我們的FB粉絲團及IG,也別忘了訂閱電子報,隨時掌握第一消息喔!若有任何問題,歡迎隨時與我們聯繫。
我要留言