2016-12-14 5 views
1

現在、私はSymfony 2.8のいくつかのプロジェクトに取り組んでいます。 私はこの奇妙なPHPエラーを見つけました。コンマの末尾にコンマがあるため、構文エラーが発生する

私は、Symfonyプロジェクト内でKahlanテストフレームワークを使用できるsymfonyコマンドをビルドしています。したがって、私はKahlanテストスイートで利用できるようにSymfonyコンテナを必要とし、このスイートのグローバル変数として定義する必要があります。コンテナ認識コマンドを使用した単純な問題。

しかし、ここでは不具合が発生します。 、

[...] 
public function getFunctions() 
{ 
    return array(
     new ExpressionFunction('is_anonymous', function() { 
      return '$trust_resolver->isAnonymous($token)'; 
     }, function (array $variables) { 
      return $variables['trust_resolver']->isAnonymous($variables['token']); 
     }), 

     new ExpressionFunction('is_authenticated', function() { 
      return '$token && !$trust_resolver->isAnonymous($token)'; 
     }, function (array $variables) { 
      return $variables['token'] && !$variables['trust_resolver']->isAnonymous($variables['token']); 
     }), 

     new ExpressionFunction('is_fully_authenticated', function() { 
      return '$trust_resolver->isFullFledged($token)'; 
     }, function (array $variables) { 
      return $variables['trust_resolver']->isFullFledged($variables['token']); 
     }), 

     new ExpressionFunction('is_remember_me', function() { 
      return '$trust_resolver->isRememberMe($token)'; 
     }, function (array $variables) { 
      return $variables['trust_resolver']->isRememberMe($variables['token']); 
     }), 

     new ExpressionFunction('has_role', function ($role) { 
      return sprintf('in_array(%s, $roles)', $role); 
     }, function (array $variables, $role) { 
      return in_array($role, $variables['roles']); 
     }), 
    ); 
} 
[...] 

ライン55は、最後の配列要素の行です:

PHP Parse error: syntax error, unexpected ',' in /tmp/kahlan/data/www/project/vendor/symfony/symfony/src/Symfony/Component/Security/Core/Authorization/ExpressionLanguageProvider.php on line 55

とファイルのコード:私はsymfonyのsecurity.authorization_checkerサービスを使用するサービスを呼び出すようにしようとすると、CLIはこのエラーを返します。カンマは末尾のカンマです。 エラーはcliでのみスローされます。 もちろん、私はコンマを削除しようとしましたが、すべてが完全に機能します。しかし明らかに、私はSymfonyの組み込みクラスを変更することはできません。

PHPでは、cliモードでのみ配列内の末尾のカンマにParse Errorsがスローされますが、どのように修正するのですか?

ありがとうございました。

+0

**返信sprintf( 'in_array($ s、$ roles)'、$ role); **この行は問題を引き起こしていると思います – rahulsm

+0

@RahulMeshramその行は私にとってはうまく見えます。 – Mike

+0

私はそうは思わない、これは53行目です.55行目は2行下にあり、末尾のカンマが問題です。 – Tiriel

答えて

0

kahlan-bundle repoで見られるように、問題は自分のコードではなく、kahlanと同じように見えます。

Issue answered by Kahlan dev here

新しいkahlanバージョンにアップグレードするだけで問題は解決しました。

関連する問題