我目前正在使用Laravel 4并且正在徘徊我如何覆盖Request :: secure()方法,我正在编写一个将在负载均衡器后面的应用程序,因此我宁愿让函数返回true如果从负载均衡器应用的标头值。
理想情况下应如何做?我在这里阅读了这篇博文http://fideloper.com/extend-request-response-laravel,似乎有点过分了。
我不完全了解Laravel的Facades概念?是否有可能在我的答案中如何做到这一点?
答案 0 :(得分:2)
正如fideloper所提到的那样,延伸Request
课程与普通课程相比有所不同。但更简单:
1。创建扩展的Request
类并确保它可以自动加载;
<强> ExtendedRequest.php 强>
namespace Raphael\Extensions;
use Illuminate\Support\Facades\Response as IlluminateResponse;
class Response extends IlluminateResponse {
public function isSecure() {
return true;
}
}
请注意,我们扩展了isSecure
方法,而不是secure
。这是因为secure
只是从Symfony的基础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',
// ...
),