ស្វែងយល់អំពី ExpressionLanguage Component នៅក្នុង Symfony3

ExpressionLanguage component ផ្ដល់នូវ engine ដែលអាច compile និងវាយតម្លៃទៅលើ expressions បាន។ Expression គឺជា one-liner មួយដែលអាច return នូវតម្លៃ (ភាគច្រើន ក៏ប៉ុន្តែមិនមានដែនកំណត់, Booleans)។ បន្ទាប់ពីអានអត្ថបទមួយនេះចប់ លោកអ្នកនឹងទទួលបាននូវចំណេះដឹងបន្ថែមមួយទៀតអំពី component នៅក្នុង symfony នោះគឺ ExpressionLanguage Component ដែលយើងខ្ញុំនឹងធ្វើការលម្អិតអំពីវា ដូចជាការតម្លើង និងការប្រើប្រាស់ជាដើម។

១) ការតម្លើង

ទី១៖ តម្លើង ExpressionLanguage Component តាមរយៈ Composer (symfony/expression-language នៅលើ Packagist)

ទី២៖ Git repository ផ្លូវការ (https://github.com/symfony/expression-language)

២) តើ Expression Engine អាចជួយអ្នកបានដោយរបៀបណា?

គោលបំណងរបស់ Component មួយនេះគឺ អនុញ្ញាតអោយអ្នកប្រើប្រាស់ បានប្រើនូវ expressions នៅខាងក្នុង configuration សម្រាប់ logic ដែលស្មុគស្មាញច្រើនទៀត។ ឧទាហរណ៏ដូចជា Symfony Framework ប្រើប្រាស់នូវ expressions ក្នុង security សម្រាប់ validation rules និង​ ក្នុង route matching។

ក្រៅពីការប្រើប្រាស់ component នៅក្នុង framework ដោយខ្លួនវាផ្ទាល់ហើយ ExpressionLanguage component គឺជាបេក្ខភាពដ៏ល្អមួយសម្រាប់គ្រឹះនៃ business rule engine។ គំនិតនេះគឺនាំអោយ webmaster នៃ website configure នូវអ្វីៗដោយវិធី dyamic ដោយមិនគិតទៅលើការប្រើប្រាស់ PHP និង មិនគិតពីការណែនាំនៃបញ្ហា security៖

យើងអាចនឹងមើលទៅលើ Expression ឃើញថា PHP sandbox មានលក្ខណៈដាក់កំហិតខ្លាំង និងសាំញ៉ាំចំពោះ external injections ដូចដែលអ្នកបានប្រកាសយ៉ាងជាក់លាក់ថា variable ណាមួយដែល available នៅក្នុង expression។

៣) ការប្រើប្រាស់

ExpressionLanguage Component អាច compile និងវាយតម្លៃចំពោះ expressions។ Expression គឺជា one-liner ដែលតែងតែ return នូវ Boolean ដែលអាចនឹងត្រូវបានប្រើប្រាស់ដោយកូដដែល execute នូវ expression នៅក្នុង if statement ។ ឧទាហរណ៏ដ៏សាមញ្ញបំផុតនៃ expression នោះគឺ ១ + ២ ។ អ្នកក៏អាចប្រើប្រាស់នូវ expression ជាច្រើនដែលពិបាកជាងនេះទៀតដូចជា SomeArray[3].SomeMethod(‘bar’) 

Component នេះផ្ដល់នូវវិធី២យ៉ាងដើម្បីធ្វើការជាមួយនឹង expressions៖

ទី១៖ evaluation ៖ expression គឺវា evaluated ដោយគ្មានការ compiled ទៅជា PHP

ទី២៖ compile ៖ expression compile ទៅជា PHP ដូចនេះវាអាច cache និង evaluated

class ដ៏សំខាន់សម្រាប់ component មួយនេះគឺ ExpressionLanguage

៤) Expression Syntax

សូមចុចទៅលើតំណភ្ជាប់មួយនេះ Expression Syntax ដើម្បីរៀនបន្ថែមអំពី Syntax នៃ ExpressionLanguage Component។

៥) Passing a Variable 

អ្នកក៏អាចធ្វើការ pass នូវ variables ទៅក្នុង expression ណាមួយនៃ valid PHP type (រួមទាំង object) បានផងដែរ៖

លទ្ធផលរបស់វានឹងបង្ហាញថា “Honeycrisp”។ សម្រាប់ព័ត៌មានលម្អិត សូមមើលទៅកាន់ Expression Syntax entry ជាពិសេសការធ្វើការជាមួយនឹង objects និង Arrays

៦) Caching

Component ផ្ដល់នូវវិធីសាស្ត្រផ្សេងៗគ្នាក្នុងការ caching សូមអានអំពី Caching Expression ដោយប្រើប្រាស់នូវ Parser Caches