kenarkose / settlement
此包已被废弃,不再维护。未建议替代包。
具有JSON驱动器的框架无关的持久化、类型化和可分组设置
2.0.0
2016-07-28 12:51 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- mikey179/vfsstream: ~1.5
- orchestra/testbench: ~3.0
- phpunit/phpunit: ~4.0
README
具有JSON驱动器的框架无关的持久化、类型化和可分组设置。
Settlement提供了一个简单的解决方案,支持类型和组来持久化设置。
特性
- 持久化设置的灵活API
- 可配置的JSON驱动器
- 分组和类型化的设置
- 分组和类型验证
- Laravel 5的服务提供者
- 一个用于易于开发的phpunit测试套件
安装
安装Settlement很简单。只需通过Composer拉取此包。
{ "require": { "kenarkose/settlement": "~2.0" } }
使用方法
创建一个新的JSON仓库实例,指定路径和文件名,然后就可以使用了。
use Kenarkose\Settlement\Repository\JSONRepository; $settings = new JSONRepository('path/to', 'settings.json');
以下是定义在仓库接口中的方法列表。
$settings->set('foo', 'bar'); $settings->set('foo', 42, null, 'number'); $settings->set('foo', 'bar', 'Label', 'text', 'baz_group'); $settings->get('foo'); // 'bar' $settings->getComplete('foo'); // ['value' => 'bar', 'label' =>'Label', 'type' => 'text', 'group' => 'baz_group'] $setting->has('foo'); // true $setting->delete('foo'); $setting->getGroup('baz_group'); // Name of the Baz Group $setting->setGroup('foo_group', 'Name of the Foo Group'); $setting->hasGroup('foo_group'); // true $setting->getGroupSettings('baz_group'); // ['foo' => ['value' => 'bar', 'label' => 'Label', 'type' => 'string', 'group' => 'baz_group']] $setting->deleteGroup('foo_group'); $setting->flush();
此外,您还可以使用JSONRepository提供的其他方法。
$setting->path(); // Returns current path $setting->path('new/path'); // Sets a new path $setting->filename(); // Returns current filename $setting->filename('config.json'); // Sets a new filename $setting->settings(); // Returns all stored settings $setting->settings( ['foo' => ['value' => 'bar', 'type' => 'string', 'group' => null] ); // Replaces stored settings $setting->groups(); // Returns all stored groups $setting->groups( ['dummy' => 'Dummy Group'] ); // Replaces stored groups $setting->stored(); // Returns all stored information $setting->stored([ 'settings' => [...], 'groups' => [...] ]); // Replaces all stored information $setting->load(); // Loads from current path and filename $setting->load('new/path', 'config.json'); // Loads from new path and filename $setting->save(); // Saves to current path and filename $setting->save('new/path', 'config.json'); // Saves to new path and filename
更多选项,您可以参考源代码和测试,因为Settlement经过良好的测试和文档化。
Laravel用户
Settlement Service Provider for Laravel 5注册了默认的LaravelJSONRepository、门面和settings()助手。
Laravel安装
-
为了注册Settlement服务提供者,请将
'Kenarkose\Settlement\Provider\Laravel\SettlementServiceProvider'
添加到您的config/app.php
文件中providers
数组的末尾。'providers' => array( 'Illuminate\Foundation\Providers\ArtisanServiceProvider', 'Illuminate\Auth\AuthServiceProvider', ... 'Kenarkose\Settlement\Provider\Laravel\SettlementServiceProvider', ),
-
您可以使用提供的门面来访问Settlement提供的服务。
Settings::get('foo'); Settings::set('bar', 'baz');
为了注册门面,请将
'Settings' => 'Kenarkose\Settlement\Provider\Laravel\Settings'
添加到您的config/app.php
文件中aliases
数组的末尾。'aliases' => array( 'App' => 'Illuminate\Support\Facades\App', 'Artisan' => 'Illuminate\Support\Facades\Artisan', ... 'Settings' => 'Kenarkose\Settlement\Provider\Laravel\Settings', ),
-
如果不喜欢门面,还提供了一个辅助函数。
settings(); // Returns the repository // Getting a value settings('foo'); // is the same as settings()->get('foo'); // Setting a value settings('foo', 'bar'); // is the same as settings()->set('foo', 'bar'); // Other possible derivations of setting settings('foo', 'bar', 'string'); settings('foo', 'bar', 'string', 'group');
-
最后,您可以通过发布配置文件来自定义Settlement的行为。为此,请使用以下命令。
php artisan vendor:publish
然后,您将在
config/settlement.php
路径下找到配置文件。
许可证
Settlement在MIT许可证下发布。