首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用config/session.php中的帮助函数会给所有php artisan命令/ composer带来一个错误

使用config/session.php中的帮助函数会给所有php artisan命令/ composer带来一个错误
EN

Stack Overflow用户
提问于 2016-03-05 17:21:06
回答 1查看 158关注 0票数 1

在session.php中,我使用助手函数url()创建动态域名。这样,当我移动到真正的服务器时,我就不必更改域名了。看起来是这样的:

代码语言:javascript
复制
'domain' => url(''),

浏览器中的所有操作都很好,但是当我使用来自终端的任何php、artisan或composer命令时,都会出现以下错误:

代码语言:javascript
复制
PHP Fatal error:  Uncaught ReflectionException: Class log does not exist in /vendor/laravel/framework/src/Illuminate/Container/Container.php:738

像这样尝试似乎没什么用

代码语言:javascript
复制
'domain' => @url(''),

有什么事要做吗?我用的是Laravel 5.2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-05 17:58:11

这是因为url助手函数使用Illuminate\Routing\UrlGenerator类来生成URL,并且该类需要注入一个Request实例。在您的特殊情况下,这个问题没有针对手工命令的请求上下文。

我的建议是使用环境变量。因此,在您的.env文件中,您可以拥有:

代码语言:javascript
复制
SESSION_DOMAIN=mydomain.com

在您的config/session.php文件中,您可以拥有:

代码语言:javascript
复制
'domain' => env('SESSION_DOMAIN'),

您可以安全地使用env助手方法,因为它没有特殊的依赖关系。

如果确实希望使用动态方法,则可以通过条件赋值来设置cookie域,条件赋值仅在应用程序未在控制台模式下运行时才使用url设置cookie域。因此,拥有这样的东西就可以了:

代码语言:javascript
复制
'domain' => app()->runningInConsole() ? null : parse_url(url(''), PHP_URL_HOST),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35817253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档