現在、私は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がスローされますが、どのように修正するのですか?
ありがとうございました。
**返信sprintf( 'in_array($ s、$ roles)'、$ role); **この行は問題を引き起こしていると思います – rahulsm
@RahulMeshramその行は私にとってはうまく見えます。 – Mike
私はそうは思わない、これは53行目です.55行目は2行下にあり、末尾のカンマが問題です。 – Tiriel