70 lines
1.6 KiB
PHP
70 lines
1.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* This file is part of the CodeIgniter 4 framework.
|
|
*
|
|
* (c) CodeIgniter Foundation <admin@codeigniter.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace CodeIgniter\Exceptions;
|
|
|
|
use RuntimeException;
|
|
|
|
/**
|
|
* Class FrameworkException
|
|
*
|
|
* A collection of exceptions thrown by the framework
|
|
* that can only be determined at run time.
|
|
*/
|
|
class FrameworkException extends RuntimeException implements ExceptionInterface
|
|
{
|
|
use DebugTraceableTrait;
|
|
|
|
public static function forEnabledZlibOutputCompression()
|
|
{
|
|
return new static(lang('Core.enabledZlibOutputCompression'));
|
|
}
|
|
|
|
public static function forInvalidFile(string $path)
|
|
{
|
|
return new static(lang('Core.invalidFile', [$path]));
|
|
}
|
|
|
|
public static function forCopyError(string $path)
|
|
{
|
|
return new static(lang('Core.copyError', [$path]));
|
|
}
|
|
|
|
public static function forMissingExtension(string $extension)
|
|
{
|
|
if (strpos($extension, 'intl') !== false)
|
|
{
|
|
// @codeCoverageIgnoreStart
|
|
$message = sprintf(
|
|
'The framework needs the following extension(s) installed and loaded: %s.',
|
|
$extension
|
|
);
|
|
// @codeCoverageIgnoreEnd
|
|
}
|
|
else
|
|
{
|
|
$message = lang('Core.missingExtension', [$extension]);
|
|
}
|
|
|
|
return new static($message);
|
|
}
|
|
|
|
public static function forNoHandlers(string $class)
|
|
{
|
|
return new static(lang('Core.noHandlers', [$class]));
|
|
}
|
|
|
|
public static function forFabricatorCreateFailed(string $table, string $reason)
|
|
{
|
|
return new static(lang('Fabricator.createFailed', [$table, $reason]));
|
|
}
|
|
}
|