តើអ្នកស្គាល់រឺនៅ អ្វីទៅដែលហៅថា Symfony Profiler? តើវាមានចំណុចសំខាន់អ្វីខ្លះ? នៅក្នុងអត្ថបទនេះ យើងនឹងណែនាំអ្នកអំពី Symfony Profiler ហើយនិយាយអំពីដំណាក់កាលសំខាន់ៗរបស់ Profiler៖
១) របៀបបង្កើត custom Data Collector
Symfony Profiler delegates data collection ទៅកាន់ classes ពិសេសមួយចំនួនដែលហៅថា data collectors។
ក) បង្កើត custom Data Collector
ការបង្កើត custom data collector គឺមានលក្ខណៈសាមញ្ញដូចជាការ implement នូវ DataCollectorInterface ៖
getName() method បញ្ជូនត្រលប់មកវិញនូវ ឈ្មោះនៃ data collector និងត្រូវតែ unique នៅក្នុង application។ តម្លៃនេះក៏ត្រូវបានប្រើក្នុងការ access នូវព័ត៌មាននាពេលក្រោយ។
collect() method គឺក្ដាប់ទៅលើការផ្ទុកនូវទិន្នន័យដែលបានប្រមូលនៅក្នុង local properties។
ភាគច្រើន វាងាយស្រួលក្នុងការ extend DataCollector និងពេញនិយមនូវ $this->data property។ សាកស្រមៃថាអ្នកបង្កើតនូវ data collector ថ្មីមួយដែលប្រមូលនូវ method និងទទួលនូវប្រភេទនៃ content ពីការស្នើរ៖
ខ) ធ្វើការបើក Custom Data Collectors
ដើម្បីបើកវាបាន ត្រូវកំណត់វាជា regular service និង tag វាជា data_collector ៖
គ) ការបន្ថែម Web Profiler Templates
ព័ត៌មានដែលបានប្រមូលដោយ data collector របស់អ្នកអាចនឹងបង្ហាញទាំងក្នុង web debug toolbar និងក្នុង web profiler។ ដើម្បីធ្វើដូចនេះ អ្នកត្រូវបង្កើត Twig template ដែលបញ្ចូលនូវ blocks ជាក់លាក់មួយចំនួន។
ក្នុងការងារសាមញ្ញនេះ អ្នកគ្រាន់តែចង់បង្ហាញនូវ ព័ត៌មានក្នុង toolbar ដោយមិនមានការផ្ដល់នូវ profiler panel។ នេះទាមទារអោយមានការកំណត់ toolbar block និងកំណត់តម្លៃនៃ អញ្ញត្តិចំនួន២ ដែលហៅថា icon និង text៖
ប្រសិនបើ toolbar panel បញ្ចូលនូវ extended web profiler information នោះ Twig template ក៏ត្រូវកំណត់ blocks បន្ថែមផងដែរ៖
Menu និង panel blocks គឺទាមទារអោយ blocks កំណត់នូវ contents ដែលបង្ហាញក្នុង web profiler panel ដែលមានទំនាក់ទំនងជាមួយ data collector នេះ។ blocks ទាំងអស់បាន access ទៅកាន់ collector object។
ចុងក្រោយ ដើម្បីបើក data collector template សូមបន្ថែម template attribute ទៅកាន់ data_collector tag ក្នុង service configuration របស់អ្នក៖
មុខងារនៃ panel នីមួយៗក្នុង toolbar គឺបានកំណត់ដោយ collector ដែលមានអាទិភាពជាងគេ។ ភាគច្រើននៃការបង្កើត collector គឺប្រើ 255 ជាអាទិភាពរបស់គេ។ ប្រសិនបើអ្នកចង់អោយ collector របស់អ្នកបង្ហាញនូវមុនពួកគេ សូមប្រើ តម្លៃដែលខ្ពស់ជាងគេ៖