31
2
mirror of https://github.com/joomla-extensions/jedchecker.git synced 2024-09-28 04:59:04 +00:00

Joomla! code style fixes

This commit is contained in:
Denis Ryabov 2021-04-04 13:31:35 +03:00
parent 2c2ea7da46
commit 40135deac7

View File

@ -13,14 +13,13 @@ defined('_JEXEC') or die('Restricted access');
// Include the rule base class // Include the rule base class
require_once(JPATH_COMPONENT_ADMINISTRATOR . '/models/rule.php'); require_once JPATH_COMPONENT_ADMINISTRATOR . '/models/rule.php';
/** /**
* class JedcheckerRulesGpl * class JedcheckerRulesGpl
* *
* This class searches all files for the _JEXEC check * This class searches all files for the GPL/compatible licenses
* which prevents direct file access.
* *
* @since 1.0 * @since 1.0
*/ */
@ -52,14 +51,14 @@ class JedcheckerRulesGpl extends JEDcheckerRule
* *
* @var string * @var string
*/ */
protected $regex_gpl_licenses; protected $regexGPLLicenses;
/** /**
* Regular expression to match GPL-compatible licenses. * Regular expression to match GPL-compatible licenses.
* *
* @var string * @var string
*/ */
protected $regex_compat_licenses; protected $regexCompatLicenses;
/** /**
* Initiates the file search and check * Initiates the file search and check
@ -88,28 +87,31 @@ class JedcheckerRulesGpl extends JEDcheckerRule
/** /**
* Initialization (prepare regular expressions) * Initialization (prepare regular expressions)
*
* @return void
*/ */
protected function init() protected function init()
{ {
$gpl_licenses = (array) file(__DIR__ . '/gpl/gnu.txt'); $GPLLicenses = (array) file(__DIR__ . '/gpl/gnu.txt');
$this->regex_gpl_licenses = $this->generate_regexp($gpl_licenses); $this->regexGPLLicenses = $this->generateRegexp($GPLLicenses);
$compat_licenses = (array) file(__DIR__ . '/gpl/compat.txt'); $compatLicenses = (array) file(__DIR__ . '/gpl/compat.txt');
$extra_licenses = $this->params->get('constants'); $extraLicenses = $this->params->get('constants');
$extra_licenses = explode(',', $extra_licenses); $extraLicenses = explode(',', $extraLicenses);
$compat_licenses = array_merge($compat_licenses, $extra_licenses); $compatLicenses = array_merge($compatLicenses, $extraLicenses);
$this->regex_compat_licenses = $this->generate_regexp($compat_licenses); $this->regexCompatLicenses = $this->generateRegexp($compatLicenses);
} }
/** /**
* Generate regular expression to match the given list of license names * Generate regular expression to match the given list of license names
* @param $lines * @param array $lines List of license names
*
* @return string * @return string
*/ */
protected function generate_regexp($lines) protected function generateRegexp($lines)
{ {
$titles = array(); $titles = array();
$ids = array(); $ids = array();
@ -117,17 +119,19 @@ class JedcheckerRulesGpl extends JEDcheckerRule
foreach ($lines as $line) foreach ($lines as $line)
{ {
$line = trim($line); $line = trim($line);
if ($line === '' || $line[0] === '#') if ($line === '' || $line[0] === '#')
{ {
// skip empty and commented lines // Skip empty and commented lines
continue; continue;
} }
$title = $line; $title = $line;
if (substr($line, -1, 1) === ')') if (substr($line, -1, 1) === ')')
{ {
// extract identifier // Extract identifier
$pos = strrpos($line, '('); $pos = strrpos($line, '(');
if ($pos !== false) if ($pos !== false)
{ {
$title = trim(substr($line, 0, $pos)); $title = trim(substr($line, 0, $pos));
@ -146,7 +150,7 @@ class JedcheckerRulesGpl extends JEDcheckerRule
{ {
$title = preg_quote($title, '#'); $title = preg_quote($title, '#');
// expand vN.N to different version formats // Expand vN.N to different version formats
$title = preg_replace('/(?<=\S)\s+v(?=\d)/', ',?\s+(?:v\.?\s*|version\s+)?', $title); $title = preg_replace('/(?<=\S)\s+v(?=\d)/', ',?\s+(?:v\.?\s*|version\s+)?', $title);
$title = preg_replace('/\s+/', '\s+', $title); $title = preg_replace('/\s+/', '\s+', $title);
@ -182,7 +186,7 @@ class JedcheckerRulesGpl extends JEDcheckerRule
*/ */
protected function find($file) protected function find($file)
{ {
// check the file is empty (i.e. comments-only) // Check the file is empty (i.e. comments-only)
$content = php_strip_whitespace($file); $content = php_strip_whitespace($file);
if (preg_match('#^<\?php\s+$#', $content)) if (preg_match('#^<\?php\s+$#', $content))
@ -195,26 +199,26 @@ class JedcheckerRulesGpl extends JEDcheckerRule
// Remove leading "*" characters from phpDoc-like comments // Remove leading "*" characters from phpDoc-like comments
$content = preg_replace('/^\s*\*/m', '', $content); $content = preg_replace('/^\s*\*/m', '', $content);
if (preg_match($this->regex_gpl_licenses, $content, $match, PREG_OFFSET_CAPTURE)) if (preg_match($this->regexGPLLicenses, $content, $match, PREG_OFFSET_CAPTURE))
{ {
$line_no = substr_count($content, "\n", 0, $match[0][1]) + 1; $lineno = substr_count($content, "\n", 0, $match[0][1]) + 1;
$this->report->addInfo( $this->report->addInfo(
$file, $file,
JText::_('COM_JEDCHECKER_PH1_LICENSE_FOUND'), JText::_('COM_JEDCHECKER_PH1_LICENSE_FOUND'),
$line_no, $lineno,
$match[0][0] $match[0][0]
); );
return true; return true;
} }
if (preg_match($this->regex_compat_licenses, $content, $match, PREG_OFFSET_CAPTURE)) if (preg_match($this->regexCompatLicenses, $content, $match, PREG_OFFSET_CAPTURE))
{ {
$line_no = substr_count($content, "\n", 0, $match[0][1]) + 1; $lineno = substr_count($content, "\n", 0, $match[0][1]) + 1;
$this->report->addInfo( $this->report->addInfo(
$file, $file,
JText::_('COM_JEDCHECKER_GPL_COMPATIBLE_LICENSE_WAS_FOUND'), JText::_('COM_JEDCHECKER_GPL_COMPATIBLE_LICENSE_WAS_FOUND'),
$line_no, $lineno,
$match[0][0] $match[0][0]
); );