Skip to content

Releases: jamesgober/Config

1.0.0 Stable Release

06 Dec 13:18
Compare
Choose a tag to compare

What's New in 1.0.0?

  • Stable Release:

    • Finalized and thoroughly tested core features for stable and reliable performance.
  • Enhanced Parser Support:

    • Out-of-the-box support for multiple formats: JSON, YAML/YML, XML, INI, PHP arrays, and CONF files.
    • Seamless custom parser integration for additional file formats.
  • Optimized Caching Mechanisms:

    • Save, load, and manage configuration caches with robust expiration handling.
    • Enhanced cache validation for fault-tolerant data retrieval.
  • Advanced Flattening Options:

    • Control hierarchical vs. flattened key structures with flexible settings.
  • Improved Error Handling:

    • Comprehensive error and exception management for smooth debugging and better runtime reliability.
    • User-friendly diagnostics for configuration and parser issues.
  • Performance and Efficiency:

    • Refined logic for faster file parsing and reduced resource overhead.
    • Optimized handling of deeply nested configurations with configurable depth limits.
  • Extensibility:

    • Designed for easy extension and modification, adhering to S.O.L.I.D principles.
    • Modular architecture to meet the demands of modern PHP projects.

Key Features

  • Multi-Format Parsing:

    • Effortlessly handle JSON, YAML, XML, INI, PHP arrays, CONF files, and more.
  • Dynamic Parsers:

    • Add custom parsers dynamically for unique or project-specific formats.
  • Caching Made Easy:

    • Manage configurations with built-in caching for better performance and faster access.
  • Error-Resilient:

    • Advanced error handling to ensure stability under challenging scenarios.
  • Streamlined API:

    • A simple yet powerful API designed to minimize overhead while maximizing usability.
  • Thorough Testing:

    • Verified with comprehensive PHPUnit tests to ensure stability and reliability.

Installation

Install via Composer:

composer require jamesgober/config

Documentation

Explore the Full Documentationfor:

  • Quick start guides and examples.
  • Advanced features like custom parsers and caching.
  • Insights into the library's modular design and extensibility.

Changelog

For the detailed list of updates, refer to the CHANGELOG.


Feedback and Contributions

Your feedback helps shape the future of JG\Config! Report issues or suggest features on the GitHub Issues page. Contributions are encouraged—please see our contribution guidelines.

v1.0.0-RC.5

06 Dec 00:04
Compare
Choose a tag to compare

Release Notes for 1.0.0-RC.5

The fifth release candidate of JG\Config raises the bar with groundbreaking improvements in performance, extensibility, and error handling. This release introduces dynamic custom parsers, robust parsing enhancements, and refined caching, ensuring the library remains a cornerstone for PHP developers seeking high-performance configuration management.


What's New in 1.0.0-RC.5?

  • Dynamic Custom Parser Support:

    • Introduced the ability to dynamically register and utilize custom parsers for extended file format support.
    • Enables seamless integration of project-specific parsers.
  • Parsing Optimizations:

    • Enhanced CONF file parsing using a regex-based approach, delivering faster and more accurate processing.
    • Improved support for complex configurations with better error handling and diagnostics.
  • Streamlined Flattening Options:

    • Added explicit control over flattening behavior via constructor flags, ensuring predictable and flexible configuration structures.
  • Non-UTF-8 Compatibility:

    • Addressed handling of non-UTF-8 encoded files, ensuring compatibility with diverse file encodings while maintaining robust error reporting.
  • Cache Enhancements:

    • Improved validation of cache structures for more reliable data retrieval.
    • Strengthened handling of cache invalidation and expiration scenarios.

Key Features

  • Multi-Format Parsing:

    • Load configurations from various formats, including CONF, INI, JSON, XML, YAML/YML, and PHP arrays.
  • Custom Parsers:

    • Extend functionality by dynamically adding support for new file formats with minimal effort.
  • Efficient Caching System:

    • Comprehensive methods to save, load, and delete cached configurations with built-in expiration handling.
  • Configurable Flattening:

    • Support for grouped or flattened key structures with enhanced customization options.
  • Error Management:

    • Improved exception classes for precise error reporting (ConfigException, ConfigParseException, InvalidParserException).
  • Thorough Testing:

    • Rigorous unit tests with PHPUnit ensure the library’s robustness and reliability under high-load scenarios.

Installation

Install via Composer:

composer require jamesgober/config

Documentation

Dive into the Full Documentation to explore:

  • Usage examples for loading and managing configurations.
  • Advanced techniques for leveraging grouped and flattened keys.
  • Contribution and customization guides.

Changelog

For the detailed list of updates, refer to the CHANGELOG.


Feedback and Contributions

Your feedback helps shape JG\Config! Report issues or suggest improvements on the GitHub Issues page. Contributions are always welcome—review the contribution guidelines in the repository.

1.0.0-RC.3

04 Dec 02:44
Compare
Choose a tag to compare

Release Notes for 1.0.0-RC.3

The third release candidate of JG\Config refines performance improves consistency, and addresses key design challenges to solidify this robust PHP configuration library. With significant updates to core functionality and added support for new use cases, this release enhances the developer experience while ensuring backward compatibility.


What's New in 1.0.0-RC.3?

  • Revamped load Method:
    • Enhanced key-flattening logic for grouped and nested configurations.
    • Optimized handling of key conflicts with overwrite functionality.
  • Improved add and delete Methods:
    • Simplified group updates while ensuring data integrity.
    • Streamlined deletion of groups and their associated keys.
  • New flattenArray Method:
    • Efficiently processes nested arrays into flattened configurations with structured group mappings.

