2010-03-31 75 views
2

我在瀏覽template.php文件中的rootcandy主題,並注意到一些函數名的開始以下劃線即前下劃線的主題名稱

function _rootcandy_admin_links() 

function rootcandy_body_class() 

任何人都知道這是爲什麼?我認爲這些功能必須以主題名稱開始。

非常感謝

回答

3

傳統,強調在標識符開始時表示「這是私人/內部的東西。你可能不想惹它從其他模塊。」

+0

謝謝山姆。我不認爲你可以在template.php中編寫自己的函數,所以用你的主題名稱來強調它們是有意義的。 – screenm0nkey 2010-04-01 09:40:21

-1

SamB說了些什麼,還有:template.php中的函數只需要以主題名稱開頭,如果它們是要覆蓋現有的主題函數。例如,當覆蓋theme_foo($variables)時,您在'mytheme'主題的template.php中使用mytheme_foo($variables)。添加自己的功能(如calculate_some_value()_calculate_some_value())是完全可以的,如果這可以幫助您編寫主題。

+0

通常由於缺乏PHP中的名稱空間,因此您不會創建不包含模塊或主題名稱的函數,以避免命名分離。但這是最佳做法,並非要求。 – googletorp 2010-04-01 00:06:54

+0

-1 - **它不是'完全可靠'**,可以隨意命名自己的功能!雖然只有覆蓋是正確的,但技術上需要*以主題名稱開頭,其他函數也應該這樣做以防止命名與其他模塊/主題衝突*(前綴約定是一種'窮人'解決方案缺乏PHP中的命名空間) – 2010-04-01 00:11:01

+0

如果您引用,請正確引用。我並不是說你可以隨意命名。我只想說,除了主題覆蓋功能之外,還可以添加自己的功能。如果我沒有說清楚,我表示歉意。適當的命名空間總是一個好習慣。 – marcvangend 2010-04-01 00:31:01