This commit is contained in:
Marek
2026-03-24 00:04:55 +01:00
commit c5229e48ed
4225 changed files with 511461 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
<?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 Symfony\Component\Dotenv\Exception;
/**
* Interface for exceptions.
*
* @author Fabien Potencier <fabien@symfony.com>
*/
interface ExceptionInterface extends \Throwable
{
}

View File

@@ -0,0 +1,34 @@
<?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 Symfony\Component\Dotenv\Exception;
/**
* Thrown when a file has a syntax error.
*
* @author Fabien Potencier <fabien@symfony.com>
*/
final class FormatException extends \LogicException implements ExceptionInterface
{
public function __construct(
string $message,
private FormatExceptionContext $context,
int $code = 0,
?\Throwable $previous = null,
) {
parent::__construct(\sprintf("%s in \"%s\" at line %d.\n%s", $message, $context->getPath(), $context->getLineno(), $context->getDetails()), $code, $previous);
}
public function getContext(): FormatExceptionContext
{
return $this->context;
}
}

View File

@@ -0,0 +1,44 @@
<?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 Symfony\Component\Dotenv\Exception;
/**
* @author Fabien Potencier <fabien@symfony.com>
*/
final class FormatExceptionContext
{
public function __construct(
private string $data,
private string $path,
private int $lineno,
private int $cursor,
) {
}
public function getPath(): string
{
return $this->path;
}
public function getLineno(): int
{
return $this->lineno;
}
public function getDetails(): string
{
$before = str_replace("\n", '\n', substr($this->data, max(0, $this->cursor - 20), min(20, $this->cursor)));
$after = str_replace("\n", '\n', substr($this->data, $this->cursor, 20));
return '...'.$before.$after."...\n".str_repeat(' ', \strlen($before) + 2).'^ line '.$this->lineno.' offset '.$this->cursor;
}
}

View File

@@ -0,0 +1,25 @@
<?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 Symfony\Component\Dotenv\Exception;
/**
* Thrown when a file does not exist or is not readable.
*
* @author Fabien Potencier <fabien@symfony.com>
*/
final class PathException extends \RuntimeException implements ExceptionInterface
{
public function __construct(string $path, int $code = 0, ?\Throwable $previous = null)
{
parent::__construct(\sprintf('Unable to read the "%s" environment file.', $path), $code, $previous);
}
}