kamalsroor/laravel-settings

Laravel的持久化键值存储

安装: 54

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 5

类型:package

v1.5.0 2021-05-22 08:36 UTC

This package is auto-updated.

Last update: 2024-09-22 21:40:11 UTC


README

StyleCI Travis Build Status Circleci Build Status Total Downloads Latest Stable Version License

Laravel的持久化设置管理器

安装

  1. 安装包

    composer require laraeast/laravel-settings
  2. 编辑config/app.php文件(如果您使用的是laravel 5.5或更高版本,请跳过此步骤)

    服务提供者

    KamalSroor\LaravelSettings\Providers\SettingsServiceProvider::class,

    类别名

    'Settings' => KamalSroor\LaravelSettings\Facades\Settings::class,
  3. database驱动程序创建设置表

    php artisan settings:table
    php artisan migrate

使用方法

Settings::get('name', 'Computer');
// get setting value with key 'name'
// return 'Computer' if the key does not exists

Settings::locale('en')->get('name', 'Computer');
// get setting value with key and language
 
Settings::get('name:en', 'Computer');
// get setting value with key and language
 
Settings::set('name', 'Computer');
// set setting value by key
 
Settings::locale('en')->set('name', 'Computer');
// set setting value by key and language
 
Settings::set('name:en', 'Computer');
// set setting value by key and language
 
Settings::has('name');
// check the key exists, return boolean
 
Settings::locale('en')->has('name');
// check the key exists by language, return boolean
 
Settings::has('name:en');
// check the key exists by language, return boolean
 
Settings::delete('name');
// delete the setting by key
 
Settings::locale('en')->delete('name');
// delete the setting by key and language
 
Settings::delete('name:en');
// delete the setting by key and language

处理数组

Settings::get('item');
// return null;
 
Settings::set('item', ['USB' => '8G', 'RAM' => '4G']);
Settings::get('item');
// return array(
//     'USB' => '8G',
//     'RAM' => '4G',
// );

使用方法

Settings::locale('en')->set('title', 'Example Website');
 
Settings::locale('en')->get('title');
// return return 'Example Website';
 
Settings::set('title:ar', 'عنوان الموقع');

Settings::locale('ar')->get('title');
// return return 'عنوان الموقع';

Settings::locale('ar')->has('title') // bool
Settings::locale('ar')->delete('title') 

App::setLocale('en');

Settings::locale()->get('title');
// return return 'Example Website';

扩展驱动程序

您可以通过在您的AppServiceProvierregister()方法中添加以下代码来扩展您的自定义驱动程序

示例:
$this->app['settings.manager']->extend('file', function () {
	return new SettingsFileDriverHandler();
});

注意:您的自定义驱动程序SettingsFileDriverHandler应实现KamalSroor\LaravelSettings\Contracts\SettingsStore合约

<?php

namespace App\LaravelSettings;

use KamalSroor\LaravelSettings\Contracts\SettingsStore;

class SettingsFileDriverHandler implements SettingsStore
{
    ...
}