首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP_CodeSniffer教程

PHP_CodeSniffer教程
EN

Stack Overflow用户
提问于 2012-12-06 08:09:33
回答 1查看 1K关注 0票数 1

有没有什么最新的教程,包括更复杂的规则处理?我在网上找到的大多数教程都没有涉及1.4.3,也就是ruleset.xml,而是旧的php编码文件。

其次,我想做更深入的处理,因为我们公司有不同的编码标准,我需要编码强制执行,并希望有一个良好的起点,以了解现有的复杂嗅探,以及其中的结构。

我们公司使用与通用库不同的标准,以便在阅读代码时,开发人员知道该方法是否来自外部库(PEAR/Zend/etc...)因为命名约定将表明。如果编码标准不是我们的格式,那么该方法来自外部库,并且很有可能它工作得很好,不需要开发人员重新实现某些东西。

在更大的代码库中,您将看到创建的类和引用的方法,而不再知道源代码,也不跟踪堆栈。因此,通过使用不同的标准,are类就会脱颖而出。

例如:

代码语言:javascript
复制
$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关键字,以清楚地表明他们理解其更改的后果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13734856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档