# Serializer Component (Symfony) > Normalizer, Denormalizer, กลุ่มการ serialization, การอ้างอิงแบบวงกลม, context, Normalizer แบบกำหนดเอง, Encoder - 20 คำถามสัมภาษณ์ - Mid-Level - [คำถามสัมภาษณ์: Symfony](https://sharpskill.dev/th/technologies/symfony/interview-questions.md) ## 1. บทบาทหลักของ component Serializer ใน Symfony คืออะไร? **คำตอบ** component Serializer แปลงอ็อบเจกต์ PHP ให้เป็นรูปแบบต่าง ๆ (JSON, XML, CSV, YAML) และในทางกลับกัน มันมีบทบาทสำคัญใน REST API โดยการแปลง entity ให้เป็นการตอบสนองที่มีโครงสร้างและสร้างอ็อบเจกต์จากคำขอที่เข้ามา กระบวนการประกอบด้วยสองขั้นตอน: การ normalization (อ็อบเจกต์เป็น array) และการ encoding (array เป็นรูปแบบสุดท้าย) ## 2. สองขั้นตอนหลักของกระบวนการ serialization ใน Symfony คืออะไร? **คำตอบ** การ serialization ใน Symfony เกิดขึ้นในสองขั้นตอนที่แยกจากกัน การ normalization จะแปลงอ็อบเจกต์ PHP เป็น associative array ก่อนโดยใช้ Normalizer ที่เหมาะกับชนิดของอ็อบเจกต์ จากนั้นการ encoding จะแปลง array นี้เป็นรูปแบบสุดท้ายเช่น JSON หรือ XML ผ่าน Encoder การแยกส่วนนี้ช่วยให้มีความยืดหยุ่นและการนำ component กลับมาใช้ใหม่ได้สูง ## 3. ควรใช้ Normalizer ใดเป็นค่าเริ่มต้นในการ serialize อ็อบเจกต์ PHP มาตรฐานใน Symfony? **คำตอบ** ObjectNormalizer เป็น Normalizer ที่ยืดหยุ่นที่สุดและแนะนำสำหรับอ็อบเจกต์ PHP มาตรฐาน มันใช้ component PropertyAccess เพื่อเข้าถึง property ผ่าน getters/setters, property แบบ public หรือ magic method นอกจากนี้ยังรองรับกลุ่มการ serialization, callback และการจัดการการอ้างอิงแบบวงกลม ทำให้เป็นตัวเลือกเริ่มต้นในกรณีส่วนใหญ่ ## มีอีก 17 คำถาม - จะกำหนดกลุ่มการ serialization บน entity ของ Symfony ได้อย่างไร? - จะเปิดใช้งานกลุ่มซีเรียลไลเซชันเมื่อเรียกใช้ Serializer ได้อย่างไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Symfony อื่นๆ - [PHP สมัยใหม่ (8.1+)](https://sharpskill.dev/th/technologies/symfony/interview-questions/php-modern-features.md): 20 คำถาม, Junior - [พื้นฐาน Symfony](https://sharpskill.dev/th/technologies/symfony/interview-questions/symfony-basics.md): 25 คำถาม, Junior - [Routing & Controllers](https://sharpskill.dev/th/technologies/symfony/interview-questions/routing-controllers.md): 20 คำถาม, Junior - [Twig & Templates](https://sharpskill.dev/th/technologies/symfony/interview-questions/twig-templates.md): 20 คำถาม, Junior - [พื้นฐาน Doctrine ORM](https://sharpskill.dev/th/technologies/symfony/interview-questions/doctrine-orm-basics.md): 25 คำถาม, Junior - [ฟอร์ม Symfony](https://sharpskill.dev/th/technologies/symfony/interview-questions/forms.md): 22 คำถาม, Junior - [การตรวจสอบความถูกต้องของข้อมูล](https://sharpskill.dev/th/technologies/symfony/interview-questions/validation.md): 18 คำถาม, Junior - [Dependency Injection & Services](https://sharpskill.dev/th/technologies/symfony/interview-questions/dependency-injection.md): 24 คำถาม, Mid-Level - [Security & Authentication](https://sharpskill.dev/th/technologies/symfony/interview-questions/security-authentication.md): 26 คำถาม, Mid-Level - [Doctrine ขั้นสูง](https://sharpskill.dev/th/technologies/symfony/interview-questions/doctrine-advanced.md): 24 คำถาม, Mid-Level - [API Platform](https://sharpskill.dev/th/technologies/symfony/interview-questions/api-platform.md): 22 คำถาม, Mid-Level - [Events & Event Subscribers](https://sharpskill.dev/th/technologies/symfony/interview-questions/events-subscribers.md): 20 คำถาม, Mid-Level - [Console & Commands](https://sharpskill.dev/th/technologies/symfony/interview-questions/console-commands.md): 18 คำถาม, Mid-Level - [Messenger Component](https://sharpskill.dev/th/technologies/symfony/interview-questions/messenger.md): 22 คำถาม, Mid-Level - [HTTP Client](https://sharpskill.dev/th/technologies/symfony/interview-questions/http-client.md): 18 คำถาม, Mid-Level - [Cache & ประสิทธิภาพ](https://sharpskill.dev/th/technologies/symfony/interview-questions/cache.md): 20 คำถาม, Mid-Level - [Workflow Component](https://sharpskill.dev/th/technologies/symfony/interview-questions/workflow.md): 18 คำถาม, Mid-Level - [Testing Symfony](https://sharpskill.dev/th/technologies/symfony/interview-questions/testing.md): 22 คำถาม, Mid-Level - [Mailer Component](https://sharpskill.dev/th/technologies/symfony/interview-questions/mailer.md): 16 คำถาม, Mid-Level - [การแปลและ i18n](https://sharpskill.dev/th/technologies/symfony/interview-questions/translations.md): 16 คำถาม, Mid-Level - [EasyAdmin Bundle](https://sharpskill.dev/th/technologies/symfony/interview-questions/easyadmin.md): 18 คำถาม, Mid-Level - [สถาปัตยกรรม Symfony](https://sharpskill.dev/th/technologies/symfony/interview-questions/architecture-patterns.md): 24 คำถาม, Senior - [ประสิทธิภาพและการเพิ่มประสิทธิภาพ](https://sharpskill.dev/th/technologies/symfony/interview-questions/performance-optimization.md): 22 คำถาม, Senior - [ความปลอดภัยขั้นสูง](https://sharpskill.dev/th/technologies/symfony/interview-questions/security-advanced.md): 22 คำถาม, Senior - [Custom Bundles](https://sharpskill.dev/th/technologies/symfony/interview-questions/custom-bundles.md): 20 คำถาม, Senior - [Microservices ด้วย Symfony](https://sharpskill.dev/th/technologies/symfony/interview-questions/microservices.md): 22 คำถาม, Senior - [Real-time & WebSockets](https://sharpskill.dev/th/technologies/symfony/interview-questions/real-time.md): 18 คำถาม, Senior - [Deployment & DevOps](https://sharpskill.dev/th/technologies/symfony/interview-questions/deployment-devops.md): 20 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/symfony/interview-questions/serializer