2009-10-26 13 views
5

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

मैं वास्तव में कैसे तुम लोगों में से कुछ डिज़ाइन कर सकते हैं एक वर्ग इन 3 बातों को संभालने के लिए करने के लिए के रूप में कुछ इनपुट की सराहना करेंगे। एकमात्र चीज जो मुझे पता है मुझे कक्षा के लिए अब तक डेटाबेस की आवश्यकता है। मुझे किस अन्य सदस्यों का उपयोग करना चाहिए, वे मेरे लिए अस्पष्ट हैं। दोबारा, मैं यहां एक परिप्रेक्ष्य हासिल करना चाहता हूं कि यह कैसे किया जाना चाहिए।

धन्यवाद, जॉन


ठीक है, यदि ऐसा है तो मैं कहता हूँ 3 तरीकों इस तरह था:

var $db; 

function GetPosts() { 
//posts 
} 

function GetComments() { 
// blog comments 
} 

function GetLinks() { 
// links for the blog 
} 

क्या सदस्यों तुम लोगों का प्रयोग करेंगे के कुछ हो सकता है?

इसके अलावा, मैं अगर मैं एक विधि है कि अन्य तरीकों कॉल होना चाहिए सोच रहा हूँ। बस एक सार्वजनिक विधि और फिर इन सभी विधियों को निजी बनाएं। सार्वजनिक विधि निजी तरीकों को बुलाएगी और उनके मूल्य वापस कर देगी। क्या यह सलाह दी जाती है?

+0

कई मुक्त ओपन-सोर्स ब्लॉगिंग प्लेटफॉर्म के साथ आप अपना खुद का प्रयास करना चाहते हैं? आप किस विशेष विशेषताओं का प्रस्ताव देते हैं? – jldupont

+3

असल में ब्लॉग पोस्ट और टिप्पणियों के अलावा कोई भी नहीं। मैं सिर्फ प्रोग्रामिंग पहलू का आनंद लेता हूं। :) – JohnB

+2

मुझे लगता है कि उनका उद्देश्य ब्लॉगिंग सॉफ़्टवेयर बनाने के लिए PHP और डिज़ाइन के बारे में जानना है जो दूसरों द्वारा उपयोग किया जाएगा। – marr75

उत्तर

0

CakePHP व्यापक रूप से अपनाया CakePHP ढांचे का उपयोग कर एक tutorial on creating a blog है। यदि आप अपने ब्लॉग प्रोग्रामिंग करते समय एक नया ढांचा सीखने में रुचि रखते हैं, तो मैं ऐसा करने की सिफारिश करता हूं।

आप हाथ से कोड के लिए सब कुछ हालांकि मैं सुझाव है कि आप लोड हो रहा है हैंडलिंग और (निरंतर आ रही है) अपने entites (लिंक, पोस्ट टिप्पणियाँ) को बचाने के लिए कक्षाएं बनाने या का उपयोग एक हठ ढांचे (जैसे Doctrine ORM for PHP) चाहते हैं।

समस्या यह है कि आप कार्यक्षमता आप कई अलग अलग तरीकों से वर्णन किया है लागू कर सकते हैं कि; कोई सार्वभौमिक उत्तर नहीं है। यदि आप कुछ कोड जमा करते हैं तो विशिष्ट सलाह देना आसान है।

+0

हाय गर्जली ओरोस, प्रतिक्रिया के लिए धन्यवाद। मैंने पहले से ही कुछ अलग-अलग ढांचे की कोशिश की है लेकिन मुझे उनकी परवाह नहीं है। वैसे भी, यह खुद को करने से मजा आता है। मुझे पता है कि बहुत सारे सहायक कार्य हैं और सब कुछ है लेकिन मैंने अन्य "प्रोग्रामर" से मुलाकात की है, जिन्हें पता नहीं है कि उस ढांचे के पीछे क्या चल रहा है। मुझे गलत मत समझो, मुझे ढांचे पसंद हैं लेकिन मुझे इंटर-वर्किंग्स थोड़ा और पसंद है। मैं उपरोक्त मेरी कक्षा में कुछ चीजें जोड़ूंगा और शायद आप मुझे कुछ पॉइंटर्स दे सकते हैं। एक बार फिर धन्यवाद! – JohnB