Key Features

  • Supported Formats:
    • CONF, INI, JSON, XML, YAML/YML, and PHP arrays.
  • Custom Parsers:
    • Extend functionality by adding support for additional formats.
  • Comprehensive API:
    • Load configurations from files or directories.
    • Retrieve, add, update, and delete configuration values.
    • Support for both grouped and flattened keys with intuitive handling.
  • Error Handling:
    • Custom exceptions (ConfigException, ConfigParseException, InvalidParserException) for better debugging and runtime safety.
  • Reliability:
    • Fully tested with PHPUnit to ensure robust and predictable behavior.

Installation

Install via Composer:

composer require jamesgober/config

Documentation

Dive into the Full Documentation to explore:

  • Usage examples for loading and managing configurations.
  • Advanced techniques for leveraging grouped and flattened keys.
  • Contribution and customization guides.

Changelog

For the detailed list of updates, refer to the CHANGELOG.


Feedback and Contributions

Your feedback helps shape JG\Config! Report issues or suggest improvements on the GitHub Issues page. Contributions are always welcome—review the contribution guidelines in the repository.

Release Candidate 4

04 Dec 04:19
Compare
Choose a tag to compare

Release Notes for 1.0.0-RC.4

The fourth release candidate of JG\Config focuses on performance optimizations, refined logic, and robust new features, solidifying its role as a high-performance, extensible PHP configuration library. With key improvements to caching, configuration management, and handling deeply nested configurations, this release ensures both stability and flexibility for developers.


What's New in 1.0.0-RC.4?

  • Performance Optimizations:
    • Optimized the flattenArray and load methods for improved efficiency when handling deeply nested configurations.
    • Streamlined caching operations for faster load times and reduced overhead.
  • Depth Limiting for Nested Configurations:
    • Introduced a maxDepth property to enforce safe handling of deeply nested configurations, preventing performance issues.
  • Enhanced Caching System:
    • Added saveCache, loadCache, and deleteCache methods for robust caching capabilities.
    • Ensures faster access to configurations with built-in expiration handling.
    • isCacheLoaded method verifies if a valid cache has been successfully loaded.
  • Comprehensive Retrieval Methods:
    • Added getAll to return the entire configuration array.
    • Added getGroups to retrieve all configuration groups for easier introspection.
  • Refinements in Logic:
    • Improved add and delete methods to handle grouped configurations with better precision.
    • Updated load method to leverage caching and ensure consistency during file loads.

Key Features

  • Supported Formats:
    • CONF, INI, JSON, XML, YAML/YML, and PHP arrays.
  • Custom Parsers:
    • Extend functionality by adding support for additional formats through a flexible parser system.
  • Advanced Caching:
    • Save and load configurations with expiration support for efficient and reusable setups.
  • Comprehensive API:
    • Load configurations from files or directories.
    • Retrieve, add, update, and delete configuration values.
    • Support for both grouped and flattened keys with intuitive handling.
  • Error Handling:
    • Custom exceptions (ConfigException, ConfigParseException, InvalidParserException) for better debugging and runtime safety.
  • Reliability:
    • Fully tested with PHPUnit to ensure robust and predictable behavior.

Installation

Install via Composer:

composer require jamesgober/config

Documentation

Dive into the Full Documentation to explore:

  • Usage examples for loading and managing configurations.
  • Advanced techniques for leveraging grouped and flattened keys.
  • Contribution and customization guides.

Changelog

For the detailed list of updates, refer to the CHANGELOG.


Feedback and Contributions

Your feedback helps shape JG\Config! Report issues or suggest improvements on the GitHub Issues page. Contributions are always welcome—review the contribution guidelines in the repository.

Updated

04 Dec 00:18
Compare
Choose a tag to compare

Release Notes for 1.0.0-RC.2

The second release candidate of JG\Config introduces enhancements, bug fixes, and new features to refine this robust PHP library for configuration management. Designed with flexibility and extensibility in mind, JG\Config simplifies loading, parsing, and managing configuration data from a wide variety of formats.


What's New in 1.0.0-RC.2?

  • Improved load Method:
    • Enhanced reliability for handling complex configurations.
  • Updated delete Method:
    • Now supports deleting configurations by group.
  • YAML Enhancements:
    • Added support for both .yaml and .yml file extensions.

Key Features

  • Supported Formats:
    • CONF, INI, JSON, XML, YAML, and PHP arrays.
  • Custom Parsers:
    • Extend functionality by adding support for additional formats.
  • Comprehensive API:
    • Load configurations from files or directories.
    • Retrieve, add, update, and delete configuration values.
    • Support for both grouped and flattened keys.
  • Error Handling:
    • Custom exceptions (ConfigException, ConfigParseException, InvalidParserException) for streamlined debugging and runtime control.
  • Reliability:
    • Fully tested with PHPUnit to ensure consistent behavior.

Installation

Install via Composer:

composer require jamesgober/config

Documentation

Explore the [Full Documentation](https://github.com/jamesgober/Config) for:

  • Detailed usage examples.
  • Advanced configuration tips.
  • Contribution guidelines.

Changelog

For a complete list of changes, refer to the [CHANGELOG](https://github.com/jamesgober/Config/blob/main/CHANGELOG.md).


Feedback and Contributions

Your feedback is invaluable! Report issues or request features via the [GitHub Issues](https://github.com/jamesgober/Config/issues) page. Contributions are welcome—check the guidelines in the repository.