ذخیره کردن اشیا در PHP

خیلی وقت ها هنگامی که برنامه های خودمون رو به صورت شی گرا می نویسیم نیاز داریم تا داده های خودمون رو درون دیتابیس ذخیره کنیم. وقتی که داده ها به صورت شی باشند ذخیره کردن داده ها درون دیتابیس میتونه برامون مشکل ایجاد کنه چون باید هر کدوم از صفت های شی (متغییر های کلاس) رو درون یک فیلد از دیتابیس ذخیره کنیم تا بعدا بتونیم دوباره ازشون استفاده کنیم. اما PHP یک راه حل بهتر در اختیار ما قرار داده تا بتونیم مستقیما اشیا (object) خودمون رو به رشته ی متنی تبدیل کنیم و در دیتابیس ذخیره کنیم و بعدا دوباره این رشته متنی رو به داده های مورد نیاز تبدیل کنیم 😀

برای تبدیل داده های درون یک شی به رشته ی متنی میتونیم از دستور serialize استفاده کنیم و برای تبدیل رشته ی متنی به داده های قبلی میتونیم از دستور unserialize استفاده کنیم 😀 خب حالا نحوه کار چجوری خواهد بود؟ به مثال زیر دقت کنید:

در مثال بالا اول یه کلاس تعریف کردیم و سپس یک شی از روی کلاس ساختیم. در مرحله ی بعد کارامون که با شی تموم شد اومدیم و اون رو با دستور Serialize به یک رشته ی متنی قابل ذخیره تبدیل کردیم , حالا میتونیم این رشته متنی رو درون پایگاه داده یا فایل ذخیره کنیم و موقع لزوم دوباره تبدیلش کنیم به شی مورد نظر. در دستورات بالا از تابع base64_encode برای این استفاده شده که موقع ذخیره شدن رشته ی متنی حاصل از object مشکل پیش نیاد چون دارای اسلش و ویرگول هست!

برای تبدیل رشته ی بعد از Serialize به یک شی (object) باید با دستور unserialize رشته متنی رو به ابجکت تبدیل کنیم. به مثال زیر توجه کنید:

در دستورات بالا رشته ی متنی که در مرحله قبل تولید کرده بودیم رو به درون متغییر memberstring قرار دادیم و بعدش عمل base64_decode رو انجام میدیم چون در مرحله ی قبلی اون رو Encode کرده بودیم (دیکد دقیقا برعکس عمل اینکد رو انجام میده) , حالا با دستور unserialize رشته ی حاصل رو به شی تبدیل میکنیم و در خط اخر میایم از شی خودمون استفاده میکنیم 😀

دقت کنید که نباید تعریف کلاس رو پاک کرد! تعریف کلاس باید در بالای صفحه لود بشه , در این جا من ساختار (تعریف) کلاس خودم رو در بالای کد ها تایپ کردم.

امیدوارم این اموزش بدردتون بخوره و دوستانی که برنامه های خودشون رو به صورت شی گرا مینویسن از این روش برای ذخیره سازی داده های خودشون در دیتابیس استفاده کنند چون کار رو براشون خیلی راحت تر میکنه.

به اشتراک بگذارید:Email this to someoneShare on FacebookTweet about this on TwitterShare on Google+Digg thisShare on LinkedInPin on PinterestShare on StumbleUponFlattr the authorShare on RedditBuffer this pageShare on TumblrPrint this pageShare on YummlyShare on VK

می‌خواهید دیدگاهتان را بیان کنید؟