Download the PHP package code-distortion/options without Composer
On this page you can find all versions of the php package code-distortion/options. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download code-distortion/options
More information about code-distortion/options
Files in code-distortion/options
Package options
Short Description Flexible, expressive option handling
License MIT
Homepage https://github.com/code-distortion/options
Informations about the package options
Options
code-distortion/options is a PHP library for managing options in a flexible and expressive way.
Table of Contents
- Installation
- Usage
- Simple Usage
- Programmatic Usage
- Specifying Default Values
- Restricting Options
- Validation
- Fluent Interface
- Which Types Of Values Can I Specify?
- Expressive String Format
- Array Key-Value-Pairs
Installation
Install the package via composer:
Usage
Simple Usage
Specify values by passing them to Options::new()
. This will take your set of options and break them down into individual ones.
An instance of Options
is returned. Call all()
on it to get the resolved values.
all()
will return the options in alphabetical order.
Programmatic Usage
You can also interact with your Options
instance in a more programmatic fashion.
Calling options()
multiple times will replace the previous options.
However you can amend the existing options by calling amendOptions()
. This allows you to add or override existing options with new ones.
Specifying Default Values
You can apply default values to use by passing them to defaults()
. The default values will be applied for any options that aren't specified when calling options()
.
It doesn't matter which order you call defaults()
and resolve()
in.
Calling defaults()
multiple times will replace the previous defaults.
However you can amend the existing defaults by calling amendDefaults()
. This allows you to add or override existing defaults with new ones.
Restricting Options
You can restrict the possible options to those available in the defaults by calling restrictUnexpected()
.
Options passed to options()
that aren't present in the defaults will generate an InvalidOptionException
.
Validation
You can validate the options by passing a callback to validator()
.
Each option will be passed to your callback, letting you choose if it's valid.
If your callback returns false, that option will be ignored.
You can also pass a second parameter to validator()
instructing it to throw an exception if a value is invalid.
Fluent Interface
The options()
, amendOptions()
, defaults()
, amendDefaults()
, restrictUnexpected()
and validator()
methods can be chained together, and can be called in any order.
Which Types Of Values Can I Specify?
Expressive String Format
You can specify values as strings, with or without modifiers.
Multiple string values can be passed together at the same time, separated with spaces "`" or a comma "
,`" (or both):
Array Key-Value-Pairs
Regular expressions are used to examine the string values above. You may wish to use them for convenience, or use plain arrays like below for faster speed.
Note: You can specify non-scalar values when passing key-value-pair arrays (e.g. nested arrays), however they aren't dealt with in any special way. They are currently treated like scalar values.
Testing This Package
- Clone this package:
git clone https://github.com/code-distortion/options.git .
- Run
composer install
to install dependencies - Run the tests:
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
SemVer
This library uses SemVer 2.0.0 versioning. This means that changes to X
indicate a breaking change: 0.0.X
, 0.X.y
, X.y.z
. When this library changes to version 1.0.0, 2.0.0 and so forth, it doesn't indicate that it's necessarily a notable release, it simply indicates that the changes were breaking.
Treeware
This package is Treeware. If you use it in production, then we ask that you buy the world a tree to thank us for our work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats.
Contributing
Please see CONTRIBUTING for details.
Code of Conduct
Please see CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
All versions of options with dependencies
ext-mbstring Version *
code-distortion/di-caller Version ^0.2.3