前下划线的主题名称

问题描述:

我在浏览template.php文件中的rootcandy主题,并注意到一些函数名的开始以下划线即前下划线的主题名称

function _rootcandy_admin_links() 

function rootcandy_body_class() 

任何人都知道这是为什么?我认为这些功能必须以主题名称开始。

非常感谢

传统,强调在标识符开始时表示“这是私人/内部的东西。你可能不想惹它从其他模块。”

+0

谢谢山姆。我不认为你可以在template.php中编写自己的函数,所以用你的主题名称来强调它们是有意义的。 – screenm0nkey 2010-04-01 09:40:21

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