通过GUI脚本对Laravel 5的配置文件进行永久性更改

时间:2016-06-21 21:29:20

标签: php laravel-5

我正在使用Laravel 5并构建一个应用程序,该应用程序需要能够通过应用程序本身添加/编辑其他文件系统设置,而不是手动执行此操作。我希望能够通过GUI而不是手动添加新的配置设置。

我找到了对this Link的引用,但它似乎与Laravel 5存在一些问题。

还有其他/更好的方法来实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

将代码写入php文件对我来说感觉不对。每当用户可以更改某些内容时,我都会将其存储在您的数据库中。我想不应该那么难。

您可以创建一个类似FileSystemConfig的Eloquent模型,其中包含存储特定于文件系统的配置值的必需列。像[disk, key, value]这样的东西。您的GUI只会与该模型交互以创建/读取/更新/删除磁盘。

要让应用程序获取这些“动态”配置值,您只需在ConfigServiceProvider中注册它们(应该已经存在于您的App / Providers中)。这可能看起来像这样(未经测试!)

class ConfigServiceProvider extends ServiceProvider {

    public function register()
    {

        $fileConfig = FileSystemConfig::all()
            ->groupBy('disk')
            ->transform(function($group) {
                $out = [];
                foreach ($group as $item) {
                    $out[$item['key']] = $item['value'];
                }
                return $out;
            })
        ;
        config([
            'filesystems.disks' => $fileConfig
        ]);
    }
}