Files
apimacro/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php

73 lines
1.4 KiB
PHP
Raw Normal View History

2024-05-07 12:17:25 +02:00
<?php
namespace Dotenv\Repository\Adapter;
use PhpOption\None;
use PhpOption\Some;
class ServerConstAdapter implements AvailabilityInterface, ReaderInterface, WriterInterface
{
/**
* Determines if the adapter is supported.
*
* @return bool
*/
public function isSupported()
{
return true;
}
/**
* Get an environment variable, if it exists.
*
2024-05-17 12:24:19 +00:00
* @param non-empty-string $name
2024-05-07 12:17:25 +02:00
*
* @return \PhpOption\Option<string|null>
*/
public function get($name)
{
2024-05-17 12:24:19 +00:00
if (!array_key_exists($name, $_SERVER)) {
return None::create();
}
$value = $_SERVER[$name];
if (is_scalar($value)) {
/** @var \PhpOption\Option<string|null> */
return Some::create((string) $value);
}
if (null === $value) {
/** @var \PhpOption\Option<string|null> */
return Some::create(null);
2024-05-07 12:17:25 +02:00
}
return None::create();
}
/**
* Set an environment variable.
*
2024-05-17 12:24:19 +00:00
* @param non-empty-string $name
* @param string|null $value
2024-05-07 12:17:25 +02:00
*
* @return void
*/
public function set($name, $value = null)
{
$_SERVER[$name] = $value;
}
/**
* Clear an environment variable.
*
2024-05-17 12:24:19 +00:00
* @param non-empty-string $name
2024-05-07 12:17:25 +02:00
*
* @return void
*/
public function clear($name)
{
unset($_SERVER[$name]);
}
}