セキュリティ、ルーティング、サービス、検証で式を使用する方法
Symfony には強力な 式言語が付属していますコンポーネント。これにより、高度なカスタム ロジック # を構成に追加できます。
#Symfony フレームワークは、次の方法で式をうまく利用します:
- 構成サービス # ;
- ルート一致条件 ;
- セキュリティチェック (以下で説明) および #アクセス制御に allowed_if を使用する ### ;########################確認する##################。
- 作成 3³副詞節: 式の使用の詳細については、# # を参照してください。 式の構文 。
セキュリティ: 式では複雑なアクセス制御が使用されます ¶
##ROLE_ADMIN 以外のロールを受け入れるisGranted## ####また。 式
オブジェクトを受け入れます: この例では、現在のユーザーが #これは式を使用します。言語を表現するための構文について詳しくは、# を参照してください。 ##式の構文。 user use Symfony\Component\ExpressionLanguage\Expression;// ... public function indexAction(){
$this->denyAccessUnlessGranted(new Expression(
'"ROLE_ADMIN" in roles or (user and user.isSuperAdmin())'
)); // ...}
ROLE_ADMIN
または現在のユーザーの # を持っている場合、ユーザー オブジェクト ##isSuperAdmin()メソッドは true
を返します。その後、アクセスが承認されます (注: ユーザー オブジェクトはisSuperAdmin
メソッドはありません。このメソッドはこの例でのみ表示されます)。
)。
roles ユーザーが所有するロールの配列 (
object
#トークン
トークン オブジェクト。 #trust_resolver
インターフェイス、そのオブジェクトは次のとおりです。おそらく、代わりに以下の
関数を使用したいと思われます。
さらに、式でさまざまな関数にアクセスできます。
is_authenticated
true
を返します。 " 「Remember Me」または「Full」認証に合格した場合、たとえばユーザーがログインしている場合に true を返します。 is_anonymous
isGranted
と同等です 関数で IS_AUTHENTICATED_ANONYMOUSLY
を使用します。 is_remember_me
IS_AUTHENTICATED_REMEMBERED## と似ていますが、まったく同じではありません# ######、以下を参照してください。
is_ fully_authenticatedhas_role
#ロール
is_remember_me はチェック