| Server IP : 208.122.213.31 / Your IP : 216.73.216.45 Web Server : Apache System : Linux msd6191.mjhst.com 4.18.0-553.137.1.el8_10.x86_64 #1 SMP Wed Jun 24 11:40:24 UTC 2026 x86_64 User : WHMCS_MIA_382 ( 1001) PHP Version : 7.4.33 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/httpd/html/lcmsmodels.com/public_html/vendor/seld/phar-utils/src/ |
Upload File : |
<?php
/*
* This file is part of PHAR Utils.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Seld\PharUtils;
class Linter
{
/**
* Lints all php files inside a given phar with the current PHP version
*
* @param string $path Phar file path
*/
public static function lint($path)
{
$php = defined('PHP_BINARY') ? PHP_BINARY : 'php';
if ($isWindows = defined('PHP_WINDOWS_VERSION_BUILD')) {
$tmpFile = @tempnam(sys_get_temp_dir(), '');
if (!$tmpFile || !is_writable($tmpFile)) {
throw new \RuntimeException('Unable to create temp file');
}
$php = self::escapeWindowsPath($php);
$tmpFile = self::escapeWindowsPath($tmpFile);
// PHP 8 encloses the command in double-quotes
if (PHP_VERSION_ID >= 80000) {
$format = '%s -l %s';
} else {
$format = '"%s -l %s"';
}
$command = sprintf($format, $php, $tmpFile);
} else {
$command = "'".$php."' -l";
}
$descriptorspec = array(
0 => array('pipe', 'r'),
1 => array('pipe', 'w'),
2 => array('pipe', 'w')
);
foreach (new \RecursiveIteratorIterator(new \Phar($path)) as $file) {
if ($file->isDir()) {
continue;
}
if (substr($file, -4) === '.php') {
$filename = (string) $file;
if ($isWindows) {
file_put_contents($tmpFile, file_get_contents($filename));
}
$process = proc_open($command, $descriptorspec, $pipes);
if (is_resource($process)) {
if (!$isWindows) {
fwrite($pipes[0], file_get_contents($filename));
}
fclose($pipes[0]);
$stdout = stream_get_contents($pipes[1]);
fclose($pipes[1]);
$stderr = stream_get_contents($pipes[2]);
fclose($pipes[2]);
$exitCode = proc_close($process);
if ($exitCode !== 0) {
if ($isWindows) {
$stderr = str_replace($tmpFile, $filename, $stderr);
}
throw new \UnexpectedValueException('Failed linting '.$file.': '.$stderr);
}
} else {
throw new \RuntimeException('Could not start linter process');
}
}
}
if ($isWindows) {
@unlink($tmpFile);
}
}
/**
* Escapes a Windows file path
*
* @param string $path
* @return string The escaped path
*/
private static function escapeWindowsPath($path)
{
// Quote if path contains spaces or brackets
if (strpbrk($path, " ()") !== false) {
$path = '"'.$path.'"';
}
return $path;
}
}