有没有任何工具可以根据代码中的名称对PHP类方法进行排序


Is there any tool for sorting PHP class methods by name in code?

我想知道是否有任何工具可以对PHP代码进行排序(确切地说,是按名称排序的类的方法)。我用谷歌搜索了一段时间,但什么也没找到。

Edited:我有很多setter和getter方法是混合的,为了代码的可读性和更容易找到它们,我想对它们进行排序。当然,我更喜欢将相关的方法分组,而不是按字母顺序对所有方法进行排序,但在每个组中,我都更喜欢按这种方式对它们进行排序。

您不希望在文件本身中按字母顺序排列类方法。当属于一起的方法彼此接近时,代码更容易阅读:

密切相关的概念应该保持垂直接近[G10][…]我们希望避免迫使读者在我们的源文件和类中跳跃

来自Martin,Clean Code,"垂直距离",第80页

如果您需要按字母顺序查看它们,请改用IDE的动态视图。在Netbeans中,这被称为类大纲视图。参见"在哪里";类大纲视图";在Netbeans for PHP中?关于如何启用此功能。

如果出于某种原因,您迫切希望使用PHP来实现这一点,您可以使用反射API:来实现

// get all the methods
$reflector = new ReflectionClass('Foo');
$methods = $reflector->getMethods();
// sort methods alphabetically
usort($methods, function($method1, $method2) {
    return strcasecmp($method1->getName(), $method2->getName());
});
print_r($methods);

这将为您提供一个按方法名称排序的ReflectionMethod对象数组。