【问题标题】:How to set different Laravel 5 storage and cache path local vs production?如何设置不同的 Laravel 5 存储和缓存路径本地与生产?
【发布时间】:2015-06-05 17:38:28
【问题描述】:

关于如何根据运行环境为我的 Laravel 5 应用程序设置不同的存储和缓存路径,我找不到任何好的答案。

我特别想改变存储路径和缓存路径。

目前 config/cache.php 有这样一行:

'path'   => storage_path().'/framework/cache',

我想将其更改为“/www/app-cache/”,仅用于生产环境。

我想将默认 storage_path 更改为“/www/app-store/”,仅用于生产环境。

有没有什么好的方法可以做到这一点?

目前我创建了一个新的应用程序类,它扩展了旧的应用程序类,如下所示:

<?php namespace App;

use Illuminate\Foundation\Application;

class XXXApplication extends Application
{
    public function storagePath()
    {
        if($this->environment('production')) {
            return '/www/app-store/';
        }

        return parent::storagePath();
    }
}

这是一个聪明的方法吗?如果是,我该如何更改缓存路径?

【问题讨论】:

    标签: php laravel-5


    【解决方案1】:

    通常,在您的本地环境中,您使用的是 .env 文件。

    因此,您可以在 config/cache.php 文件中执行以下操作

    'path' => env('CACHE_PATH', storage_path().'/framework/cache');
    

    如果在您的 .env 中有一个 CACHE_PATH 变量,您的应用将使用它。 如果不是,则默认使用第二个参数中指定的另一个。

    在app.php中为你做一些存储路径

    【讨论】:

    • 这是一个好方法吗? "public function storagePath() { return env('STORAGE_PATH', parent::storagePath()); }" 或者在不扩展 Application 类的情况下有更好的方法吗?
    • 最好覆盖配置而不是执行自定义函数:为了可读性和代码理解。
    • 能否只在config/app.php中添加存储路径,我觉得这里默认没有指定。
    猜你喜欢
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2017-09-12
    相关资源
    最近更新 更多