របៀបនៃការប្រើប្រាស់ Expressions នៅក្នុង Security, Routing, Services ហើយនិង Validation

នៅក្នុងជំពូកនេះ យើងនឹងសូមណែនាំអ្នកអំពីការប្រើប្រាស់ Expression នៅក្នុង Security, Routing, Services ហើយនិង Validation នៃ Symfony។ Symfony បានភ្ជាប់មកជាមួយនឹង ExpressionLanguage component ដ៏ពេញនិយម។ វាអាចអោយអ្នកធ្វើការ customize logic នៅខាងក្នុង​configuration បានផងដែរ។

Symfony Framework ប្រើប្រាស់ឥទ្ធិពល expression បញ្ចេញមកក្រៅតាមរយៈ៖

ទី១ ធ្វើការ configure services

ទី២ ផ្គូរផ្គងលក្ខខណ្ឌ Route

ទី៣ ធ្វើការពិនិត្យលើ security និង​ access controls ជាមួយនឹង​ allow_if

ទី៤ Validation

សម្រាប់ព័ត៌មានបន្ថែមអំពីរបៀបនៃការបង្កើតនិងធ្វើការជាមួយ expression សូមមើលទៅតាម Expression Syntax

១) Security: Access Controls ដែលស្មុគស្មាញជាមួយ Expression

ក្នុងការបន្ថែម role ដូចជា ROLE_ADMIN, isGranted() method ក៏អាចទទួលយកនូវ Expression object បានផងដែរ៖

ក្នុងឧទាហរណ៏នេះ ប្រសិនបើ user មាន ROLE_ADMIN រឺក៏ current user object’s isSuperAdmin() method បញ្ជូនមកជា true បន្ទាប់មក access អាចនឹងកាន់តែធំ។

នេះគឺជាការប្រើ expression ហើយអ្នកអាចរៀនបន្ថែមទៀតអំពី expression language syntax តាមរយៈExpression Syntax

នៅខាងក្នុង expression អ្នកបាន​ access ទៅកាន់ចំនួននៃ variable៖

user ៖ user object (រឺជា string anon ប្រសិនបើអ្នកមិនមែនជា authenticated)

roles ៖​ array នៃ roles ដែល user មាន រួមបញ្ចូលពី role hierarchy តែមិនមែនរួមបញ្ចូលនូវ IS_AUTHENTICATED_* attributes

object​ ៖ object ដែលដាក់នៅជា argument ទី២ ទៅកាន់ isGranted()

token ៖ ជា token object

trust_resolverAuthenticationTrustResolverInterface ជា object ដែលអ្នកនឹងប្រហែលជាប្រើ is_*() funtions ខាងក្រោមជំនួស។

បន្ថែមពីនេះផងដែរ អ្នកអាច access ទៅកាន់តួលេខនៃ function ដែលនៅខាងក្នុង​ expression៖

is_authenticated៖ បញ្ជូនត្រលប់មកវិញនូវ true ប្រសិនបើ user គឺជា authenticated តាមរយៈ “remember-me” រឺក៏ authenticated “fully” – i.e បញ្ជូនត្រលប់មកវិញនូវ true ប្រសិនបើ​ user ជា “logged in”។

is_anonymous៖ ស្មើរនឹងការប្រើប្រាស់​ IS_AUTHENTICATED_ANONYMOUSLY ជាមួយ isGranted() function។

is_remember_me៖ ប្រហែល តែមិនស្មើរនឹង IS_AUTHENTICATED_REMEMBER

is_fully_authenticated៖ ប្រហែលនឹង តែមិនស្មើរនឹង IS_AUTHENTICATED_FULLY ទេ

has_role៖ ពិនិត្យមើលថាប្រសិនបើ user បានអោយ​ role – equivalent ទៅ expression ដូចជា ‘ROLE_ADMIN’ in roles

ចែករំលែក​អត្ថបទនេះទៅកាន់៖

Exit mobile version