Skip to content
Snippets Groups Projects
Select Git revision
  • master
  • gitkeep
  • dev protected
  • Sprint/2022-01
  • Sprint/2021-15
  • Product/1573-ReadOnlyResources
  • Topic/1594-SetReadOnlyResources
  • Sprint/2021-09
  • Product/1442-projectInviteMngmnt
  • Topic/1529-HandleExternalUserInvitation
  • Topic/1528-projectInviteAPIcon
  • Sprint/2021-07
  • Product/1440-largerFiles
  • Topic/1451-uploadUrl
  • Topic/1452-largerFiles
  • Sprint/2021-06
  • Product/917-maintenanceFunctionality
  • Topic/1297-maintenanceBanner
  • Sprint/2021-04
  • Product/789-userContactEmail
  • v1.31.0
  • v1.30.0
  • v1.29.0
  • v1.28.0
  • v1.27.0
  • v1.26.0
  • v1.25.0
  • v1.24.2
  • v1.24.1
  • v1.24.0
  • v1.23.1
  • v1.23.0
  • v1.22.0
  • v1.21.0
  • v1.20.0
  • v1.19.0
  • v1.18.1
  • v1.18.0
  • v1.17.1
  • v1.17.0
40 results

notice-api.ts

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    AbstractNewFeatureSniff.php 3.12 KiB
    <?php
    /**
     * PHPCompatibility_AbstractNewFeatureSniff.
     *
     * @category PHP
     * @package  PHPCompatibility
     * @author   Juliette Reinders Folmer <phpcompatibility_nospam@adviesenzo.nl>
     */
    
    /**
     * PPHPCompatibility_AbstractNewFeatureSniff.
     *
     * @category PHP
     * @package  PHPCompatibility
     * @author   Juliette Reinders Folmer <phpcompatibility_nospam@adviesenzo.nl>
     */
    abstract class PHPCompatibility_AbstractNewFeatureSniff extends PHPCompatibility_AbstractComplexVersionSniff
    {
    
    
        /**
         * Determine whether an error/warning should be thrown for an item based on collected information.
         *
         * @param array $errorInfo Detail information about an item.
         *
         * @return bool
         */
        protected function shouldThrowError(array $errorInfo)
        {
            return ($errorInfo['not_in_version'] !== '');
        }
    
    
        /**
         * Retrieve the relevant detail (version) information for use in an error message.
         *
         * @param array $itemArray Version and other information about the item.
         * @param array $itemInfo  Base information about the item.
         *
         * @return array
         */
        public function getErrorInfo(array $itemArray, array $itemInfo)
        {
            $errorInfo = array(
                'not_in_version' => '',
                'error'          => true,
            );
    
            $versionArray = $this->getVersionArray($itemArray);
    
            if (empty($versionArray) === false) {
                foreach ($versionArray as $version => $present) {
                    if ($errorInfo['not_in_version'] === '' && $present === false
                        && $this->supportsBelow($version) === true
                    ) {
                        $errorInfo['not_in_version'] = $version;
                    }
                }
            }
    
            return $errorInfo;
        }
    
    
        /**
         * Get the error message template for this sniff.
         *
         * @return string
         */
        protected function getErrorMsgTemplate()
        {
            return '%s is not present in PHP version %s or earlier';
        }
    
    
        /**
         * Generates the error or warning for this item.
         *
         * @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
         * @param int                  $stackPtr  The position of the relevant token in
         *                                        the stack.
         * @param array                $itemInfo  Base information about the item.
         * @param array                $errorInfo Array with detail (version) information
         *                                        relevant to the item.
         *
         * @return void
         */
        public function addError(PHP_CodeSniffer_File $phpcsFile, $stackPtr, array $itemInfo, array $errorInfo)
        {
            $itemName = $this->getItemName($itemInfo, $errorInfo);
            $error    = $this->getErrorMsgTemplate();
    
            $errorCode = $this->stringToErrorCode($itemName).'Found';
            $data      = array(
                $itemName,
                $errorInfo['not_in_version'],
            );
    
            $error = $this->filterErrorMsg($error, $itemInfo, $errorInfo);
            $data  = $this->filterErrorData($data, $itemInfo, $errorInfo);
    
            $this->addMessage($phpcsFile, $error, $stackPtr, $errorInfo['error'], $errorCode, $data);
        }
    
    
    }//end class