Compare commits

..

2 commits

Author SHA1 Message Date
88ec33ff1a
Update CHANGELOG.md and Configuration class to use LogLib2
Some checks are pending
CI / release (push) Waiting to run
CI / debug (push) Waiting to run
CI / release-executable (push) Waiting to run
CI / debug-executable (push) Waiting to run
CI / release_executable (push) Waiting to run
CI / debug_executable (push) Waiting to run
CI / check-phpunit (push) Waiting to run
CI / check-phpdoc (push) Waiting to run
CI / generate-phpdoc (push) Blocked by required conditions
CI / test (push) Blocked by required conditions
CI / release-documentation (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
- Added entry for version 1.1.7 in CHANGELOG.md
- Updated remote references for dependencies
- Changed logger implementation in Configuration class to use LogLib2
2025-03-14 15:00:35 -04:00
bf71326090
Updated README.md
Some checks are pending
CI / release (push) Waiting to run
CI / debug (push) Waiting to run
CI / release-executable (push) Waiting to run
CI / debug-executable (push) Waiting to run
CI / release_executable (push) Waiting to run
CI / debug_executable (push) Waiting to run
CI / check-phpunit (push) Waiting to run
CI / check-phpdoc (push) Waiting to run
CI / generate-phpdoc (push) Blocked by required conditions
CI / test (push) Blocked by required conditions
CI / release-documentation (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
2025-03-11 14:24:20 -04:00
5 changed files with 45 additions and 12 deletions

3
.idea/php.xml generated
View file

@ -11,9 +11,10 @@
</component> </component>
<component name="PhpIncludePathManager"> <component name="PhpIncludePathManager">
<include_path> <include_path>
<path value="/var/ncc/packages/net.nosial.optslib=1.1.2" />
<path value="/var/ncc/packages/net.nosial.loglib2=1.0.2" />
<path value="/var/ncc/packages/com.symfony.yaml=v7.1.5" /> <path value="/var/ncc/packages/com.symfony.yaml=v7.1.5" />
<path value="/var/ncc/packages/net.nosial.loglib=2.0.4" /> <path value="/var/ncc/packages/net.nosial.loglib=2.0.4" />
<path value="/var/ncc/packages/net.nosial.optslib=1.1.2" />
<path value="/var/ncc/packages/com.symfony.polyfill_mbstring=v1.31.0" /> <path value="/var/ncc/packages/com.symfony.polyfill_mbstring=v1.31.0" />
<path value="/var/ncc/packages/com.symfony.polyfill_ctype=v1.31.0" /> <path value="/var/ncc/packages/com.symfony.polyfill_ctype=v1.31.0" />
<path value="/usr/share/ncc" /> <path value="/usr/share/ncc" />

View file

@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.1.7] - 2025-03-14
This update introduces minor changes
### Changed
- Updated remote references for dependencies
- Updated Library to use net.nosial.loglib2 instead of the now deprecated net.nosial.loglib
## [1.1.6] - 2025-01-07 ## [1.1.6] - 2025-01-07
This update introduces minor improvements This update introduces minor improvements

View file

@ -9,10 +9,25 @@ be configured more easily by following the documented instructions on how to alt
could use a builtin editor to edit the configuration file manually. could use a builtin editor to edit the configuration file manually.
## Community
This project and many others from Nosial are available on multiple publicly available and free git repositories at
- [n64](https://git.n64.cc/nosial/configlib)
- [GitHub](https://github.com/nosial/configlib)
- [Codeberg](https://codeberg.org/nosial/configlib)
Issues & Pull Requests are frequently checked and to be referenced accordingly in commits and changes, Nosial remains
dedicated to keep these repositories up to date when possible.
For questions & discussions see the public Telegram community at [@NosialDiscussions](https://t.me/NosialDiscussions).
We do encourage community support and discussions, please be respectful and follow the rules of the community.
## Table of contents ## Table of contents
<!-- TOC --> <!-- TOC -->
* [ConfigLib](#configlib) * [ConfigLib](#configlib)
* [Community](#community)
* [Table of contents](#table-of-contents) * [Table of contents](#table-of-contents)
* [Installation](#installation) * [Installation](#installation)
* [Compile from source](#compile-from-source) * [Compile from source](#compile-from-source)

View file

@ -24,7 +24,7 @@
"description": "ConfigLib is a library for reading and writing configuration files via the NCC Runtime API", "description": "ConfigLib is a library for reading and writing configuration files via the NCC Runtime API",
"company": "Nosial", "company": "Nosial",
"copyright": "Copyright (c) 2022-2023 Nosial", "copyright": "Copyright (c) 2022-2023 Nosial",
"version": "1.1.6", "version": "1.1.7",
"uuid": "9347259e-8e4d-11ed-85a7-fd07cf28ef35" "uuid": "9347259e-8e4d-11ed-85a7-fd07cf28ef35"
}, },
"build": { "build": {
@ -38,12 +38,12 @@
{ {
"name": "net.nosial.optslib", "name": "net.nosial.optslib",
"version": "latest", "version": "latest",
"source": "nosial/libs.opts=latest@n64" "source": "nosial/optslib=latest@github"
}, },
{ {
"name": "net.nosial.loglib", "name": "net.nosial.loglib2",
"version": "latest", "version": "latest",
"source": "nosial/libs.log=latest@n64" "source": "nosial/loglib2=latest@github"
}, },
{ {
"name": "com.symfony.filesystem", "name": "com.symfony.filesystem",

View file

@ -3,13 +3,19 @@
namespace ConfigLib; namespace ConfigLib;
use Exception; use Exception;
use LogLib\Log; use LogLib2\Logger;
use RuntimeException; use RuntimeException;
use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Yaml\Yaml; use Symfony\Component\Yaml\Yaml;
class Configuration class Configuration
{ {
/**
* The logger of the class
* @var Logger
*/
private Logger $logger;
/** /**
* The name of the configuration * The name of the configuration
* @var string|array * @var string|array
@ -42,6 +48,8 @@
*/ */
public function __construct(string $name='default', ?string $path=null) public function __construct(string $name='default', ?string $path=null)
{ {
$this->logger = new Logger('net.nosial.configlib');
// Sanitize $name for a file path // Sanitize $name for a file path
$name = strtolower($name); $name = strtolower($name);
$name = str_replace(array('/', '\\', '.'), '_', $name); $name = str_replace(array('/', '\\', '.'), '_', $name);
@ -56,7 +64,7 @@
} }
else else
{ {
Log::warning('net.nosial.configlib', sprintf('Environment variable "%s" points to a non-existent file, resorting to default/builtin configuration', $env)); $this->logger->warning(sprintf('Environment variable "%s" points to a non-existent file, resorting to default/builtin configuration', $env));
} }
} }
@ -131,7 +139,7 @@
if (!$configDir) if (!$configDir)
{ {
Log::warning('net.nosial.configlib', sprintf('Unable to find a proper directory to store configuration paths in, using temporary directory instead: %s', sys_get_temp_dir())); $this->logger->warning(sprintf('Unable to find a proper directory to store configuration paths in, using temporary directory instead: %s', sys_get_temp_dir()));
$configDir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'configlib'; $configDir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'configlib';
} }
} }
@ -163,7 +171,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
Log::error('net.nosial.configlib', sprintf('Unable to load configuration "%s", %s', $this->name, $e->getMessage())); $this->logger->error(sprintf('Unable to load configuration "%s", %s', $this->name, $e->getMessage()), $e);
throw new RuntimeException(sprintf('Unable to load configuration "%s"', $this->name), $e); throw new RuntimeException(sprintf('Unable to load configuration "%s"', $this->name), $e);
} }
} }
@ -355,7 +363,7 @@
} }
$this->modified = false; $this->modified = false;
Log::debug('net.nosial.configlib', sprintf('Configuration "%s" saved', $this->name)); $this->logger->debug(sprintf('Configuration "%s" saved', $this->name));
} }
/** /**
@ -437,7 +445,7 @@
} }
$this->modified = false; $this->modified = false;
Log::debug('net.nosial.configlib', 'Loaded configuration file: ' . $this->path); $this->logger->debug('Loaded configuration file: ' . $this->path);
} }
/** /**
@ -495,7 +503,7 @@
} }
catch(Exception $e) catch(Exception $e)
{ {
Log::error('net.nosial.configlib', sprintf('Unable to save configuration "%s" to disk, %s', $this->name, $e->getMessage())); $this->logger->error(sprintf('Unable to save configuration "%s" to disk, %s', $this->name, $e->getMessage()), $e);
} }
} }
} }