到這裡,我們似乎已經開始稍微看見 Magento 後端的樣貌了。
就像修行人走到山門入口,準備踏進更深的境界。
不過,在正式進入後端開發領域之前,
我想先跟大家分享一個 非常重要的概念 ——
它會決定你之後的開發方式,是走在正道上,還是一路踩坑。如果我要開發一個新功能,我到底該怎麼做?
難道就是直接打開檔案,把程式碼改一改嗎?今天,我們就來談談 後端開發的心法。
當我們面對龐大的系統,究竟該如何動手,才能走在正道,而不是誤入歧途?
如果你要在網站裡新增一個功能,你可能會直覺想:
「那我就打開程式,把裡面改一改就好啦!」
聽起來很合理對吧?
但在像 Magento 這樣龐大的系統裡,這樣做其實會帶來很多問題:
所以,後端開發真正的心法是:不要直接改核心,而是透過「擴充」的方式來加功能。
.
.
.
就像是你租了一間房子,如果想要讓生活更舒適,不會直接敲掉牆壁或改結構。
你要加東西,是透過 家具、裝飾,或用房東本來就留的 插座、掛勾。
這樣房子不會壞,之後要搬走也很乾淨。
Magento 的擴充就是這個概念:不動核心,靠掛點加功能。
.
.
.
在 Magento 裡,系統本身就幫我們預先留了很多「位置」,可以讓開發者把自己的程式加進去。
這些位置有點像是「保留欄位」:
換句話說,Magento 並不要求你去改核心程式碼,而是告訴你:
「如果要加功能,請用我留給你的這些位置。」
這就是後端開發最重要的心法:
👉 不去動核心,而是透過框架設計好的位置,來擴充功能。
.
.
.
.
Magento 的後端開發方式非常多元,因為系統本身就設計了很多「掛點」,讓我們能在不同層面加功能。
實際上,Magento 的擴充模式非常多:
你可以攔截方法、監聽事件、覆蓋類別、改畫面結構,甚至透過 Service Contracts 或 UI Component 去修改後台表單、Grid,還能用 Patch 來新增資料表或欄位。
但對剛入門的人來說,不需要一次就把所有方式都背起來。
最核心、最常用、而且最能幫你快速進入狀況的,其實就這四種:
這四種擴充方式,是大部分 Magento 專案裡會用到的主力工具。
只要把它們弄懂,你就能處理 70–80% 的需求。
👉 所以接下來的篇章,我會帶大家逐一拆解這些模式,看看它們在實戰中是怎麼用的。
講了這麼多「擴充」,那程式到底要放在哪裡呢?
Magento 的特色就是 模組化,每一個功能都是獨立的模組(Module)。
如果你要新增功能,就要自己建立一個模組,放在:
app/code/Vendor/ModuleName/
其中:
Mrl
、Milton
)。OrderLog
、CustomDiscount
)。一個能「活」起來的模組,大概會長這樣:
app/code/Vendor/ModuleName/
├── registration.php # 告訴 Magento 這個模組存在
├── etc/
│ ├── module.xml # 模組基本資訊(名稱、版本)
│ ├── di.xml # 這裡可以設定 Preference / Plugin
│ └── events.xml # 這裡可以註冊 Observer
├── Observer/
│ └── Example.php # 事件處理的邏輯放這裡
├── Plugin/
│ └── Example.php # 插件(攔截器)的邏輯放這裡
└── view/
└── frontend/
└── layout/
└── catalog_product_view.xml # Layout XML 範例
不用急著背下來,今天先把這個骨架當成「先導預告片」就好。
你只要知道:Magento 幫我們規定了「程式要放在哪裡」,而我們常用的四種擴充方式(Preference、Plugin、Observer、Layout XML),都能在這個骨架裡找到它們各自的家。
.
.
.
.
今天我們先談了一個觀念:
Magento 後端開發的第一心法,就是不動核心、靠擴充。
只要記住這點,你就不會在未來的專案裡迷路。
而在所有擴充方式裡,最常見的就是 Preference、Plugin、Observer、Layout XML。
.
.
接下來的篇章,我會帶大家逐一拆開來看,讓這些「名詞」不再只是生硬的術語,而是能在實戰裡靈活運用的工具。