1. Go to this page and download the library: Download poisa/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/ */
poisa / settings example snippets
// Include the facade at the top of your file
use Settings;
// Set a key
Settings::setKey('key', 123);
// Get a key
$value = Settings::getKey('key');
use Settings;
// Using the configured 'system' connection
Settings::setSystemKey('key', 123);
$value = Settings::getSystemKey('key');
// Using the configured 'tenant' connection
Settings::setTenantKey('key', 123);
$value = Settings::getTenantKey('key');
use Settings;
Settings::setKey('key', 123, 'sqlite');
$value = Settings::getKey('key', 'sqlite');
use Settings;
var_dump(Settings::hasKey('key')); // bool(false)
Settings::setKey('key', 123);
var_dump(Settings::hasKey('key')); // bool(true)
use Settings;
// Using default connection name
$eloquentModel = Settings::getConfiguredModel();
// Using custom connection name
$eloquentModel = Settings::getConfiguredModel('mysql');
class UserPreferences
{
public $backgroundColor;
public $themeName;
}
use UserPreferences;
use Settings;
$prefs = new UserPreferences;
$prefs->backgroundColor = '#3226D6';
$prefs->themeName = 'simple';
Settings::setKey('userPrefs', $prefs);
// and then...
$prefs = Settings::getKey('userPrefs');
var_dump(get_class($prefs) == UserPreferences::class); // bool(true)
use Poisa\Settings\Serializers\Serializer;
class UserPreferencesSerializer implements Serializer
{
public $backgroundColor;
public $themeName;
public function getTypes(): array
{
// Return the name of the data type (aka class) that this serializer knows how to serialize. If this serializer
// is generic in nature and know how to serialize multiple classes then you can return an array with multiple
// values.
return [UserPreferences::class];
}
public function getTypeAlias(): string
{
// This string gets saved in the database so that when we unserialize the row, we know what serializer class
// to use to unserialize it. You could easily return the same as getType() and
// it would work fine, except that you will want to decouple your class names from your database as much as
// possible. If you return the name of the class here and in the future you rename your class to something
// else, then you'd need to rename all the settings in the database to whatever your class is now named.
// If you just return a simple string with something representative of what the value is instead of the class
// name, then renaming the class will incur in no extra work.
return 'user-preferences';
}
public function shouldEncryptData(): bool
{
// Yes, we want Settings to encrypt our data at rest.
return true;
}
public function serialize($data): string
{
// $data is the instance of UserPreferences we want to serialize.
// Return a simple string that we can save in the database.
return json_encode([
'backgroundColor' => $data->backgroundColor,
'themeName' => $data->themeName
]);
}
public function unserialize($data)
{
// Take the string we stored with serialize() and reverse the process.
$decodedData = json_decode($data);
$prefs = new UserPreferences;
$prefs->backgroundColor = $decodedData->backgroundColor;
$prefs->themeName = $decodedData->themeName;
return $prefs;
}
}
namespace App\Providers;
use Illuminate\Support\Facades\Event;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Poisa\Settings\Events\SettingCreated;
use Poisa\Settings\Events\SettingRead;
use Poisa\Settings\Events\SettingUpdated;
class EventServiceProvider extends ServiceProvider
{
public function boot()
{
parent::boot();
Event::listen(SettingCreated::class, function ($event) {
// $event->key;
// $event->value;
// $event->connection;
});
Event::listen(SettingUpdated::class, function ($event) {
// $event->key;
// $event->value;
// $event->connection;
});
Event::listen(SettingRead::class, function ($event) {
// $event->key;
// $event->value;
// $event->connection;
});
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.