decodelabs / lucid-support
Support Lucid sanitisation in your libraries without the dependencies
Installs: 14 293
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: ^8.1
- decodelabs/coercion: ^0.2.2
- decodelabs/exceptional: ^0.4
Requires (Dev)
This package is auto-updated.
Last update: 2024-11-04 21:51:11 UTC
README
Support Lucid sanitisation in your libraries without the dependencies
Lucid-support is a middleware package that allows third party libraries to implement the necessary interfaces and provide custom sanitiser and validator functionality to Lucid without dragging in the full dependency tree of the main library.
Get news and updates on the DecodeLabs blog.
Installation
Install the library via composer:
composer require decodelabs/lucid-support
Usage
Lucid provides interfaces and traits to implement providing input sanitisation from your own value container objects.
The main library however has a substantial dependency list which may not be desirable when deploying the Lucid Provider interfaces in your own libraries.
Instead, those interfaces have been sectioned off in this package with a class_exists()
check to ensure that Lucid is available at runtime.
If you want to provide Lucid's sanitisation interface in a library, you only need to require this package, and implement either DirectContextProvider
(for passing the value directly to the methods), MultiContextProvider
(for dictionaries and maps) or SingleContextProvider
(for single-value objects).
For example:
namespace My\Library; use DecodeLabs\Lucid\Provider\SingleContext; use DecodeLabs\Lucid\Provider\SingleContextTrait; class MyClass implements SingleContext { use SingleContextTrait; protected mixed $value; public function __construct(mixed $value) { $this->value = $value; } /** * This method provides the value to all other * sanitisation methods in the interface */ public function getValue(): mixed { return $this->value; } }
Licensing
Lucid Support is licensed under the MIT License. See LICENSE for the full license text.