【发布时间】:2018-11-26 09:59:46
【问题描述】:
假设我在 PHP 中有一个类,它带有一个序列化数据的方法。作为英语,我使用-ISE的英文拼写。
class Foo
{
public function serialise($data)
{
return json_encode($data);
}
}
假设我的团队中有一位美国开发人员试图“序列化”数据(-IZE)。
$foo = new Foo();
$foo->serialize(['one', 'two', 'three']);
// PHP Fatal error: Uncaught Error: Call to undefined method Foo::serialize()
解决这个问题的明显方法是给方法设置别名。我的直觉是用美式拼写创建另一种方法,并简单地传递相同的参数。
class Foo
{
// ...
public function serialize($data)
{
return $this->serialise($data);
}
}
但这有几个缺点:
- 我必须匹配参数,如果有更新(容易出错),记得更新这两种方法。
- 美国开发人员的额外函数调用意味着代码效率较低。
- 修改子类中的一个并不一定会更新另一个。
我的问题是:有没有更好的方法在 PHP 中为类方法设置别名?一种可以解决我的顾虑的方法?
【问题讨论】:
-
@AleksandarRakić 将给类起别名,而不是方法
-
有些德语开发人员在他们的功能中使用德语单词.. 他们不应该... 只使用标准和常用方法名称序列化。我不认为你可以在 PHP 中重命名/别名类方法
-
大多数用户会输入
ser,然后使用代码完成提供的任何内容。 ;)