0

composer.phar update を使用して symfony/swiftmailer-bundle を v2.2.5 に更新した後、次のようなエラーが発生します。

Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Removing symfony/swiftmailer-bundle (v2.2.4)
  - Installing symfony/swiftmailer-bundle (v2.2.5)
    Loading from cache

Writing lock file
Generating autoload files



  [Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]  
  The service definition "swiftmailer.mailer" does not exist.                 



Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-update-cmd event terminated with an exception



  [RuntimeException]                                                         
  An error occurred when executing the "'cache:clear --no-warmup'" command. 

2.2.4 にダウングレードした後、問題は修正されました。

Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Removing symfony/swiftmailer-bundle (v2.2.5)
  - Installing symfony/swiftmailer-bundle (v2.2.4)
    Loading from cache

Writing lock file
Generating autoload files
Clearing the cache for the dev environment with debug true
Installing assets using the hard copy option
Installing assets (part of code removed)
4

2 に答える 2

1

mailerservice は、名前に関係なく、正しい swiftmailer サービスのエイリアスであるため、間違いなく使用する必要があります。たとえば、im v2.3.3 です。swiftmailer.mailer.default

しかし、あなたは使わなければなりません

$container->findDefinition('mailer');

これとは異なりgetDefinition()、エイリアスも解決されるため、$serviceId引数がエイリアスの場合、基になる定義が取得されます。

于 2013-08-12T12:07:51.883 に答える
0

エラーを引き起こした行は次のとおりです。

$definition = $container->getDefinition('swiftmailer.mailer') ;

サービス名の変更によりエラーが発生しました。2.2.4 までの名前は

swiftmailer.mailer

2.2.5以降は次のとおりです。

swiftmailer.mailer.abstract

行を次のように変更しました。

$definition = $container->hasDefinition('swiftmailer.mailer') ? $container->getDefinition('swiftmailer.mailer') : $container->getDefinition('swiftmailer.mailer.abstract');

それはエラーを修正しました。

于 2013-08-12T08:45:32.343 に答える