本文整理汇总了PHP中PHP_PMD_AbstractNode::findChildrenOfType方法的典型用法代码示例。如果您正苦于以下问题:PHP PHP_PMD_AbstractNode::findChildrenOfType方法的具体用法?PHP PHP_PMD_AbstractNode::findChildrenOfType怎么用?PHP PHP_PMD_AbstractNode::findChildrenOfType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PHP_PMD_AbstractNode
的用法示例。
在下文中一共展示了PHP_PMD_AbstractNode::findChildrenOfType方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: apply
/**
* Extracts all variable and variable declarator nodes from the given node
* and checks the variable name length against the configured maximum
* length.
*
* @param PHP_PMD_AbstractNode $node The context source code node.
*
* @return void
*/
public function apply(PHP_PMD_AbstractNode $node)
{
$this->resetProcessed();
if ($node->getType() === 'class') {
$fields = $node->findChildrenOfType('FieldDeclaration');
foreach ($fields as $field) {
if ($field->isPrivate()) {
continue;
}
$declarators = $field->findChildrenOfType('VariableDeclarator');
foreach ($declarators as $declarator) {
$this->checkNodeImage($declarator);
}
}
} else {
$declarators = $node->findChildrenOfType('VariableDeclarator');
foreach ($declarators as $declarator) {
$this->checkNodeImage($declarator);
}
$variables = $node->findChildrenOfType('Variable');
foreach ($variables as $variable) {
$this->checkNodeImage($variable);
}
}
$this->resetProcessed();
}
示例2: apply
/**
* Extracts all constant declarations from the given node and tests that
* the image only contains upper case characters.
*
* @param PHP_PMD_AbstractNode $node The context source code node.
*
* @return void
*/
public function apply(PHP_PMD_AbstractNode $node)
{
foreach ($node->findChildrenOfType('ConstantDeclarator') as $declarator) {
if ($declarator->getImage() !== strtoupper($declarator->getImage())) {
$this->addViolation($declarator, array($declarator->getImage()));
}
}
}
示例3: apply
/**
* This method checks if a variable is not named in camelCase
* and emits a rule violation.
*
* @param PHP_PMD_AbstractNode $node The context source code node.
*
* @return void
*/
public function apply(PHP_PMD_AbstractNode $node)
{
foreach ($node->findChildrenOfType('Variable') as $variable) {
if (!preg_match('/^\\$[a-z][a-zA-Z0-9]*$/', $variable->getImage())) {
$this->addViolation($node, array($variable->getImage()));
}
}
}
示例4: apply
/**
* This method checks if a superglobal is used
* and emits a rule violation.
*
* @param PHP_PMD_AbstractNode $node The context source code node.
*
* @return void
*/
public function apply(PHP_PMD_AbstractNode $node)
{
foreach ($node->findChildrenOfType('Variable') as $variable) {
if (in_array($variable->getImage(), $this->superglobals)) {
$this->addViolation($node, array($node->getName(), $variable->getImage()));
}
}
}
示例5: apply
/**
* Method checks for use of static access and warns about it.
*
* @param PHP_PMD_AbstractNode $node The context source code node.
*
* @return void
*/
public function apply(PHP_PMD_AbstractNode $node)
{
$nodes = $node->findChildrenOfType('MemberPrimaryPrefix');
foreach ($nodes as $methodCall) {
if (!$this->isStaticMethodCall($methodCall)) {
continue;
}
$this->addViolation($methodCall, array($methodCall->getImage(), $methodCall->getImage()));
}
}
示例6: apply
public function apply(PHP_PMD_AbstractNode $node)
{
$staticReferences = $node->findChildrenOfType('ClassOrInterfaceReference');
foreach ($staticReferences as $reference) {
if ($this->isReferenceInParameter($reference)) {
continue;
}
$this->addViolation($reference, array($reference->getImage(), $node->getImage()));
}
}
示例7: apply
public function apply(PHP_PMD_AbstractNode $node)
{
foreach ($node->findChildrenOfType('FormalParameter') as $param) {
$declarator = $param->getFirstChildOfType('VariableDeclarator');
$value = $declarator->getValue();
if (!$this->isBooleanValue($value)) {
continue;
}
$this->addViolation($param, array($node->getImage(), $declarator->getImage()));
}
}
示例8: apply
public function apply(PHP_PMD_AbstractNode $node)
{
return;
// not good enough, if, elseif,... nest each other and get detected by this rule :(
foreach ($node->findChildrenOfType('ScopeStatement') as $scope) {
if (!$this->isNestedScope($scope)) {
continue;
}
$this->addViolation($scope, array($node->getImage()));
}
}
示例9: apply
public function apply(PHP_PMD_AbstractNode $node)
{
foreach ($node->findChildrenOfType('ScopeStatement') as $scope) {
$parent = $scope->getParent();
if (!$this->isIfOrElseIfStatement($parent)) {
continue;
}
if (!$this->isElseScope($scope, $parent)) {
continue;
}
$this->addViolation($scope, array($node->getImage()));
}
}
示例10: apply
/**
* This method checks if a given function or method contains an eval-expression
* and emits a rule violation when it exists.
*
* @param PHP_PMD_AbstractNode $node The context source code node.
*
* @return void
*/
public function apply(PHP_PMD_AbstractNode $node)
{
foreach ($node->findChildrenOfType('EvalExpression') as $eval) {
$this->addViolation($eval, array($node->getType(), $node->getName()));
}
}
示例11: _removeUsedParameters
/**
* This method collects all local variables in the body of the currently
* analyzed method or function and removes those parameters that are
* referenced by one of the collected variables.
*
* @param PHP_PMD_AbstractNode $node The context function or method instance.
*
* @return void
*/
private function _removeUsedParameters(PHP_PMD_AbstractNode $node)
{
$variables = $node->findChildrenOfType('Variable');
foreach ($variables as $variable) {
if ($this->isLocal($variable)) {
unset($this->_nodes[$variable->getImage()]);
}
}
}
示例12: _removeUsedParameters
/**
* This method collects all local variables in the body of the currently
* analyzed method or function and removes those parameters that are
* referenced by one of the collected variables.
*
* @param PHP_PMD_AbstractNode $node The context function or method instance.
*
* @return void
*/
private function _removeUsedParameters(PHP_PMD_AbstractNode $node)
{
$variables = $node->findChildrenOfType('Variable');
foreach ($variables as $variable) {
if ($this->isRegularVariable($variable)) {
unset($this->_nodes[$variable->getImage()]);
}
}
/* If the method calls func_get_args() then all parameters are
* automatically referenced */
$functionCalls = $node->findChildrenOfType('FunctionPostfix');
foreach ($functionCalls as $functionCall) {
if ($functionCall->getImage() == 'func_get_args') {
$this->_nodes = array();
}
}
}
示例13: apply
/**
* This method should implement the violation analysis algorithm of concrete
* rule implementations. All extending classes must implement this method.
*
* @param PHP_PMD_AbstractNode $node The current context for analysis.
*
* @return void
*/
public function apply(PHP_PMD_AbstractNode $node)
{
foreach ($node->findChildrenOfType('GotoStatement') as $goto) {
$this->addViolation($goto, array($node->getType(), $node->getName()));
}
}