私はSymfony 2のウェブサイトのHow to Override any Part of a Bundleページをフォローしています。これは面白いです:Symfony 2リクエストサービスを拡張しますか?
サービスのクラス名を保持するパラメータを、自分の クラスに設定するには、app/config/config.ymlに設定します。これはもちろん、クラス名がサービス内のパラメータとして定義されている場合は、 サービスを含むバンドルの コンフィグレーションの場合にのみ可能です。
だから私は/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config
を見て、私はそれのようなものでsymfonyのSession
クラスを拡張することは容易でなければなりませんのでsession.xml
は、%session.class%
パラメータを定義していることがわかった:私はまだこれをテストdin't
namespace Acme\HelloBundle\Component\HttpFoundation;
use Symfony\Component\HttpFoundation\Session;
class ExtendedSession extends Session
{
public function setSuccessFlashText($text, array params = array())
{
parent::setFlash('success', $this->getTranslator()->trans($text, $params);
}
}
。しかし、私はrequest
特別サービスで同じことをどうしたらいいですか?コードを読みやすくするために便利なショートカットを追加したいと思います。
私はservices.xml
ファイルでこれを見つけた:ここ
<!--
If you want to change the Request class, modify the code in
your front controller (app.php) so that it passes an instance of
YourRequestClass to the Kernel.
This service definition only defines the scope of the request.
It is used to check references scope.
-->
<service id="request" scope="request" synthetic="true" />
は私app.php
です。カスタムリクエストクラスのインスタンスをどのように渡す必要がありますか?
require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';
//require_once __DIR__.'/../app/AppCache.php';
use Symfony\Component\HttpFoundation\Request;
$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);
$kernel->handle(Request::createFromGlobals())->send();
'ウェブ/ app.php':あなたもコメントドキュメントでそのクラスを定義することができますIDEのためにあなたがサービスとして、またはコントローラからの要求を取得したい場合場合
、そんなことをしている? O_o –
@thecatontheflat lol:私は '/ app'フォルダを見ていました...私は質問を更新します。 – gremo