PHP में SOLID सिद्धांत: सिद्धांत और व्यवहार — पूर्ण मार्गदर्शिका

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

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

पाठ्यक्रम शुरू करें
Here is the translated HTML content from Russian to Hindi, with all HTML tags preserved and only the text content translated as requested. ```html

PHP में SOLID सिद्धांत: सिद्धांत और व्यवहार



SOLID ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के पांच मूलभूत सिद्धांत हैं, जिन्हें रॉबर्ट मार्टिन ने प्रतिपादित किया था। ये लचीला, रखरखाव योग्य और स्केलेबल कोड बनाने में मदद करते हैं। इस लेख में, हम PHP उदाहरणों के साथ प्रत्येक सिद्धांत को सरल अवधारणाओं से लेकर वास्तविक व्यावहारिक परिदृश्यों तक समझेंगे।



1. Single Responsibility Principle (SRP) — एकल उत्तरदायित्व का सिद्धांत



सूत्रीकरण: एक क्लास में बदलाव का केवल एक ही कारण होना चाहिए। दूसरे शब्दों में, प्रत्येक क्लास केवल एक कार्य या कार्यक्षमता के लिए जिम्मेदार होती है।



SRP का उल्लंघन अक्सर "दैवीय ऑब्जेक्ट" की ओर ले जाता है, जो बहुत अधिक जानते और करते हैं। आइए एक खराब उदाहरण देखें:



class Report {    public function generate($data) {        // रिपोर्ट जनरेशन        return "रिपोर्ट: " . json_encode($data);    }

public function saveToFile($filename, $content) { file_put_contents($filename, $content); }

public function sendEmail($to, $subject, $body) { mail($to, $subject, $body); }}


यहाँ Report क्लास जनरेशन, सेविंग और भेजने के लिए जिम्मेदार है — तीन अलग-अलग जिम्मेदारियाँ। इसे ठीक करते हैं:



class ReportGenerator {    public function generate($data) {        return "रिपोर्ट: " . json_encode($data);    }}

class FileSaver { public function save($filename, $content) { file_put_contents($filename, $content); }}

class EmailSender { public function send($to, $subject, $body) { mail($to, $subject, $body); }}

// उपयोग$report = new ReportGenerator();$content = $report->generate($data);

$saver = new FileSaver();$saver->save('report.txt', $content);

$sender = new EmailSender();$sender->send('admin@example.com', 'रिपोर्ट तैयार है', $content);


व्यावहारिक सलाह: यदि आप किसी क्लास के नाम में "और" (जैसे, UserAndLogger) देखते हैं, तो यह SRP उल्लंघन का एक निश्चित संकेत है।



2. Open-Closed Principle (OCP) — खुले/बंद का सिद्धांत



सूत्रीकरण: क्लासेस विस्तार के लिए खुली होनी चाहिए, लेकिन संशोधन के लिए बंद। आपको मौजूदा कोड को बदले बिना नई कार्यक्षमता जोड़ने में सक्षम होना चाहिए।



OCP का उल्लंघन तब होता है जब एक नया प्रकार जोड़ने के लिए मौजूदा क्लासेस में बदलाव की आवश्यकता होती है। खराब कोड का उदाहरण:



class PaymentProcessor {    public function process($type, $amount) {        if ($type === 'credit_card') {            // क्रेडिट कार्ड प्रोसेसिंग        } elseif ($type === 'paypal') {            // PayPal प्रोसेसिंग        } elseif ($type === 'crypto') {            // क्रिप्टोकरेंसी प्रोसेसिंग        }        // नए प्रकार को जोड़ना = इस क्लास में बदलाव    }}


समाधान — इंटरफेस के माध्यम से पॉलीमॉर्फिज़्म का उपयोग करना है:



interface PaymentMethod {    public function process($amount);}

class CreditCardPayment implements PaymentMethod { public function process($amount) { echo "$amount राशि के लिए क्रेडिट कार्ड प्रोसेसिंग"; }}

class PayPalPayment implements PaymentMethod { public function process($amount) { echo "$amount राशि के लिए PayPal प्रोसेसिंग"; }}

class PaymentProcessor { public function process(PaymentMethod $method, $amount) { $method->process($amount); }}

// उपयोग$processor = new PaymentProcessor();$processor->process(new CreditCardPayment(), 100);$processor->process(new PayPalPayment(), 200);


अब भुगतान का एक नया तरीका (जैसे, ApplePayPayment) जोड़ने के लिए PaymentProcessor में बदलाव की आवश्यकता नहीं है।



3. Liskov Substitution Principle (LSP) — लिस्कोव प्रतिस्थापन सिद्धांत



सूत्रीकरण: उपवर्गों की ऑब्जेक्ट्स को आधार वर्ग की ऑब्जेक्ट्स के साथ विनिमेय होना चाहिए

```

ब्लॉग

पुस्तक अनुशंसाएँ