chore: Improve constants declaration

Signed-off-by: Rubén D <nuxsmin@syspass.org>
This commit is contained in:
Rubén D
2023-12-02 09:55:38 +01:00
parent e4cf9edc1c
commit f65ad4e310
5 changed files with 55 additions and 72 deletions

View File

@@ -27,6 +27,7 @@ use Dotenv\Dotenv;
use SP\Core\Definitions\CoreDefinitions;
use SP\Core\Definitions\DomainDefinitions;
use function SP\getFromEnv;
use function SP\initModule;
use function SP\processException;
@@ -52,61 +53,21 @@ $dotenv = Dotenv::createImmutable(APP_ROOT);
$dotenv->load();
defined('APP_MODULE') || define('APP_MODULE', 'web');
define('DEBUG', (bool)getenv('DEBUG'));
define(
'IS_TESTING',
getenv('IS_TESTING')
?: defined('TEST_ROOT')
);
define(
'CONFIG_PATH',
getenv('CONFIG_PATH')
?: APP_PATH . DS . 'config'
);
// Setup config files
const OLD_CONFIG_FILE = CONFIG_PATH . DS . 'config.php';
define(
'CONFIG_FILE',
getenv('CONFIG_FILE')
?: CONFIG_PATH . DS . 'config.xml'
);
define(
'ACTIONS_FILE',
getenv('ACTIONS_FILE')
?: RESOURCES_PATH . DS . 'actions.xml'
);
define(
'MIMETYPES_FILE',
getenv('MIMETYPES_FILE')
?: RESOURCES_PATH . DS . 'mime.xml'
);
define(
'LOG_FILE',
getenv('LOG_FILE')
?: CONFIG_PATH . DS . 'syspass.log'
);
define('DEBUG', getFromEnv('DEBUG', false));
define('IS_TESTING', getFromEnv('IS_TESTING', defined('TEST_ROOT')));
define('CONFIG_PATH', getFromEnv('CONFIG_PATH', APP_PATH . DS . 'config'));
define('CONFIG_FILE', getFromEnv('CONFIG_FILE', CONFIG_PATH . DS . 'config.xml'));
define('ACTIONS_FILE', getFromEnv('ACTIONS_FILE', RESOURCES_PATH . DS . 'actions.xml'));
define('MIMETYPES_FILE', getFromEnv('MIMETYPES_FILE', RESOURCES_PATH . DS . 'mime.xml'));
define('LOG_FILE', getFromEnv('LOG_FILE', CONFIG_PATH . DS . 'syspass.log'));
const LOCK_FILE = CONFIG_PATH . DS . '.lock';
// Setup application paths
define(
'BACKUP_PATH',
getenv('BACKUP_PATH')
?: APP_PATH . DS . 'backup'
);
define(
'CACHE_PATH',
getenv('CACHE_PATH')
?: APP_PATH . DS . 'cache'
);
define(
'TMP_PATH',
getenv('TMP_PATH')
?: APP_PATH . DS . 'temp'
);
define('BACKUP_PATH', getFromEnv('BACKUP_PATH', APP_PATH . DS . 'backup'));
define('CACHE_PATH', getFromEnv('CACHE_PATH', APP_PATH . DS . 'cache'));
define('TMP_PATH', getFromEnv('TMP_PATH', APP_PATH . DS . 'temp'));
try {
$moduleDefinitions = initModule(APP_MODULE);
@@ -119,7 +80,7 @@ try {
}
return $containerBuilder
->addDefinitions(CoreDefinitions::getDefinitions(), DomainDefinitions::getDefinitions())
->addDefinitions(CoreDefinitions::getDefinitions(), DomainDefinitions::getDefinitions(), $moduleDefinitions)
->build();
} catch (Exception $e) {
processException($e);

View File

@@ -4,7 +4,7 @@
*
* @author nuxsmin
* @link https://syspass.org
* @copyright 2012-2022, Rubén Domínguez nuxsmin@$syspass.org
* @copyright 2012-2023, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
*
@@ -26,6 +26,7 @@ namespace SP;
use Exception;
use SP\Domain\Core\Exceptions\SPException;
use SP\Util\FileUtil;
use Throwable;
/**
@@ -35,7 +36,7 @@ const LOG_FORMAT = "[%s] [%s] %s";
/**
* [timestamp] [type] [caller] data
*/
const LOG_FORMAT_OWN = '[%s] syspass.%s: logger {"message":"%s","caller":"%s"}'.PHP_EOL;
const LOG_FORMAT_OWN = '[%s] syspass.%s: logger {"message":"%s","caller":"%s"}' . PHP_EOL;
/**
* Basic logger to handle some debugging and exception messages.
@@ -46,8 +47,8 @@ const LOG_FORMAT_OWN = '[%s] syspass.%s: logger {"message":"%s","caller":"%s"}'.
*
* A more advanced event logging should be handled through EventDispatcher
*
* @param mixed $data
* @param string $type
* @param mixed $data
* @param string $type
*/
function logger(mixed $data, string $type = 'DEBUG'): void
{
@@ -91,7 +92,7 @@ function getLastCaller(int $skip = 2): string
$callers = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 5);
if (isset($callers[$skip]['class'], $callers[$skip]['function'])) {
return $callers[$skip]['class'].'::'.$callers[$skip]['function'];
return $callers[$skip]['class'] . '::' . $callers[$skip]['function'];
}
return 'N/A';
@@ -151,7 +152,7 @@ function formatStackTrace(Throwable $e): string
/**
* Process an exception and log into the error log
*
* @param Exception $exception
* @param Exception $exception
*/
function processException(Exception $exception): void
{
@@ -179,8 +180,8 @@ function processException(Exception $exception): void
/**
* Alias gettext function
*
* @param string $message
* @param bool $translate Si es necesario traducir
* @param string $message
* @param bool $translate Si es necesario traducir
*
* @return string
*/
@@ -250,15 +251,13 @@ function initModule(string $module): array
logger(sprintf('Initializing module: %s', $module));
$moduleFile = MODULES_PATH.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.'module.php';
if (is_dir(MODULES_PATH) && file_exists($moduleFile)) {
$definitions = require $moduleFile;
try {
$definitions = FileUtil::require(FileUtil::buildPath(MODULES_PATH, $module, 'module.php'));
if (is_array($definitions)) {
return $definitions;
}
} else {
} catch (Infrastructure\File\FileException $e) {
throw new SPException('Either module dir or module file don\'t exist');
}
@@ -266,3 +265,21 @@ function initModule(string $module): array
return [];
}
/**
* Defines a constant by looking up its value in an environment variable with the same name.
*
* @param string $envVar
* @param mixed|null $default
* @return string|array|mixed|false
*/
function getFromEnv(string $envVar, mixed $default = null): mixed
{
$env = getenv($envVar) ?: $default;
if ($default !== null) {
settype($env, gettype($default));
}
return $env;
}

View File

@@ -67,7 +67,6 @@ final class BootstrapWeb extends BootstrapBase
$this->router->respond(['GET', 'POST'], '@(?!/api\.php)', $this->manageWebRequest());
}
/** @noinspection PhpInconsistentReturnPointsInspection */
private function manageWebRequest(): Closure
{
return function (Request $request, Response $response) {

View File

@@ -4,7 +4,7 @@
*
* @author nuxsmin
* @link https://syspass.org
* @copyright 2012-2022, Rubén Domínguez nuxsmin@$syspass.org
* @copyright 2012-2023, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
*
@@ -28,6 +28,7 @@ namespace SP\Core\Bootstrap;
use SP\Domain\Config\Ports\ConfigDataInterface;
use SP\Domain\Config\Ports\UpgradeConfigServiceInterface;
use SP\Domain\Config\Services\UpgradeConfigService;
use SP\Domain\Upgrade\Services\UpgradeException;
use SP\Domain\Upgrade\Services\UpgradeUtil;
use SP\Util\VersionUtil;
@@ -48,7 +49,7 @@ class UpgradeConfigChecker
/**
* Comprobar la versión de configuración y actualizarla
*
* @throws \SP\Domain\Upgrade\Services\UpgradeException
* @throws UpgradeException
*/
public function checkConfigVersion(): void
{
@@ -58,8 +59,7 @@ class UpgradeConfigChecker
return;
}
if (defined('OLD_CONFIG_FILE')
&& file_exists(OLD_CONFIG_FILE)) {
if (file_exists(CONFIG_PATH . DS . 'config.php')) {
$this->upgradeConfigService->upgradeOldConfigFile(VersionUtil::getVersionStringNormalized());
}

View File

@@ -39,6 +39,7 @@ use SP\Providers\Log\FileLogHandler;
use SP\Util\VersionUtil;
use function SP\__u;
use function SP\processException;
/**
* Class UpgradeService
@@ -87,8 +88,10 @@ final class UpgradeConfigService extends Service implements UpgradeConfigService
$this->eventDispatcher->notify('upgrade.config.old.start', new Event($this, $message));
$oldConfigFile = CONFIG_PATH . DS . 'config.php';
// Include the file, save the data from $CONFIG
include OLD_CONFIG_FILE;
include $oldConfigFile;
$message = EventMessage::factory();
@@ -113,7 +116,7 @@ final class UpgradeConfigService extends Service implements UpgradeConfigService
}
}
$oldFile = OLD_CONFIG_FILE . '.old.' . time();
$oldFile = $oldConfigFile . '.old.' . time();
try {
$configData->setSiteTheme('material-blue');
@@ -121,7 +124,7 @@ final class UpgradeConfigService extends Service implements UpgradeConfigService
$this->config->saveConfig($configData, false);
rename(OLD_CONFIG_FILE, $oldFile);
rename($oldConfigFile, $oldFile);
$message->addDetail(__u('Version'), $version);
@@ -223,6 +226,9 @@ final class UpgradeConfigService extends Service implements UpgradeConfigService
$this->eventDispatcher->notify('upgrade.config.end', new Event($this, $message));
}
/**
* @throws FileException
*/
private function applyUpgrade(string $version): void
{
switch ($version) {