ডেটাবেস নিয়ে কাজ করার জন্য কিছুকে ওওপি কৌশলগুলি কী বলে টেস্টেবল জিনিসগুলি রাখে? বলুন আমার একটি ব্যবহারকারী শ্রেণি রয়েছে এবং আমার উত্পাদন পরিবেশ মাইএসকিউএল এর বিপরীতে কাজ করে। আমি পিএইচপি ব্যবহার করে এখানে প্রদর্শিত কয়েকটি সম্ভাব্য পন্থা দেখছি:
ডেটা ব্যাকএন্ড উত্সকে বিমূর্ত করতে
load()
এবং এর জন্য ইন্টারফেস সহ একটি $ ডেটা_সোর্সে পাসsave()
করুন। পরীক্ষা করার সময়, একটি আলাদা ডেটা স্টোর পাস করুন।$ ব্যবহারকারী = নতুন ব্যবহারকারী ($ mysql_data_source); $ ব্যবহারকারী-> লোড ('বব'); $ ব্যবহারকারী-> সেটনাম ('রবি'); $ User-> সংরক্ষণ করুন ();
এমন একটি ফ্যাক্টরি ব্যবহার করুন যা ডাটাবেস অ্যাক্সেস করে এবং ফলাফল সারিটি ব্যবহারকারীর নির্মাণকারীর কাছে দেয়। পরীক্ষা করার সময়, ম্যানুয়ালি $ সারির প্যারামিটার তৈরি করুন বা ইউজারফ্যাক্ট্রি :: $ ডেটা_সোর্সটিতে অবজেক্টটি উপহাস করুন। (আমি কীভাবে রেকর্ডে পরিবর্তনগুলি সংরক্ষণ করতে পারি?)
class UserFactory { static $data_source; public static function fetch( $username ) { $row = self::$data_source->get( [params] ); $user = new User( $row ); return $user; } }
আমার পাশেই আমার কাছে ডিজাইন প্যাটার্নস এবং ক্লিন কোড রয়েছে তবে আমি প্রযোজ্য ধারণাগুলি খুঁজতে লড়াই করছি।