Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHP7 only #33

Closed
wants to merge 9 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 0 additions & 1 deletion .travis.yml
@@ -1,6 +1,5 @@
language: php
php:
- 5.6
- 7.0
before_script:
- composer self-update
Expand Down
10 changes: 5 additions & 5 deletions SlevomatCodingStandard/Helpers/AnnotationHelper.php
@@ -1,4 +1,4 @@
<?php
<?php declare(strict_types = 1);

namespace SlevomatCodingStandard\Helpers;

Expand All @@ -7,11 +7,11 @@ class AnnotationHelper

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $pointer
* @param int $pointer
* @param string $annotationName
* @return string[]
*/
public static function getAnnotationsByName(\PHP_CodeSniffer_File $codeSnifferFile, $pointer, $annotationName)
public static function getAnnotationsByName(\PHP_CodeSniffer_File $codeSnifferFile, int $pointer, string $annotationName): array
{
$annotations = self::getAnnotations($codeSnifferFile, $pointer);

Expand All @@ -24,10 +24,10 @@ public static function getAnnotationsByName(\PHP_CodeSniffer_File $codeSnifferFi

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $pointer
* @param int $pointer
* @return array
*/
public static function getAnnotations(\PHP_CodeSniffer_File $codeSnifferFile, $pointer)
public static function getAnnotations(\PHP_CodeSniffer_File $codeSnifferFile, int $pointer): array
{
$annotations = [];

Expand Down
16 changes: 3 additions & 13 deletions SlevomatCodingStandard/Helpers/ClassHelper.php
@@ -1,28 +1,18 @@
<?php
<?php declare(strict_types = 1);

namespace SlevomatCodingStandard\Helpers;

class ClassHelper
{

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $classPointer
* @return string
*/
public static function getFullyQualifiedName(\PHP_CodeSniffer_File $codeSnifferFile, $classPointer)
public static function getFullyQualifiedName(\PHP_CodeSniffer_File $codeSnifferFile, int $classPointer): string
{
$name = sprintf('%s%s', NamespaceHelper::NAMESPACE_SEPARATOR, self::getName($codeSnifferFile, $classPointer));
$namespace = NamespaceHelper::findCurrentNamespaceName($codeSnifferFile, $classPointer);
return $namespace !== null ? sprintf('%s%s%s', NamespaceHelper::NAMESPACE_SEPARATOR, $namespace, $name) : $name;
}

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $classPointer
* @return string
*/
public static function getName(\PHP_CodeSniffer_File $codeSnifferFile, $classPointer)
public static function getName(\PHP_CodeSniffer_File $codeSnifferFile, int $classPointer): string
{
$tokens = $codeSnifferFile->getTokens();
return $tokens[$codeSnifferFile->findNext(T_STRING, $classPointer + 1, $tokens[$classPointer]['scope_opener'])]['content'];
Expand Down
22 changes: 6 additions & 16 deletions SlevomatCodingStandard/Helpers/DocCommentHelper.php
@@ -1,26 +1,16 @@
<?php
<?php declare(strict_types = 1);

namespace SlevomatCodingStandard\Helpers;

class DocCommentHelper
{

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $pointer
* @return boolean
*/
public static function hasDocComment(\PHP_CodeSniffer_File $codeSnifferFile, $pointer)
public static function hasDocComment(\PHP_CodeSniffer_File $codeSnifferFile, int $pointer): bool
{
return self::findDocCommentOpenToken($codeSnifferFile, $pointer) !== null;
}

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $pointer
* @return boolean
*/
public static function hasDocCommentDescription(\PHP_CodeSniffer_File $codeSnifferFile, $pointer)
public static function hasDocCommentDescription(\PHP_CodeSniffer_File $codeSnifferFile, int $pointer): bool
{
$docCommentOpenToken = self::findDocCommentOpenToken($codeSnifferFile, $pointer);
if ($docCommentOpenToken === null) {
Expand All @@ -35,10 +25,10 @@ public static function hasDocCommentDescription(\PHP_CodeSniffer_File $codeSniff

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $pointer
* @return integer|null
* @param int $pointer
* @return int|null
*/
public static function findDocCommentOpenToken(\PHP_CodeSniffer_File $codeSnifferFile, $pointer)
public static function findDocCommentOpenToken(\PHP_CodeSniffer_File $codeSnifferFile, int $pointer)
{
$found = TokenHelper::findPreviousExcluding($codeSnifferFile, [T_WHITESPACE, T_COMMENT, T_PUBLIC, T_PROTECTED, T_PRIVATE, T_FINAL, T_STATIC, T_ABSTRACT, T_CONST, T_CLASS, T_INTERFACE, T_TRAIT], $pointer - 1);
if ($found !== null && $codeSnifferFile->getTokens()[$found]['code'] === T_DOC_COMMENT_CLOSE_TAG) {
Expand Down
13 changes: 3 additions & 10 deletions SlevomatCodingStandard/Helpers/EmptyFileException.php
@@ -1,4 +1,4 @@
<?php
<?php declare(strict_types = 1);

namespace SlevomatCodingStandard\Helpers;

Expand All @@ -8,11 +8,7 @@ class EmptyFileException extends \Exception
/** @var string */
private $filename;

/**
* @param string $filename
* @param \Exception|null $previous
*/
public function __construct($filename, \Exception $previous = null)
public function __construct(string $filename, \Throwable $previous = null)
{
parent::__construct(sprintf(
'File %s is empty',
Expand All @@ -22,10 +18,7 @@ public function __construct($filename, \Exception $previous = null)
$this->filename = $filename;
}

/**
* @return string
*/
public function getFilename()
public function getFilename(): string
{
return $this->filename;
}
Expand Down
64 changes: 17 additions & 47 deletions SlevomatCodingStandard/Helpers/FunctionHelper.php
@@ -1,27 +1,17 @@
<?php
<?php declare(strict_types = 1);

namespace SlevomatCodingStandard\Helpers;

class FunctionHelper
{

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $functionPointer
* @return string
*/
public static function getName(\PHP_CodeSniffer_File $codeSnifferFile, $functionPointer)
public static function getName(\PHP_CodeSniffer_File $codeSnifferFile, int $functionPointer): string
{
$tokens = $codeSnifferFile->getTokens();
return $tokens[$codeSnifferFile->findNext(T_STRING, $functionPointer + 1, $tokens[$functionPointer]['parenthesis_opener'])]['content'];
}

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $functionPointer
* @return string
*/
public static function getFullyQualifiedName(\PHP_CodeSniffer_File $codeSnifferFile, $functionPointer)
public static function getFullyQualifiedName(\PHP_CodeSniffer_File $codeSnifferFile, int $functionPointer): string
{
$name = self::getName($codeSnifferFile, $functionPointer);
$namespace = NamespaceHelper::findCurrentNamespaceName($codeSnifferFile, $functionPointer);
Expand All @@ -42,22 +32,12 @@ public static function getFullyQualifiedName(\PHP_CodeSniffer_File $codeSnifferF
}
}

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $functionPointer
* @return boolean
*/
public static function isAbstract(\PHP_CodeSniffer_File $codeSnifferFile, $functionPointer)
public static function isAbstract(\PHP_CodeSniffer_File $codeSnifferFile, int $functionPointer): bool
{
return !isset($codeSnifferFile->getTokens()[$functionPointer]['scope_opener']);
}

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $functionPointer
* @return boolean
*/
public static function isMethod(\PHP_CodeSniffer_File $codeSnifferFile, $functionPointer)
public static function isMethod(\PHP_CodeSniffer_File $codeSnifferFile, int $functionPointer): bool
{
foreach (array_reverse($codeSnifferFile->getTokens()[$functionPointer]['conditions']) as $conditionTokenCode) {
if (in_array($conditionTokenCode, [T_CLASS, T_INTERFACE, T_TRAIT, T_ANON_CLASS], true)) {
Expand All @@ -70,10 +50,10 @@ public static function isMethod(\PHP_CodeSniffer_File $codeSnifferFile, $functio

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $functionPointer
* @param int $functionPointer
* @return string[]
*/
public static function getParametersWithoutTypeHint(\PHP_CodeSniffer_File $codeSnifferFile, $functionPointer)
public static function getParametersWithoutTypeHint(\PHP_CodeSniffer_File $codeSnifferFile, int $functionPointer): array
{
return array_keys(array_filter(self::getParametersTypeHints($codeSnifferFile, $functionPointer), function ($parameterTypeHint) {
return $parameterTypeHint === null;
Expand All @@ -82,10 +62,10 @@ public static function getParametersWithoutTypeHint(\PHP_CodeSniffer_File $codeS

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $functionPointer
* @param int $functionPointer
* @return string[]
*/
public static function getParametersTypeHints(\PHP_CodeSniffer_File $codeSnifferFile, $functionPointer)
public static function getParametersTypeHints(\PHP_CodeSniffer_File $codeSnifferFile, int $functionPointer): array
{
$tokens = $codeSnifferFile->getTokens();

Expand All @@ -111,12 +91,7 @@ public static function getParametersTypeHints(\PHP_CodeSniffer_File $codeSniffer
return $parametersTypeHints;
}

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $functionPointer
* @return boolean
*/
public static function returnsValue(\PHP_CodeSniffer_File $codeSnifferFile, $functionPointer)
public static function returnsValue(\PHP_CodeSniffer_File $codeSnifferFile, int $functionPointer): bool
{
$tokens = $codeSnifferFile->getTokens();

Expand All @@ -137,10 +112,10 @@ public static function returnsValue(\PHP_CodeSniffer_File $codeSnifferFile, $fun

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $functionPointer
* @param int $functionPointer
* @return string|null
*/
public static function findReturnTypeHint(\PHP_CodeSniffer_File $codeSnifferFile, $functionPointer)
public static function findReturnTypeHint(\PHP_CodeSniffer_File $codeSnifferFile, int $functionPointer)
{
$tokens = $codeSnifferFile->getTokens();

Expand Down Expand Up @@ -170,32 +145,27 @@ public static function findReturnTypeHint(\PHP_CodeSniffer_File $codeSnifferFile
return $returnTypeHint;
}

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $functionPointer
* @return boolean
*/
public static function hasReturnTypeHint(\PHP_CodeSniffer_File $codeSnifferFile, $functionPointer)
public static function hasReturnTypeHint(\PHP_CodeSniffer_File $codeSnifferFile, int $functionPointer): bool
{
return self::findReturnTypeHint($codeSnifferFile, $functionPointer) !== null;
}

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $functionPointer
* @param int $functionPointer
* @return string[]
*/
public static function getParametersAnnotations(\PHP_CodeSniffer_File $codeSnifferFile, $functionPointer)
public static function getParametersAnnotations(\PHP_CodeSniffer_File $codeSnifferFile, int $functionPointer): array
{
return AnnotationHelper::getAnnotationsByName($codeSnifferFile, $functionPointer, '@param');
}

/**
* @param \PHP_CodeSniffer_File $codeSnifferFile
* @param integer $functionPointer
* @param int $functionPointer
* @return string|null
*/
public static function findReturnAnnotation(\PHP_CodeSniffer_File $codeSnifferFile, $functionPointer)
public static function findReturnAnnotation(\PHP_CodeSniffer_File $codeSnifferFile, int $functionPointer)
{
$returnAnnotations = AnnotationHelper::getAnnotationsByName($codeSnifferFile, $functionPointer, '@return');

Expand Down
45 changes: 10 additions & 35 deletions SlevomatCodingStandard/Helpers/NamespaceHelper.php
@@ -1,4 +1,4 @@
<?php
<?php declare(strict_types = 1);

namespace SlevomatCodingStandard\Helpers;

Expand All @@ -15,20 +15,12 @@ class NamespaceHelper

const NAMESPACE_SEPARATOR = '\\';

/**
* @param string $typeName
* @return boolean
*/
public static function isFullyQualifiedName($typeName)
public static function isFullyQualifiedName(string $typeName): bool
{
return StringHelper::startsWith($typeName, self::NAMESPACE_SEPARATOR);
}

/**
* @param string $typeName
* @return boolean
*/
public static function hasNamespace($typeName)
public static function hasNamespace(string $typeName): bool
{
$parts = self::getNameParts($typeName);

Expand All @@ -39,7 +31,7 @@ public static function hasNamespace($typeName)
* @param string $name
* @return string[]
*/
public static function getNameParts($name)
public static function getNameParts(string $name): array
{
$name = self::normalizeToCanonicalName($name);

Expand All @@ -48,10 +40,10 @@ public static function getNameParts($name)

/**
* @param \PHP_CodeSniffer_File $phpcsFile
* @param integer $anyPointer any pointer type where the search begins from (backwards)
* @param int $anyPointer any pointer type where the search begins from (backwards)
* @return string|null
*/
public static function findCurrentNamespaceName(PHP_CodeSniffer_File $phpcsFile, $anyPointer)
public static function findCurrentNamespaceName(PHP_CodeSniffer_File $phpcsFile, int $anyPointer)
{
$namespacePointer = $phpcsFile->findPrevious(T_NAMESPACE, $anyPointer);
if ($namespacePointer === false) {
Expand All @@ -64,40 +56,23 @@ public static function findCurrentNamespaceName(PHP_CodeSniffer_File $phpcsFile,
return TokenHelper::getContent($phpcsFile, $namespaceNameStartPointer, $namespaceNameEndPointer);
}

/**
* @param string $name
* @return string
*/
public static function getUnqualifiedNameFromFullyQualifiedName($name)
public static function getUnqualifiedNameFromFullyQualifiedName(string $name): string
{
$parts = self::getNameParts($name);
return $parts[count($parts) - 1];
}

/**
* @param string $name
* @return boolean
*/
public static function isQualifiedName($name)
public static function isQualifiedName(string $name): bool
{
return strpos($name, self::NAMESPACE_SEPARATOR) !== false;
}

/**
* @param string $fullyQualifiedName
* @return string
*/
public static function normalizeToCanonicalName($fullyQualifiedName)
public static function normalizeToCanonicalName(string $fullyQualifiedName): string
{
return ltrim($fullyQualifiedName, self::NAMESPACE_SEPARATOR);
}

/**
* @param string $typeName
* @param string $namespace
* @return boolean
*/
public static function isTypeInNamespace($typeName, $namespace)
public static function isTypeInNamespace(string $typeName, string $namespace): bool
{
return StringHelper::startsWith(
self::normalizeToCanonicalName($typeName) . '\\',
Expand Down