78 regels
1.7 KiB
PHP
78 regels
1.7 KiB
PHP
|
<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace Fbrinker\ExtensionCheck\Extension;
|
||
|
|
||
|
use ReflectionExtension;
|
||
|
|
||
|
class ExtensionInfo
|
||
|
{
|
||
|
/** @var ReflectionExtension */
|
||
|
private $extensionReflection;
|
||
|
|
||
|
public function __construct(string $extension)
|
||
|
{
|
||
|
$this->extensionReflection = new ReflectionExtension($extension);
|
||
|
}
|
||
|
|
||
|
public function getClasses(): array
|
||
|
{
|
||
|
$classes = $this->extensionReflection->getClassNames();
|
||
|
|
||
|
\natcasesort($classes);
|
||
|
return $classes;
|
||
|
}
|
||
|
|
||
|
public function getFunctions(): array
|
||
|
{
|
||
|
$functionReflections = $this->extensionReflection->getFunctions();
|
||
|
|
||
|
if (empty($functionReflections)) {
|
||
|
return [];
|
||
|
}
|
||
|
|
||
|
$functions = [];
|
||
|
foreach ($functionReflections as $functionReflection) {
|
||
|
$functions[] = $functionReflection->getName();
|
||
|
}
|
||
|
|
||
|
\natcasesort($functions);
|
||
|
return $functions;
|
||
|
}
|
||
|
|
||
|
public function getConstants(): array
|
||
|
{
|
||
|
$constants = $this->extensionReflection->getConstants();
|
||
|
|
||
|
if (empty($constants)) {
|
||
|
return [];
|
||
|
}
|
||
|
|
||
|
$constants = array_keys($constants);
|
||
|
\natcasesort($constants);
|
||
|
return $constants;
|
||
|
}
|
||
|
|
||
|
public function getRequiredDependencies(): array
|
||
|
{
|
||
|
$dependencies = $this->extensionReflection->getDependencies();
|
||
|
|
||
|
if (empty($dependencies)) {
|
||
|
return [];
|
||
|
}
|
||
|
|
||
|
$requiredDependencies = [];
|
||
|
foreach ($dependencies as $dependency => $status) {
|
||
|
if ($status !== 'required') {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
$requiredDependencies[] = $dependency;
|
||
|
}
|
||
|
|
||
|
\natcasesort($requiredDependencies);
|
||
|
return $requiredDependencies;
|
||
|
}
|
||
|
}
|