1

आप स्क्रैच से यह अपने आप लिखना चाहते हैं, मैं, ब्लॉग के प्रत्येक भाग के लिए अलग-अलग वस्तुओं बनाने अर्थात एक पोस्ट वस्तु, एक टिप्पणी वस्तु, एक कड़ी वस्तु से शुरू होगी।

फिर आप सोच सकते हैं कि वे ऑब्जेक्ट्स एक-दूसरे के साथ कैसे बातचीत करेंगे (उदाहरण के लिए, एक पोस्ट ऑब्जेक्ट में टिप्पणी ऑब्जेक्ट्स की एक सरणी हो सकती है) और वे मूल CRUD को कैसे प्रबंधित करेंगे (बनाएं, पढ़ें (प्राप्त करें), अपडेट करें, हटाएं) संचालन।

+0

हाय जीएसटीओ, उत्तर के लिए धन्यवाद। मैं ब्लॉग के प्रत्येक भाग के लिए एक अलग वर्ग होने के बारे में आपसे सहमत हूं। मैंने सुना है कि इस तरह ऐसा करने से अमूर्तता को बरकरार रखना मुश्किल हो जाता है। मैं अभी भी इस बारे में निश्चित नहीं हूँ। मैं ऊपर की विधियों में कुछ चीजें जोड़ने जा रहा हूं और शायद आप मुझे बता सकें कि आप इसे बदलने के लिए क्या करेंगे। – JohnB

+0

इस तरह से काम करने के लिए इस तरह से अमूर्तता को नुकसान पहुंचाएगा? मेरा मानना ​​है कि इस तरह से बनाए रखना आसान होगा, एक ब्लॉग क्लास रखने के बजाय जो सब कुछ संभालती है। – GSto

0

मैं काम हासिल करना चाहते हैं के विवरण पता नहीं है, लेकिन लगता है के बारे में एक कारखाने वर्ग ब्लॉग, GetPostManager() विधि है, उदाहरण के लिए। PostManager पोस्ट बना सकते हैं, संपादित कर सकते हैं, अपडेट अपडेट कर सकते हैं और उन्हें भी चुन सकते हैं। तो, $ ब्लॉग-> GetPostManager() -> GetPosts ($ datefrom, $ dateto) पोस्टकोलेक्शन क्लास लौटाएगा, जो पोस्ट के लिए ब्राउज़ करने के लिए काउंटरबल और इटरेटर इंटरफेस लागू करता है। PostCollection एक सरणी है, जिसमें PostItem क्लास है। PostItem क्लास एक साधारण वर्ग है, जो डेटाबेस के गुणों को मैप कर सकता है।

+0

धन्यवाद FractalizeR। कारखाना पैटर्न अच्छा लगता है। तो, क्या आप कहेंगे कि इन 3 विधियों के साथ कक्षा बनाना गलत होगा? मुझे पता है कि चीजों को करने के 100 से अधिक तरीके हैं लेकिन मुझे लगता है कि मैं "सर्वश्रेष्ठ" तरीके की तलाश में हूं। जरूरी नहीं कि सबसे आसान। मुझे लगता है कि अगर मैं कभी ऐसा करना चाहता हूं तो अंत में इसे स्केल करने में सक्षम होना चाहिए। – JohnB

+0

नहीं, तीन विधियों वाला वर्ग अच्छा है ... लेकिन जब तक आप अपना सिस्टम नहीं बढ़ाते। क्या मुझे और अधिक सुविधाएं जोड़ना चाहती है, तो आपकी एक कक्षा जल्दी से अधिक से अधिक तरीकों से अतिसंवेदनशील हो जाएगी। इसलिए, मुझे लगता है कि शुरुआत में कुछ संरचना बनाना बेहतर है। खासकर, अगर यह बहुत जटिल नहीं है। –

संबंधित मुद्दे