mirror of
https://github.com/rectorphp/rector.git
synced 2025-02-18 23:05:25 +01:00
9575dd2231
[CodingStyle] Skip indirect version number on VersionCompareFuncCallToConstantRector (#344)
62 lines
1.7 KiB
PHP
62 lines
1.7 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the Symfony package.
|
|
*
|
|
* (c) Fabien Potencier <fabien@symfony.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
namespace RectorPrefix20210701\Symfony\Component\Config\Resource;
|
|
|
|
/**
|
|
* ComposerResource tracks the PHP version and Composer dependencies.
|
|
*
|
|
* @author Nicolas Grekas <p@tchwork.com>
|
|
*
|
|
* @final
|
|
*/
|
|
class ComposerResource implements \RectorPrefix20210701\Symfony\Component\Config\Resource\SelfCheckingResourceInterface
|
|
{
|
|
private $vendors;
|
|
private static $runtimeVendors;
|
|
public function __construct()
|
|
{
|
|
self::refresh();
|
|
$this->vendors = self::$runtimeVendors;
|
|
}
|
|
public function getVendors() : array
|
|
{
|
|
return \array_keys($this->vendors);
|
|
}
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function __toString() : string
|
|
{
|
|
return __CLASS__;
|
|
}
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function isFresh(int $timestamp) : bool
|
|
{
|
|
self::refresh();
|
|
return \array_values(self::$runtimeVendors) === \array_values($this->vendors);
|
|
}
|
|
private static function refresh()
|
|
{
|
|
self::$runtimeVendors = [];
|
|
foreach (\get_declared_classes() as $class) {
|
|
if ('C' === $class[0] && 0 === \strpos($class, 'ComposerAutoloaderInit')) {
|
|
$r = new \ReflectionClass($class);
|
|
$v = \dirname($r->getFileName(), 2);
|
|
if (\is_file($v . '/composer/installed.json')) {
|
|
self::$runtimeVendors[$v] = @\filemtime($v . '/composer/installed.json');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|