是否可以单独包装PHP库函数来更改名称?

时间:2010-04-02 10:13:24

标签: php standard-library

今年夏天我将开始一个相当大的PHP应用程序,我将成为唯一的开发人员(所以我没有任何编码约定,以符合我自己的。)

PHP 5.3是一个不错的语言IMO,尽管有愚蠢的命名空间令牌。但有一件事一直困扰着我的是标准库和缺乏命名约定。

所以我很好奇,将一些最常见的标准库函数包装在我自己的函数/类中以使名称更好一点是不是很严重?我想在某些情况下它也可以添加或修改某些功能,虽然目前我没有任何示例(我想我会找到方法让它们成为OO或让它们在我工作时有点不同)。 / p>

如果你看到一个PHP开发人员这样做,你会想到“伙计,这是一个劣质的开发人员吗?”

此外,我不太了解(或任何事情)关于PHP是否/如何优化,我知道通常PHP性能无关紧要。但是这样做会对我的应用程序的性能产生显着影响吗?

4 个答案:

答案 0 :(得分:6)

您可能现在是唯一的开发者,但其他人是否会选择此代码?如果是这样的话,你真的应该主要坚持使用标准库名称,如果你只是简单地包装这个号码。

我使用过代码,其中作者已经包含了这样的调用,这确实会损害快速理解代码的能力

  

如果你看到一个PHP开发人员这样做,你会想到“伙计,这是一个劣质的开发人员吗?”

唔没有......但是我想“该死的......我必须学习这些家伙的新命名标准,虽然好心的话需要我的时间”

答案 1 :(得分:4)

我假设您不仅指代命名约定,还指function (needle, haystack)function(haystack, needle)参数订单的快乐混合。

我完全理解在自我防御中围绕这些构建理智包装的愿望。我仍然宁愿不这样做,只是因为它为你的项目添加了一个专有层,这将使其他人更难理解。每个人都知道array_push做了什么,但MyArrayFunctions::push可能需要查找,甚至调查以了解它的作用。

我倾向于坚持这些标准,尽管在这种情况下它们确实很糟糕。此外,通过一个可以在键入时查找功能和参数的体面IDE,问题已经大大减少了。

另一方面,我真的看不到有任何伤害,例如静态类Array会带来所有push()pop()array_this()array_that()成一个标准表格。我会说这取决于你,真的。

答案 2 :(得分:2)

简单包装不会影响您的性能,但这可能会使项目中的任何未来开发人员感到困惑。作为一名PHP程序员,你会慢慢地期待奇怪的命名约定。

如果要添加任何功能,那么它具有一致的约定。我使用过PHP静态类,它确实包装了本机数组函数(并添加了新的函数)。始终拥有相同的参数展示位置非常方便。

答案 3 :(得分:0)

在我看来,例如数组的OOP实现是可以的,你将包装它们并部分修改功能,但只是重命名函数和改组我不喜欢的参数。

如果您确实需要这样做,请确保使用phpdoc对其进行评论,以便人们可以在其IDE的自动完成中看到正确的语法。