我想知道是否有任何工具可以对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对象数组。