我目前正在使用 Laravel 4 并且正在徘徊如何覆盖 Request::secure() 方法,我正在编写一个将在负载均衡器后面的应用程序,因此我宁愿让函数在标头时返回 true从负载均衡器应用的值。
理想情况下应该怎么做?我在这里阅读了这篇博客文章http://fideloper.com/extend-request-response-laravel似乎有点过头了。
我不完全理解 Laravel 的 Facades 概念?是否有可能这就是我如何做到这一点的答案?
我目前正在使用 Laravel 4 并且正在徘徊如何覆盖 Request::secure() 方法,我正在编写一个将在负载均衡器后面的应用程序,因此我宁愿让函数在标头时返回 true从负载均衡器应用的值。
理想情况下应该怎么做?我在这里阅读了这篇博客文章http://fideloper.com/extend-request-response-laravel似乎有点过头了。
我不完全理解 Laravel 的 Facades 概念?是否有可能这就是我如何做到这一点的答案?
正如 fideloper 在他的文章中提到的那样,扩展Request
类与普通类略有不同。不过更简单:
1.创建你的扩展Request
类并确保它可以自动加载;
扩展请求.php
namespace Raphael\Extensions;
use Illuminate\Support\Facades\Response as IlluminateResponse;
class Response extends IlluminateResponse {
public function isSecure() {
return true;
}
}
请注意,我们扩展了isSecure
方法,而不是secure
. 这是因为简单地从 Symfony 的基类secure
调用。isScure
Request
2.确保 Laravel 使用你的扩展类。为此,请更改您的start.php文件;
引导程序/start.php
/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/
use Illuminate\Foundation\Application;
Application::requestClass('Raphael\Extensions\Request');
$app = new Application;
$app->redirectIfTrailingSlash();
3.确保您在app.php配置文件中设置了正确的别名。
应用程序/配置/app.php
'aliases' => array(
// ...
'Request' => 'Raphael\Extensions\Request',
// ...
),