Download the PHP package bogdankharchenko/typed-laravel-settings without Composer
On this page you can find all versions of the php package bogdankharchenko/typed-laravel-settings. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download bogdankharchenko/typed-laravel-settings
More information about bogdankharchenko/typed-laravel-settings
Files in bogdankharchenko/typed-laravel-settings
Package typed-laravel-settings
Short Description Strongly typed laravel settings.
License MIT
Informations about the package typed-laravel-settings
Strongly Typed Laravel Settings
Install
Model Setup
Creating a Setting Class
This class represents a group of available settings for a given model. Public properties and their values will automatically be serialized into a json column, and serve as defaults.
Set Settings
Changing the values will persist them into the database. When updating settings, cache will automatically be flushed.
Get Settings
Creating a helper function on your allows us to access strongly typed settings. When a setting is retrieved from the database, it will overwrite the default setting on the class.
Setting Value Encryption
You may decide to encrypt/decrypt sensitive settings such as secrets. You should specify a protected array $encrypted
with a list of properties to encrypt/decrypt. Data will be encrypted into the database, and decrypted when retrieved.
The default encrypter is BogdanKharchenko\Settings\Repository\Encrypter
but you may choose to implement your own encryption strategy by implementing BogdanKharchenko\Settings\Contracts\EncrypterInterface
and changing the config.
Validation
You can define validation rules in your custom Settings
class, in the same way as you would in FormRequests
using the rules()
and messages()
methods. These rules will be triggered immediately before attempting to persist the data into the database.
Validation is optional, as you may choose to do this in other parts of your app. You can also customize the validator by implementing the BogdanKharchenko\Settings\Contracts\ValidatorInterface
and changing the validator
config.
Morph Map & Caching
Similarly to morph map for Eloquent, it is a good idea to allow your Setting be more flexible to restructuring without touching your database.
Scopes
Sometimes you may need to check a setting on a database level, there is a helper scope available.