PHP में ऑब्जेक्ट्स का सीरियलाइज़ेशन: फ़ंक्शन, विधियाँ और व्यावहारिक उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP में ऑब्जेक्ट्स का सीरियलाइज़ेशन: मूल बातों से लेकर उन्नत तकनीकों तक



सीरियलाइज़ेशन जटिल डेटा संरचनाओं (ऑब्जेक्ट्स, ऐरे) को एक रैखिक प्रारूप में बदलने की प्रक्रिया है, जो भंडारण या स्थानांतरण के लिए उपयुक्त होता है। PHP में, यह तंत्र विशेष रूप से अनुरोधों के बीच ऑब्जेक्ट्स की स्थिति को संरक्षित करने, API के माध्यम से डेटा स्थानांतरित करने या डेटाबेस में रिकॉर्ड करने के लिए महत्वपूर्ण है। इस लेख में, हम PHP में सीरियलाइज़ेशन के सभी पहलुओं पर विस्तार से चर्चा करेंगे।



सीरियलाइज़ेशन क्या है और इसकी आवश्यकता क्यों है?



सीरियलाइज़ेशन एक ऑब्जेक्ट को एक स्ट्रिंग में "फ्रीज़" करने और फिर उसे वापस पुनर्स्थापित करने की अनुमति देता है। यह निम्नलिखित परिदृश्यों में उपयोगी है:

  • उपयोगकर्ता सत्रों को सहेजना (PHP स्वचालित रूप से सत्र डेटा को सीरियलाइज़ करता है)
  • Redis या Memcached में जटिल ऑब्जेक्ट्स को कैश करना
  • माइक्रोसर्विसेज़ के बीच ऑब्जेक्ट्स स्थानांतरित करना
  • फ़ाइलों में कॉन्फ़िगरेशन संग्रहीत करना
  • ऑब्जेक्ट्स की स्थिति की डिबगिंग और लॉगिंग


बेसिक सीरियलाइज़ेशन: serialize() और unserialize()



PHP सीरियलाइज़ेशन के साथ काम करने के लिए दो मुख्य फ़ंक्शन प्रदान करता है:



<?phpclass User {    public $name;    public $email;    private $password;

public function __construct($name, $email, $password) { $this->name = $name; $this->email = $email; $this->password = $password; }}

$user = new User('इवान पेत्रोव', 'ivan@example.com', 'secret123');$serialized = serialize($user);echo $serialized;// आउटपुट: O:4:"User":3:{s:4:"name";s:11:"इवान पेत्रोव";s:5:"email";s:16:"ivan@example.com";s:14:"\\0User\\0password";s:9:"secret123";}

// ऑब्जेक्ट को पुनर्स्थापित करना$unserialized = unserialize($serialized);echo $unserialized->name; // इवान पेत्रोव?>


महत्वपूर्ण: serialize() फ़ंक्शन ऑब्जेक्ट के सभी गुणों को संसाधित करता है, जिसमें प्राइवेट और प्रोटेक्टेड शामिल हैं। प्राइवेट गुण \\0ClassName\\0 उपसर्ग के साथ एन्कोड किए जाते हैं, प्रोटेक्टेड गुण — \\0*\\0 के साथ।



मैजिक मेथड __sleep() और __wakeup()



सीरियलाइज़ेशन प्रक्रिया पर नियंत्रण के लिए PHP दो मैजिक मेथड प्रदान करता है:



  • __sleep() — सीरियलाइज़ेशन से पहले कॉल किया जाता है। इसे उन गुणों के नामों की एक सूची लौटानी चाहिए जिन्हें सीरियलाइज़ किया जाना है।
  • __wakeup() — डीसीरियलाइज़ेशन के बाद कॉल किया जाता है। इसका उपयोग संसाधनों (जैसे डेटाबेस कनेक्शन) को पुनः आरंभ करने के लिए किया जाता है।


<?phpclass DatabaseConnection {    private $connection;    private $dsn;    private $username;    private $password;    private $cache = [];

public function __construct($dsn, $username, $password) { $this->dsn = $dsn; $this->username = $username; $this->password = $password; $this->connect(); }

private function connect() { // डेटाबेस कनेक्शन का अनुकरण $this->connection = new stdClass(); $this->connection->connected = true; }

public function __sleep() { // कनेक्शन संसाधन और पासवर्ड को सीरियलाइज़ न करें return ['dsn', 'username', 'cache']; }

public function __wakeup() { // डीसीरियलाइज़ेशन के बाद कनेक्शन पुनर्स्थापित करें $this->connect(); }}

$db = new DatabaseConnection('mysql:host=localhost;dbname=test', 'root', 'pass');$serialized = serialize($db);$restored = unserialize($serialized);?>


JSON में सीरियलाइज़ेशन: json_encode() और json_decode()



JSON एक अधिक सार्वभौमिक प्रारूप है, जो कई प्रोग्रामिंग भाषाओं द्वारा समर्थित है। PHP में JSON में सीरियलाइज़ेशन के लिए json_encode() और json_decode() फ़ंक्शन का उपयोग किया जाता है।



<?phpclass Product {    public $id;    public $name;    public $price;

public function __construct($id, $name, $price) { $this->id = $id; $this->name = $name; $this->price = $price; }}

$product

अनुशंसाएँ