PHP code example of glorand / laravel-model-settings

1. Go to this page and download the library: Download glorand/laravel-model-settings library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

glorand / laravel-model-settings example snippets


use Glorand\Model\Settings\Traits\HasSettings;

class User extends Model
{
    use HasSettings;
}

class User extends Model
{
    use HasSettings;

    protected $settingsDriver = 'table'; // 'field' (default) | 'table' | 'redis' | 'cache'
}

public $settingsFieldName = 'user_settings';

use Glorand\Model\Settings\Traits\HasSettings;

class User extends Model
{
    use HasSettings;

    //define only if you select a different name from the default
    public $settingsFieldName = 'user_settings';

    //define only if the model overrides the default connection
    protected $connection = 'mysql';

}

use Glorand\Model\Settings\Traits\HasSettings;

class User extends Model
{
    use HasSettings;

    protected $settingsDriver = 'table';
}

use Glorand\Model\Settings\Traits\HasSettings;

class User extends Model
{
    use HasSettings;

    protected $settingsDriver = 'redis';
}

use Glorand\Model\Settings\Traits\HasSettings;

class User extends Model
{
    use HasSettings;

    protected $settingsDriver = 'cache';
}

'drivers' => [
    // ...
    'dynamodb' => [
        'class' => \App\Settings\DynamoDbSettingsManager::class, // extends AbstractSettingsManager
    ],
],

use Glorand\Model\Settings\SettingsManagerFactory;

app(SettingsManagerFactory::class)->extend('dynamodb', function ($model) {
    return new DynamoDbSettingsManager($model);
});

return [
    // start other config options

    // end other config options

    // defaultConfigs
    'defaultSettings' => [
        'users' => [
            'key_1' => 'val_1',
        ]
    ]
];

use Glorand\Model\Settings\Traits\HasSettings;

class User extends Model
{
    use HasSettings;

    public $defaultSettings = [
        'key_1' => 'val_1',
    ];
}

$user = App\User::first();

$user->settings()->empty();

$user->settings()->exist();

$user->settings()->all();
$user->settings()->get();

$user->settings()->get('some.setting');
$user->settings()->get('some.setting', 'default value');
//multiple
$user->settings()->getMultiple(
	[
		'some.setting_1',
		'some.setting_2',
	],
	'default value'
);

$user->settings()->apply((array)$settings);
$user->settings()->set('some.setting', 'new value');
$user->settings()->update('some.setting', 'new value');
//multiple
$user->settings()->setMultiple([
	'some.setting_1' => 'new value 1',
	'some.setting_2' => 'new value 2',
]);

$user->settings()->has('some.setting');

$user->settings()->delete('some.setting');
//multiple
$user->settings()->deleteMultiple([
	'some.setting_1',
	'some.setting_2',
]);
//all
$user->settings()->clear();

protected $persistSettings = true; //boolean

'drivers' => [
    'field' => [
        // ...
        'persistent' => env('MODEL_SETTINGS_PERSISTENT', true),
    ],
],

class User extends Model
{
    use HasSettings;

    public array $defaultSettings = [
        'user' => [
            'name' => 'Test User',
            'email' => '[email protected]'
            'age' => 27,
        ],
        'language' => 'en',
        'max_size' => 12,
    ];

    // settings rules
    public array $settingsRules = [
        'user' => 'array',
        'user.email' => [
            'string',
            'email',
        ],
        'user.age' => 'integer',
        'language' => 'string|in:en,es,it|max:2',
        'max_size' => 'int|min:5|max:15',
    ];
}

`bash
php artisan model-settings:model-settings-field
`bash
 php artisan model-settings:model-settings-table