maharshiabi/laravel-settings

为 Laravel 应用提供简单配置包

dev-master 2020-07-27 08:55 UTC

This package is auto-updated.

Last update: 2024-09-27 17:53:49 UTC


README

Latest Version on Packagist Total Downloads

Laravel 包,提供 Laravel 应用的配置模块,每个应用都需要。

支持 laravel >= 5.2

安装

  1. composer

将以下内容添加到您的 composer 文件中。

"maharshiabi/laravel-settings": "dev-master"

或者运行以下命令

composer require maharshiabi/laravel-settings --dev
  1. config/app.php [在 Laravel 5.5 中不需要此步骤,因为具有自动发现特性]

将新的提供者添加到 providers 数组

'providers' => [
    // ...
   	\MAHARSHIABI\Settings\App\Providers\SettingServiceProvider::class
    // ...
  ],

并将 Setting 类添加到别名数组

'aliases' => [
	// ...
	'Settings' => \MAHARSHIABI\Settings\App\Facades\Setting::class
    // ...
],
  1. 发布

运行以下命令

php artisan vendor:publish

config/settings.phpresources/vendor/settings 将被添加到您的 Laravel 项目中。

  1. 迁移

您可以在 config/settings.php 中设置表名

return [
	// ...
	// settings package table name the default is `settings`
    'table' => 'settings'
    // ...
];

默认表名为 settings。然后运行迁移命令

php artisan migrate

设置表将被迁移到您的数据库。

包选项

发布包后,新配置文件 config/settings.php 将被添加,根据您的业务需求更新值。

return [
    //settings route
    'route' => 'settings',

    'middleware' => ['web', 'auth'],

    // hidden records not editable from interface when set to false
    'show_hidden_records' => false,

    //javascript format
    'date_format' => 'mm/dd/yyyy',
    // number of digits after the decimal point
    'number_step' => 0.001,

    // upload path for settings of type file
    'upload_path' => 'uploads/settings',

    // valid mime types for settings of type file
    'mimes' => 'jpg,jpeg,png,txt,csv,pdf',

    'per_page' => 10,

    // settings package table name the default is `settings`
    'table' => 'settings'
];

如何使用

设置的默认路由是

your-domain/settings

它将显示您拥有的所有设置列表,您可以从那里管理设置。

在代码中获取设置值时,可以使用如下外观:

验证键是否存在

\Settings::has('SETTING_KEY');
\Settings::get('SETTING_KEY');
\Settings::get('SETTING_KEY', 'Default value if not exist');

例如

\Settings::get('SITE_TITLE', 'Laravel Settings');

您也可以使用星号来获取设置组。例如

\Settings::get('MAIL_*');

将返回以 MAIL 开头的所有设置键的数组

[
'MAIL_DRIVER' => 'smtp',
'MAIL_HOST'   => 'mailtrap.io',
'MAIL_PORT'   => '2525',
]

如果是文件类型,将返回完整路径

config('settings.upload_path') . '/' . $value;

例如

uploads/settings/site_logo.png

===================================