有没有什么最新的教程,包括更复杂的规则处理?我在网上找到的大多数教程都没有涉及1.4.3,也就是ruleset.xml,而是旧的php编码文件。
其次,我想做更深入的处理,因为我们公司有不同的编码标准,我需要编码强制执行,并希望有一个良好的起点,以了解现有的复杂嗅探,以及其中的结构。
我们公司使用与通用库不同的标准,以便在阅读代码时,开发人员知道该方法是否来自外部库(PEAR/Zend/etc...)因为命名约定将表明。如果编码标准不是我们的格式,那么该方法来自外部库,并且很有可能它工作得很好,不需要开发人员重新实现某些东西。
在更大的代码库中,您将看到创建的类和引用的方法,而不再知道源代码,也不跟踪堆栈。因此,通过使用不同的标准,are类就会脱颖而出。
例如:
$Foo = Foo::Find(); // Mixed case - from a library or PHP itself
$Bar = BAR::Find(); // All uppercase - ours, may need to optimize the Find()变量声明是相同的,我们在方法和变量上使用尾随下划线来表示Private作用域。如果有人正在更改作用域解析,他们将删除下划线和change/remove private关键字,以清楚地表明他们理解其更改的后果。
发布于 2012-12-06 10:08:50
从这里开始,但这是基本的:http://pear.php.net/manual/en/package.php.php-codesniffer.coding-standard-tutorial.php
PHP_CodeSniffer附带了相当多的嗅探,可以做很多不同的事情。可能值得查看其中的一些,以了解它们是如何使用令牌栈的。
使用-vv命令行参数也是查看文件如何转换为标记的一个很好的方法。这将帮助您注册以查找正确的令牌类型,并使用许多嗅探器使用的$phpcsFile->findNext()和$phpcsFile->findPrevious()方法。
这里有一个可能值得一看的小问题:https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ElseIfDeclarationSniff.php
另一个显示令牌堆栈中附加索引的用法:https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ControlStructureSpacingSniff.php
https://stackoverflow.com/questions/13734856
复制相似问题