3

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

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

4

1 回答 1

3

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

密切相关的概念应该保持垂直靠近彼此 [G10] [...] 我们希望避免强迫我们的读者在我们的源文件和类中跳来跳去

来自 Martin,清洁代码,“垂直距离”,第 4 页。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对象数组。

于 2013-02-19T09:42:54.600 回答