بسیاری از سیستمهای ذخیرهسازی اطلاعات امکان ذخیرهسازی اطلاعات غیر رشتهای را ندارند. برای مثال اغلب سیستمهای پایگاه داده رابطهای سنتی امکان ذخیرهسازی انواع پیشرفته اطلاعات مثل متغیرها و اشیا و ... را ندارند.
برای حل این مشکل و همچنین برخی نیازهای دیگر از Serialization استفاده میشود.

Serialization چیست ؟
تبدیل دادههای پیچیده مثل آرایهها و اشیاء به یک رشته را Serialization مینامیم. عمل عکس این کار هم UnSerialization نامیده میشود.
در این فرایند ممکن است تمامی جزئیات متغیر قابل تبدیل نباشند یا در دو مرحلهی پی در پی تبدیل به رشته و مجددا تبدیل به حالت اصلی، تغییراتی اتفاق بیفتد.
چه روشهایی برای Serialization وجود دارد ؟
برای این کار معمولا از روشهای زیر استفاده میشود:
- JSON
- XML
- YAML
- Protobuf
- Avro
- MessagePack
- Thrift
- PHP Serialization
روشهای دیگری هم برای این کار وجود دارد که بسته به زبان برنامهنویسی ممکن است مورد استفاده باشد.
Serialization کلاسها
به دلیل اینکه کلاسها میتوانند ویژگیهای داخلی پیچیدهای داشته باشند و اطلاعات را به شکلهای ویژهای برای هر نمونه یا به صورت مشترک برای چند نمونه نگهداری کنند، جهت Serialization صحیح، لازم است تا کلاس خود در فرآیند Serialization دخالت کند و بخشهایی از اطلاعات را پیش از تبدیل به رشته، پردازش کند و تغییر شکل بدهد.
Serialization در PHP
زبان برنامهنویسی php دارای دو تابع serialize و unserialize است میتوانند برای این کار مورد استفاده قرار بگیرند. علاوه بر این برنامهنویسان ممکن است ترحیح بدهند تا برای این کار از توابع مربوط به JSON کمک بگیرند.
بهترین روش سریالیزیشن
حالتهای خاصی ممکن است وجود داشته باشد که یکی از روشها به روشهای دیگر برتری پیدا کند ولی به طور کلی با توجه به فراگیر بودن پشتیبانی از JSON در زبانهای مختلف برنامهنویسی، شاید بهترین روش برای Serialization در اغلب موارد JSON باشد. حتی بسیاری از سیستمهای پایگاه داده مثل MySQL هم توابعی برای مدیریت و ذخیره و بازیابی ستونهای JSON در اختیار شما قرار میدهند.

بسیار عالی ممنون
بسیار عالی. دنبال مفهومش بودم. لایک داری