Download the PHP package makeabledk/php-value-objects without Composer
On this page you can find all versions of the php package makeabledk/php-value-objects. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package php-value-objects
Laravel Value Objects
This package provides a set of handy value objects:
- Duration
- Period
- Whitelist
Makeable is web- and mobile app agency located in Aarhus, Denmark.
Install
You can install this package via composer:
Usage
Duration
Duration provides an easy way to interact with and manipulate durations of time.
Example usages
Create a duration and display formatted
You can also specify a custom format. Valid placeholders are: h,hh,m,mm,s,ss
Perform simple add/subtract calculations
If you are using Laravel and have a Events@getDurationAttribute() accessor that converts to Duration::class, you can even do this:
Easily export as an array, and re-instantiate if needed. Great for serving client API*.
*Note it implements illuminate/support Arrayable contract, so it automatically casts to an array for eloquent models.
Period
The Period object is great when you need to query data within a given period.
Example usages
Creating a period. Note that both start and end is optional.
Manipulate on the fly
Easily export as an array, and re-instantiate if needed. Great for serving client API*.
*Note it implements illuminate/support Arrayable contract, so it automatically casts to an array for eloquent models.
Whitelist
Whitelist is an abstract class that you can extend to specify a certain sets of whitelisted values.
It is great to quickly whip up a Status Object that ensures you are always working with a valid status.
Example usages
Creating an OrderStatus class
Now you would only be able to instantiate OrderStatus with a valid status:
You can customize the exception thrown. For instance you could swap it for the default Symfony/Laravel '422 UnprocessableEntityExceptions'.
Now you have error handling out of the box for forms and wildcard controller methods (ie. '/orders/{status}') !
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
You can run the tests with:
Contributing
We are happy to receive pull requests for additional functionality. Please see CONTRIBUTING for details.
Credits
- Rasmus Christoffer Nielsen
- All Contributors
License
Attribution-ShareAlike 4.0 International. Please see License File for more information.