मैं ओओपी के लिए बहुत शुरुआत कर रहा हूं और अब मैं एफ़टीपी सर्वर से कनेक्ट करने के लिए कुछ PHP वर्ग लिखने की कोशिश कर रहा हूं।PHP-OOP दो कक्षाओं का विस्तार?
class ftpConnect {
private $server;
private $user;
private $password;
private $connection_id;
private $connection_correct = false;
public function __construct($server, $user = "anonymous", $password = "[email protected]") {
$this->server = $server;
$this->user = $user;
$this->password = $password;
$this->connection_id = ftp_connect($this->server);
$this->connection_correct = ftp_login($this->connection_id, $this->user, $this->password);
if ((!$this->connection_id) || (!$this->connection_correct)){
echo "Error! Couldn't connect to $this->server";
var_dump($this->connection_id);
var_dump($this->connection_correct);
return false;
} else {
echo "Successfully connected to $this->server, user: $this->user";
$this->connection_correct = true;
return true;
}
}
}
मुझे लगता है कि इस समय कक्षा का वह शरीर महत्वहीन नहीं है।
मुख्य मुद्दा यह है कि मैं OOP विचार को समझने के साथ कुछ समस्या है।
मैं, ईमेल भेजने हर बार जोड़ने के लिए जब कोड चलता है चाहता था। मैं PHPMailer Class डाउनलोड किया है और इसके साथ मेरी कक्षा विस्तार किया है:
class ftpConnect extends PHPMailer {...}
मैं कुछ चर और तरीकों को शामिल किया है और सब कुछ के रूप में है कि बात करने के लिए उम्मीद काम करता है।
मैंने सोचा: क्यों डेटाबेस में सबकुछ संग्रहित नहीं करना है। हर बार उपयोगकर्ता कोड से ऊपर चलाता है, उचित जानकारी डेटाबेस में संग्रहीत की जानी चाहिए।
मैं अपने ftpConnect class
और जोड़ने डेटाबेस निर्माता से कनेक्ट कर रहा है, और अद्यतन करने तालिकाओं के लिए कुछ अन्य विधियों को संपादित कर सकते हैं। लेकिन डाटाबेस कनेक्टिंग और भविष्य में अन्य वर्गों द्वारा उन सभी चीजों का उपयोग किया जा सकता है, इसलिए इसे निश्चित रूप से अलग वर्ग में लागू किया जाना चाहिए। लेकिन मेरा "मुख्य" ftpConnect class
पहले से ही एक वर्ग बढ़ाता है और एक और भी नहीं बढ़ा सकता है।
मुझे नहीं पता कि मैं इस समस्या को कैसे हल कर सकता हूं। शायद मेरा ftpConnect class
जटिल है और मुझे इसे किसी भी तरह से छोटे वर्गों में विभाजित करना चाहिए? किसी भी मदद की बहुत सराहना की है।
आप बना रहे हैं क्या एक ** भगवान वस्तु **, जो एक वस्तु जो एक बड़ी हिस्सा (या पूरी) आवेदन के लिए जिम्मेदार है कहा जाता है कुछ ऐसी दिखाई देगी। यह अच्छा नहीं है। * प्रत्येक वस्तु की एक जिम्मेदारी होनी चाहिए, और यह * है। मेल करना चाहते हैं? इसके लिए एक अलग वस्तु है। डेटाबेस में सहेजना चाहते हैं? इसके लिए एक अलग वस्तु है। आप रचनाकारों या विधियों के माध्यम से एक दूसरे के संदर्भ पारित करके उन्हें जोड़ सकते हैं। इसे ** निर्भरता इंजेक्शन ** कहा जाता है। इसे देखो। –
स्वतंत्र विशेष वस्तुएं ठीक हैं, जैसे कि हम कॉलेज के प्रोफेसर * सभी * कॉलेज विषयों को पढ़ाने की अपेक्षा नहीं करते हैं। – wallyk