[संगोष्ठी] [Kohana: एक हल्के PHP फ्रेमवर्क] [ब्रैंडन लियू] [हार्वर्ड विश्वविद्यालय] [यह CS50 है.] [CS50.TV] हाय सब लोग. मेरा नाम ब्रैंडन है. मैं कॉलेज कर कंप्यूटर विज्ञान में यहाँ एक जूनियर हूँ, और आज हम इस बारे में बात करने जा रहे हैं एक PHP वेब विकास रूपरेखा है जो Kohana,. आज एक लाइव कोडिंग सेमिनार होने जा रहा है, इसलिए मैं मूल रूप से Kohana है क्या समझा 5-10 मिनट खर्च करने के लिए जा रहा हूँ और फिर मैं सचमुच एक सुपर सरल ब्लॉग का निर्माण करने जा रहा हूँ यहीं सचमुच खरोंच से आप के लिए. हम Kohana वेबसाइट से कोड डाउनलोड करने के लिए जा रहे हैं और, हम एक ब्लॉग का निर्माण शुरू करने जा रहे हैं, और उम्मीद है कि यह बहुत शिक्षाप्रद हो जाएगा आप शायद शायद देखेंगे क्योंकि मैं कुछ गलतियाँ करता हूँ, और आप मुझे उन लोगों से उबरने देखेंगे, मैं इस ब्लॉग के माध्यम से निर्माण के रूप में या आप मेरे विचार प्रक्रिया देखेंगे, और इस बीच, आप भी रूपरेखा के साथ ही परिचित मिल जाएगा. उम्मीद है कि यह एक बहुत शिक्षाप्रद व्यायाम हो जाएगा. सबसे पहले, एक रूपरेखा वास्तव में क्या है? आप अब तक CS50 ले जा रहा है, तो आप वास्तव में किसी के साथ काम नहीं किया है व्यवस्थाएं अभी तक, और बात यह है. तुम्हें शायद पहले से ही 1 वेब विकास pset किया है और कहते हैं कि तुम वेबसाइटों का निर्माण और इमारत वेबसाइटों रखने के लिए जारी कहते हैं. आप कुछ बातों पर ध्यान शुरू करेंगे. आप नोटिस करेंगे पहली बात तो आप शायद ही बातें कर रहे हैं पर और फिर से हर समय, उपयोगकर्ता इनपुट डेटा सफाई की तरह बातें, एक निश्चित तरीके से अपनी फाइल के आयोजन की तरह बातें. आप भी शायद ध्यान देंगे दूसरी बात यह है कि आपके कोड बहुत, बहुत गंदा बनने के लिए शुरू हो सकता है, और आप गन्दा इसे छोड़ और सिर्फ एक बहुत कठिन समय इसे बनाए रखने के लिए हो सकता है, या आप अपने कोड संरचना करने के लिए शुरू करने और इसे मॉड्यूलर बना सकता है यह और अधिक maintainable बनाने के लिए कुछ मायनों में. वेब चौखटे मूल रूप से अंदर आया जहां यह है वेबसाइटों की एक बहुत बनाया गया था, जो इन लोगों को, उन्होंने कहा, "हम यह है कि हम एक वेबसाइट का निर्माण हर एक बार फिर से करने की आवश्यकता नहीं है." "क्यों हम सिर्फ तुम्हारे लिए ये सब बातें करता है कि एक पैकेज नहीं बनाते हैं हर एक बार जब आप एक वेबसाइट का निर्माण करना चाहते हैं? " और इतना है कि आप एक नई वेबसाइट बनाने के लिए, आप सिर्फ वही इस विशेष वेबसाइट के बारे में क्या है पर ध्यान केंद्रित. आप सभी विभिन्न विन्यास को दोहराने की जरूरत नहीं है और कोड की जुदाई और नए सिरे से लिखना कोड आप अक्सर आप वेबसाइट बना रहे हैं जब सब करना है कि. विचार के लिए एक रूपरेखा तुम एक उच्च स्तर के कोड लिखने के लिए अनुमति देता है निचले स्तर के विवरण के बारे में चिंता किए बिना. एक निचले स्तर के विस्तार की तरह कुछ हो सकता है उपयोगकर्ता इनपुट डेटा सफाई के साथ काम कर. कि तुम सच के बारे में चिंता करने की जरूरत नहीं होनी चाहिए कि कुछ है. आप अपने वेब आवंटन के बारे में वास्तव में क्या है पर ध्यान केंद्रित करना चाहिए. यह boilerplate कोड का एक बहुत समाप्त. यह अपनी परियोजना के लिए एक वास्तुकला है. सबसे लोकप्रिय एक मॉडल देखें नियंत्रक, होगा मैं एक दूसरे के बारे में बात करने जा रहा हूँ जो. और कई बार इन चौखटे प्रक्रियाओं का एक सेट अवतार लेना, आप का उपयोग करने के लिए नियम, और सर्वोत्तम प्रथाओं इतना है कि आप वेब ढांचे को अपनाने जब यदि आप एक निश्चित तरीके से अपने कोड लिखने के लिए है और यह आम तौर पर एक सिद्धांतों के सेट पर सहमति है आम तौर पर होना स्वीकार कर लिया है कि समुदाय द्वारा कोड लिखने का एक अच्छा तरीका है. यह अधिक उपयोगी, अपने कोड अधिक maintainable बनाता है इतने पर और बहुत आगे है. और अंत में, मैं चाहता हूँ बात चौखटे के बारे में बात पर जोर देना पुस्तकालयों बनाम नियंत्रण का उलटा बारे में यह विचार है, और बात यह है. एक पुस्तकालय और एक रूपरेखा के बीच अंतर यह है कि एक पुस्तकालय के साथ आप अब भी मुख्य कार्यक्रम लिख रहे हैं, और आप की तरह पुस्तकालय लागू कर रहे हैं और आप के लिए कुछ करने के लिए पुस्तकालय पर बुला. एक पुस्तकालय और एक रूपरेखा के बीच अंतर ढांचा नियंत्रण के साथ शुरू होता है, और यह अपने कोड invokes, ताकि आप के रूप में सोच सकते हैं - यह एक रूपरेखा कहा जाता है यही कारण है - ढांचे अपने कोड के लिए इस फ्रेम और संरचना प्रदान करता है, और आप छेद में भरने, और यह एक दूसरे में और अधिक स्पष्ट हो जाएगा जब आप देखते हैं मुझे ढांचे के संदर्भ में कोड लिखना शुरू करते हैं. तुम्हें पता है मैं अंतराल में भर रहा हूँ देखेंगे कि, और ढांचे तरह की, सभी चलती टुकड़े नियंत्रित कर रहा है और मैं सही स्थानों में टुकड़े डाल दिया है. आज हम Kohana के बारे में बात करने जा रहे हैं, जो कई PHP चौखटे में से एक है. , वेब व्यवस्थाएं कर रहे हैं, और जो लोग लगभग हर एक भाषा में कर रहे हैं Kohana यकीनन है और क्योंकि मैं Kohana उठा रहा हूँ और आम तौर पर लेने के लिए सबसे आसान PHP रूपरेखा के रूप में मान्यता प्राप्त है. यह सबसे हल्के है. बहुत, बहुत अधिक सुविधाओं के साथ आते हैं कि वहाँ बाहर अन्य लोगों रहे हैं, लेकिन वे लेने के लिए और अधिक कठिन हो जाते हैं. और अंत में, Kohana MVC वास्तुकला का उपयोग करता है. यह हम सचमुच एक परियोजना का निर्माण कर सकते हैं कि पर्याप्त हल्के है यहीं आपकी आंखों के सामने है, और तुम बहुत ज्यादा कर सकते हैं बहुत आसानी के साथ पालन करें. MVC वास्तुकला क्या है? यह मॉडल देखें नियंत्रक के लिए खड़ा है आप कोड के बारे में अगर आपको लगता है और हो सकता है कि आप अब तक लिख दिया गया है कृपया अपने वेब विकास psets से कुछ के लिए आप लेखन शुरू जब आप आम तौर पर इस में से कुछ देखने में सक्षम हो, लेकिन हो सकता है एक अधिक जटिल वेब अनुप्रयोग, इन 3 क्षेत्रों के बीच विभाजन को अधिक से अधिक स्पष्ट हो जाता है. मैं, की तरह एक ढेर के रूप में यहाँ MVC बाहर रखी और अक्सर आप लोगों को वेब विकास में ढेर के बारे में बात करते सुना होगा, और इस विचार को वर्णन करने के लिए है कि प्रत्येक परत, प्रत्येक घटक वास्तव में केवल संवाद करने की कोशिश करता है 2 अन्य घटकों के बीच. किसी एक ग्राहक या एक ब्राउज़र के रूप में अपनी वेबसाइट तक पहुँचता है. वे देखने कोड के माध्यम से अपने कार्यक्रम के साथ बातचीत. देखें कोड नियंत्रक के साथ सूचना का आदान प्रदान. नियंत्रक, मॉडल के साथ सूचना का आदान प्रदान और मॉडल SQL डेटाबेस के साथ सूचना का आदान प्रदान. आप ठीक ढंग से अपने कोड लिखने और अगर बीच में कोई hopping है. इन बातों को क्या करना चाहिए? मॉडल अनिवार्य रूप से अपने डेटा के साथ संबंधित है कि कोड का टुकड़ा है. आप की दुकान है कि वस्तुओं के साथ, अपने डेटाबेस के साथ संबंधित है कुछ भी है कि, या डेटाबेस में उन वस्तुओं को वापस लाने, कि सभी मॉडल से संभाला है. हो सकता है कि आप अपने डेटाबेस में वस्तुओं है. हम पदों के साथ क्या करने वाले एक मॉडल बनाने के लिए जा रहे हैं, इसलिए एक के बाद इसे करने के लिए कुछ गुण हो सकता है. आप उन पदों भंडारण या पदों को वापस लाने के आसपास कार्य हो सकता है या तो पर और आगे पदों और फ़िल्टरिंग, और उस मॉडल के आधार पर संभाला है कि सभी कोड है. नियंत्रक आवेदन तर्क की तरह है, और अलग अलग चीजों का एक बहुत आवेदन तर्क में जा सकते हैं. आप एक अलग एपीआई के लिए बात कर रहे हैं, आप आवेदन तर्क के साथ काम कर रहे हैं जहां कि हो सकता है. आप कई अलग अलग मॉडल से डेटा में लाने के लिए कोशिश कर रहे हैं और अक्सर नियंत्रक द्वारा नियंत्रित किया जा सकता है, उन्हें किसी तरह का गठबंधन करने के लिए है. उदाहरण के लिए, फेसबुक पर, आप दोस्त किसी अगर, उस संबंध स्थापित करने की तो शायद यह है कि अधिनियम नियंत्रक द्वारा किया जा सकता है. और अंत में, देखें कि आप वास्तव में क्या देखते हैं पैदा कर रहा है कि कोड है. आमतौर पर मैं CS50 psets में लगता है वे वास्तव में इन बातों 3 अलग करने के लिए तुम लोगों को प्रोत्साहित नहीं करते. तुम्हें शायद शीर्ष पर जहां इस बड़े, लंबे फाइल करना होगा आप कुछ एसक्यूएल क्वेरी बनाने के लिए और शायद कुछ प्रसंस्करण करते हैं आंकड़ों पर यदि आप डेटाबेस से लिया गया और फिर आप नीचे सभी अपने HTML है. आप अधिक से अधिक पृष्ठों को बनाने और जैसा कि आप पा सकते हैं कि आप भी कुछ कोड दोहराव है जा रहे हैं, और कि, बात आपकी फ़ाइल वास्तव में बड़ा और लंबा हो जाता है और प्रबंधित करने के लिए बोझल हो जाता है. MVC इतनी अच्छी तरह से माना जाता है कारण कारणों में से एक नंबर के लिए है. पहली बात यह है कि चिंताओं की जुदाई कुछ कहा जाता है जो तुम्हारे पास है जब यह विचार है कि - कोड की आदर्श 1 टुकड़ा, 1 बात करते हैं और वास्तव में अच्छी तरह से यह करना चाहिए और तुम असमान बातें करते हैं कि कोड के टुकड़े गठबंधन नहीं करना चाहिए. उदाहरण के लिए, कोड और मॉडल कोड को देखने वे वास्तव में संबंधित होने की जरूरत नहीं है. आप उन्हें अलग नहीं कर सकता है जब वे एक ही फाइल में होना है, इसलिए नहीं है इसलिए इसे बनाए रखने के लिए आसान है. दूसरी बात यह कोड पुनः प्रयोग है. तुम अपने आप को एक ही एसक्यूएल क्वेरी लिख रहे हैं या कर मिल सकता है 1 समारोह में निकाला जा सकता है कि इसी तरह के प्रश्नों, और कि, विचार मॉडल और नियंत्रकों के पीछे है आप अपनी परियोजना में अलग अलग स्थानों में पुन: उपयोग कर सकते हैं कि एक अलग समारोह में यह कर रही है. और अंत में, कि, अपने कोड सुखाने से जुड़ा हुआ है या अपने आप को दोहरा नहीं, अपने आप को दोहराना नहीं है. इस विकास में बहुत सुबोध है. आप, आप अपने आप को दोहराने क्योंकि अगर, अपने आप को दोहराने नहीं करना चाहते कर सकते हैं जब भी,  इसे और अधिक महंगा बनाए रखने के लिए है. आप 1 बात बदलना चाहते हैं, तो आपको हर जगह, इसे बदलना होगा और उस कीड़े की ओर जाता है, और यह भयानक है. ठीक है. अब तक Kohana के बारे में किसी भी सवाल पर सब? ग्रेट. अब हम रहते कोडन सत्र में गोता लगाने के लिए जा रहे हैं, और उम्मीद है कि सब कुछ ठीक हो जाता है. मैं मूल रूप से इस वेबसाइट का निर्माण करने जा रहा हूँ मेरे दूरदराज के सर्वरों में से एक है, और तुम लोग भी कर सकते हैं कि रास्ते पर वेबसाइट देख सकते हैं और वेबसाइट का उपयोग, और भी पर्यावरण, मेरे दूरस्थ मशीन से बेहतर कॉन्फ़िगर किया गया है यह बजाय ओएस एक्स के लिनक्स चल रहा है क्योंकि हम सचमुच शुरू करने जा रहे हैं. KohanaFramework.org. मैं वेबसाइट से कोड डाउनलोड करने के लिए जा रहा हूँ. मैं लिंक का पता कॉपी करने के लिए जा रहा हूँ, अपने सर्वर से जाना, इसे डाउनलोड, और मैं इसे निकालने के लिए जा रहा हूँ. [छात्र] आप पाठ कर सकते हैं सबसे बड़ा क्या है? [ब्रैंडन लियू] कि बेहतर है? [छात्र] [ब्रैंडन लियू] हाँ, यह ठीक है कि साध्य? है. मैं एक ज़िप फ़ाइल डाउनलोड की है और Kohana नामक एक निर्देशिका में है कि unzipped और हम, कि CS50-Kohana का नाम बदलने के लिए जा रहे हैं और के अंदर जाने दिया बहुत बढ़िया. यहाँ आप अलग अलग फ़ाइलों का एक झुंड देखा. आप में से अधिकांश को अनदेखा कर सकते हैं - यहाँ है कि हर एक फ़ाइल के माध्यम से जाना नहीं जा we're हमारे समय की कमी की वजह से, लेकिन आम तौर पर आप Kohana, आप पहली बात को स्थापित करते समय आप निर्देशिका के लिए जाना जाता है, और आप मूल रूप से कुछ पर्यावरण परीक्षण और whatnot करूँगा सुनिश्चित करने के लिए अपने पर्यावरण को ठीक से Kohana चलाने के लिए सेट किया गया है और सब कुछ ठीक है कि सुनिश्चित करें. तुम सबसे बातें पारित कर देख सकते हैं, लेकिन आम तौर पर आप हमेशा इस 1 समस्या में भाग यह कुछ निर्देशिका लिखने योग्य नहीं है की शिकायत है कि जहां और कि क्योंकि कुछ अनुमतियों की है. मैं, तुम लोग CS50 में फ़ाइल अनुमतियों के बारे में सीखा है कि कैसे ज्यादा पता नहीं है आप वेब विकास करते हैं लेकिन, अगर आप इस मुद्दे में एक बहुत चलाने के लिए जा रहे हैं. मैं यह लिखने योग्य बनाने के लिए जा रहा हूँ हम चलते हैं - और मैं करने के लिए मैं भी लगता है कि. ठीक है, तो अब आप सब कुछ पारित कर देख सकते हैं, और अब यह install.php फ़ाइल का नाम बदलने के लिए आपको बता देगा. मैं installed.php को install.php फ़ाइल स्थानांतरित करने के लिए जा रहा हूँ, और अब मैं ताज़ा अगर यह मुझे कुछ त्रुटि देता है, और डीबगिंग अंदर आता है जहां यह है आप वास्तव में क्या होने जा रहा है देख सकते हैं जहां यह है. बात डिफ़ॉल्ट रूप से, Kohana मानता है कि, है अपनी परियोजना, अपने डोमेन के रूट निर्देशिका में है तो यह आप demo.brandonkliu.com में होने की उम्मीद है. हम इसे एक सबफ़ोल्डर में वास्तव में है कि यह बताने के लिए है. यह CS50 Kohana नामक सबफ़ोल्डर में है. बात यह CS50-Kohana बदल रहा है, है मैं एक दूसरे में आप को समझाता हूँ जो कुछ और, के रूप में. लेकिन मुझे लगता है कि उम्मीद की जा रही है कि कुछ है तुम्हें बताना चाहिए. हम क्या करने जा रहे हैं, हम bootstrap.php नामक इस फोल्डर में जाने के लिए जा रहे है जो अलग अलग चीजों का एक बहुत स्थापित कर रहे हैं, जहां विन्यास फ़ोल्डर है. मुझे लगता है कि ऊपर खुला. तो शायद मैं करूँगा पहली चीजों में से एक समय क्षेत्र बदलने है. और फिर चलो देखते हैं. अहा! ठीक है यहाँ. विभिन्न विन्यास बातें की एक गुच्छा यहां कर रहे हैं, लेकिन मैं देख रहा हूँ एक, आधार यूआरएल बुलाया बात है और डिफ़ॉल्ट रूप से मैं यह Kohana के लिए तैयार हो जाओ लेकिन मैं, CS50-Kohana को बदलने के लिए जा रहा हूँ और मुझे लगता है कि यह तय करना चाहिए लगता है. हाँ, महान. डिफ़ॉल्ट रूप से, यह, इसे कहते हैं, काम कर रहा है यह देखना है कि "नमस्ते विश्व." कि कहां से आया? हम कैसे नमस्ते विश्व करने के लिए मिलता है? वास्तव में, जहां वास्तव में लिखा है कि उस कोड है? समझने की है कि, मैं मार्ग कहा जाता है इस अवधारणा को पेश करेंगे. बहुत ज्यादा सभी वेब चौखटे, मार्ग कहा जाता अवधारणा है एक निश्चित यूआरएल नक्शा होगा कि सॉफ्टवेयर का टुकड़ा है जो अपने ढांचे के भीतर कोड का एक निश्चित टुकड़ा करने के लिए. आप कुछ यूआरएल है और अगर उदाहरण के लिए, आप की तरह foo.com / ब्लॉग / सब कुछ यूआरएल में जाने तो क्या रूपरेखा क्या करने जा रहा है - या कम से कम क्या Kohana क्या करने जा रहा है - यह, नियंत्रक ब्लॉग एक वर्ग बुलाया खोजने के लिए जा रहा है और यह सब समारोह नामित कार्रवाई चलाने के लिए जा रहा है. मुझे लगता है मैं वर्ग और कार्यों के बारे में बात कर रहा हूँ, और मैं तुम लोगों वर्गों और कार्यों शामिल नहीं किया है पता अभी तक CS50 में, लेकिन अब के लिए, आप कार्यों का सिर्फ एक समूह के रूप में कक्षाओं के बारे में सोच सकते हैं, एक साथ कार्य करता है समूहीकरण का एक तरीका. यह वास्तव में आप जानने की जरूरत है. अब हम अपने फ़ोल्डर संरचना पर नजर डालें तो, आवेदन फ़ोल्डर के अंदर कक्षाएं नामक फोल्डर, वहाँ है और अन्य फ़ोल्डरों नियंत्रक और मॉडल कहा जाता है. आप नियंत्रक फ़ोल्डर के अंदर देखो, हम आपका स्वागत नामक एक फाइल है कि वहाँ देखना और यदि आप यहाँ देख नियंत्रक आपका स्वागत है बुलाया एक वर्ग है सकते हैं और लड़ाई सूचकांक नामक समारोह, वहाँ है और यह क्या करता है यह नमस्ते विश्व के लिए आपकी प्रतिक्रिया का शरीर सेट है. कोड लिखा जा रहा है कि जहां. दूसरा सवाल है, ठीक है, मैं करने के लिए जाना नहीं था है बकवास, बकवास, बकवास, / स्वागत / सूचकांक. मैं यहाँ कैसे खत्म किया? खैर, कि सिर्फ इसलिए कि है यहाँ हमारे bootstrap फ़ाइल के तल पर हम अपने मार्गों सेट जहां वे आप के लिए कुछ चूक सेट देख सकते हैं. डिफ़ॉल्ट नियंत्रक में आपका स्वागत है. डिफ़ॉल्ट कार्रवाई सूचकांक है. हम वहाँ में कुछ भी नहीं डाल जब यह स्वचालित रूप से आपका स्वागत नियंत्रक के पास गया यही कारण है कि और सूचकांक लड़ाई. सब कुछ अब तक समझ बनाने के लिए? अब, आप बस नियंत्रक के लिए जाने की तुलना में अधिक कर सकते हैं और एक विशिष्ट कार्रवाई. तुम भी नियंत्रक करने के लिए पैरामीटर में पारित कर सकते हैं. बस एक उदाहरण के रूप में, मैं तुम्हें दिखाने के लिए इस नियंत्रक के लिए किसी अन्य कार्रवाई को जोड़ने के लिए जा रहा हूँ. यह आपको दे जो कुछ तुम्हें बताने के लिए जा रहा है, क्योंकि, इको इस कार्रवाई को बुलाते हैं, और इसलिए मैं मूल रूप से हड़पने के लिए जा रहा हूँ मार्ग कार्यक्रम के लिए मुझे के माध्यम से भेजा जा रहा है कि एक पैरामीटर, और आप यहाँ देख सकते हैं, यहीं इस लाइन, आप देख सकते हैं कि यह मूल रूप से, आप नियंत्रक है, और आप एक / इसका मतलब है और, आप कार्रवाई की है, और आप एक और / है और पैरामीटर है कि होने जा रहा है, और हम इस नाम आईडी क्योंकि कोण कोष्ठक के भीतर, कि हम इस पैरामीटर आईडी नामकरण कर रहे हैं कि इसका मतलब है. बाद में मेरे नियंत्रक कोड में मैं उस पैरामीटर के एक पकड़ पकड़ लेना चाहते हैं, मैं आईडी नामित पैरामीटर लगता है, मैं ने लिखा कोड का उपयोग कर सकते हैं. यही कारण है कि मैं यहाँ क्या किया है, और मैं लौटने और कहने जा रहा हूँ, कि "तुमने कहा था". और इसलिए अब मैं, हमारी वेबसाइट पर जाने अगर मैं cs50-kohana/welcome/echo/Helloooo-- के लिए जाना ओह, यह सही है. मैं बाहर छोड़ दिया 1 कदम है. इस लाइव कोडिंग विचार का हिस्सा है. यहाँ 1 बात है. चलो देखते हैं. तो सामान्य रूप से इन वेब अनुप्रयोगों के बहुत से डिफ़ॉल्ट रूप से आप अपने यूआरएल में इस index.php बात शामिल है, विचार index.php प्रवेश बिंदु की तरह है क्योंकि आपके आवेदन की, लेकिन निश्चित रूप से, उस तरह का कष्टप्रद है करने के लिए है. आप index.php आपके यूआरएल में प्रकट नहीं करना चाहते और बॉक्स के बाहर बहुत ज्यादा हर वेब रूपरेखा इस index.php समस्या है, और इसलिए आपको लगता है कि दूर करने के लिए सक्षम होने के लिए कुछ उपाय करने के लिए है. और इसलिए इस मामले में, हम क्या करने जा रहे हैं हम. Htaccess नामक एक फ़ाइल का उपयोग करने जा रहे है, और यह अपाचे वेब सर्वर के लिए विशिष्ट है कि कुछ है और इसे फिर से लिखना यूआरएल की तरह बातें कर सकते हैं और इतने पर और आगे यूआरएल और पुनर्निर्देशित, और Kohana का उपयोग हम कर सकते हैं कि एक टेम्पलेट. htaccess फ़ाइल प्रदान करने के लिए काफी अच्छा है. आप देख सकते हैं >>, example.htaccess कहा जाता है कि वहाँ एक फ़ाइल, वहाँ है और हम. Htaccess करने के लिए कि कॉपी करने के लिए जा रहे हैं. मैं इस खोलने और इसे संपादित करने के लिए जा रहा हूँ, और असल में यह अलग अलग चीजों का एक गुच्छा होता है. आप को देखने के लिए चाहते हो सकता है कुंजी लाइन यहीं है. विचार, यह कहते हैं कि एक नियम है कि सेट है "ठीक है, तुम जो भी है कि करने के लिए, पहले जोड़ें index.php में टाइप करें." आप देख सकते हैं कि. *., कुछ भी मैच, कुछ के लिए खड़ा है और फिर दूसरा हिस्सा, index.php / $ 0 और $ 0 पहले से मिलान किया गया था जो कुछ भी करने के लिए संदर्भित करता है. कि मतलब? लेकिन मैं बदलना चाहते हैं वास्तव में महत्वपूर्ण बात यह है कि यह फिर से लिखना आधार बदल रहा है जो URL बेस है. आप से काम कर रहे हैं, जहां यह एक तरह से मान लिया गया. मुझे लगता है कि करने के लिए CS50 Kohana जोड़ने के लिए जा रहा हूँ, और इस तरह अब मैं index.php निकालते हैं, यह काम करना चाहिए, और मैं कुछ संख्या जोड़ने के लिए जा रहा हूँ यह वास्तव में काम किया है कि आप को दिखाने के लिए. अच्छा लगता है. अब तक कोई सवाल? [छात्र] कैसे यह 123 बनाने के लिए जानते हैं? एक तर्क है कि है? बिल्कुल सही. तुम सिर्फ एक तर्क तरह के बारे में सोच सकते हैं. लेकिन अजीब बात है, हालांकि, यह है कि Kohana करता है जिस तरह वे वास्तव में एक बहस की तरह यह मत करो है. आप इसे इस तरह से आकर्षित किया है. आप अनुरोध वस्तु हड़पने और आईडी नाम है कि पैरामीटर के लिए पूछना है, और उस नाम आईडी कि bootstrap फ़ाइल से आता है , मैं पहले से पता चला है, और नाम आईडी उन कोण कोष्ठक में था कि और कि आप उन मापदंडों हड़पने तरीका बताया गया है. बहुत बढ़िया. अन्य प्रश्न? जैसे मैंने कहा, नियंत्रकों, वे आवेदन तर्क संभाल इसलिए कि आप that's देख सकते हैं, जहां 1 उदाहरण है - , यह बहुत ही बुनियादी है, लेकिन यह अभी भी आवेदन तर्क है पैरामीटर हथियाने और एक नया स्ट्रिंग बनाने का विचार ", तुम ब्ला कहा," कहते हैं और फिर आप को लगता है कि वापस थूकना कि. और आम तौर पर आप क्या करना है आप अलग नियंत्रकों बना है. आप अपनी वेबसाइट के विभिन्न भागों के लिए अलग नियंत्रकों बनाएँ. आज हम एक बहुत ही सरल वेबसाइट बनाने जा रहे हैं, और यह एक बहुत ही बुनियादी ब्लॉग होने जा रहा है. हम सिर्फ एक ब्लॉग में पदों के लिए एक नया नियंत्रक बनाने जा रहे हैं. लेकिन तब मैं भी ब्लॉग पोस्ट की टिप्पणी जोड़ने के लिए गए थे तो मैं शायद उन टिप्पणियों के लिए एक नया नियंत्रक बनाने के लिए चाहते हो जाएगा. मैं उपयोगकर्ताओं को जोड़ने के लिए चाहता था, मैं शायद उन उपयोगकर्ताओं के लिए एक नया नियंत्रक जोड़ना होगा, और सामान्य रूप में, विचार है कि आप एक नया मॉडल है, जब भी आप के साथ काम कर रहे हैं कि एक नए डेटा वस्तु, आप उस डेटा ऑब्जेक्ट के लिए एक एकल नियंत्रक है. आज हम केवल 1 डेटा ऑब्जेक्ट के साथ काम करने के लिए जा रहे हैं, और पदों है कि होने जा रहा है, और भी आप तालिकाओं को इसी रूप में डेटा वस्तुओं के बारे में सोच सकते हैं. आम तौर पर प्रत्येक तालिका डेटा ऑब्जेक्ट के 1 प्रकार से मेल खाती है, इसलिए डाक मेज, 1 पद मॉडल होगा कि इसी को 1 पोस्ट नियंत्रक होगा, जो और टिप्पणियां, इतने पर और आगे उपयोगकर्ताओं के लिए एक ही है, और के लिए भी. और कहा कि अंगूठे का एक सामान्य नियम है. आप उस से अलग हो सकता है, जहां विशेष मामलों होने जा रहे हैं, लेकिन तुम कर रहे हो जा रहे हैं कि समय के 90%, और मुझे लगता है कि हम आज कर रहे हो जा रहे हैं तुम्हें दिखाता हूँ. 1 हम वापस कोड में गोता लगाने से पहले अधिक अवधारणा, वस्तु संबंधपरक मानचित्रण के इस विचार. आप लोग पहले से ही एक वेब विकास pset किया है, और तुम, तुम एक एसक्यूएल क्वेरी बनाने देखा है कि और यह आप के लिए रिटर्न जो कुछ पंक्तियाँ हैं. तुम्हें पता है, कुछ नाम से उन्हें इन पंक्तियों को मिलता है, और आप सूचकांक स्तंभ और तालिका का नाम, और कि, तुम इसके साथ कैसे काम करते है और यह थोड़ा बोझिल हो सकता है. लेकिन इसके अलावा, आप अपने डेटाबेस के भीतर संबंध है, तो जैसे उदाहरण के लिए मैं, टिप्पणियों और पदों है अगर तो शायद मैं एक टिप्पणी के माता पिता के पद हथियाना चाहते हैं. मैं एसक्यूएल में सिर्फ पंक्तियों का उपयोग करते हैं, तो मैं प्राप्त कर सकते हैं सब आईडी है माता पिता के पद का और नहीं वास्तविक पोस्ट ही. हम कोडिंग कर रहे हैं लेकिन जब हम वास्तव में क्या चाहते हैं वास्तव में हड़पने के लिए है  माता पिता कभी कभी ही पोस्ट. संबंधपरक मानचित्रण है क्या करता है वस्तु यह डेटाबेस क्वेरी के परिणाम लेता है और साथ काम करने के लिए बहुत अच्छे हैं, जो आप के लिए वस्तुओं, में डालता है सादा arrays और पंक्तियों से. उदाहरण के लिए, अब मैं शायद एक टिप्पणी है जब और मैं अपने माता पिता के पद हथियाना चाहते हैं, और मैं शायद तीर टिप्पणी पोस्ट करते हैं, तो यह वास्तव में मेरे पोस्ट वस्तु दे देंगे वास्तविक माता पिता के पद के लिए इसी कुछ आईडी नहीं बस, जो मैं नहीं तो पद हड़पने के लिए एक और एसक्यूएल क्वेरी का उपयोग करें और बनाने के लिए होता है, बोझिल और अनावश्यक है. और इसके अलावा, वस्तुओं में इन सभी डेटा पंक्तियों मानचित्रण द्वारा, तुम भी वस्तुओं के लिए और अधिक कार्य संलग्न कर सकते हैं, तो उदाहरण के लिए, मैं कक्षाएं अनिवार्य रूप से कार्यों के समूहों रहे हैं कि कैसे बारे में बात की. तुम इस तरह से सोच सकते हैं. उदाहरण के लिए, हो सकता है मैं इस पोस्ट वस्तु है, और शायद मैं इसे से जुड़े समारोह के कुछ प्रकार करना चाहते हैं कि बुनियादी तौर पर मुझे यह हाल ही में पोस्ट किया गया था बताता है? यह सही है या गलत, पिछले सप्ताह के भीतर तैनात किया गया है? और कहा कि मैं उस वस्तु पर संलग्न कर सकते हैं एक समारोह है, और यह एक ही स्थान में इसे करने के लिए वास्तव में सुविधाजनक है और आप बना सकते हैं विभिन्न कार्यों की मेजबानी कर रहे हैं इन वस्तुओं के लिए, और यह एक वर्ग के लिए संलग्न करने के लिए सक्षम होने के लिए वास्तव में अच्छा है, एक उद्देश्य के लिए, तुम सिर्फ अपने डेटाबेस से आ रही पंक्तियों था जबकि अगर, तो आप वास्तव में इस बात से कोई कार्यक्षमता संलग्न नहीं कर सकता. यह सचमुच सिर्फ डेटा है. सभी को इस बारे में कोई सवाल? ORMS बहुत आम वेब विकास कर रहे हैं, और ORMS के विभिन्न प्रकार के एक बहुत हैं, और Kohana अपनी ही ORM है. यह बहुत ही बुनियादी है, लेकिन आप यह क्या लगता है की एक स्वाद मिलेगा. के हमारे ब्लॉग पोस्ट के लिए एक मॉडल तैयार करते हैं, और हम स्पष्ट रूप से करने की ज़रूरत पहली बात यह है कि एक वास्तविक तालिका बनाने के लिए है हमारे डाटाबेस के भीतर वास्तव में उन पदों के लिए हमारे डेटा स्टोर करने के लिए. मैं क्या करने जा रहा हूँ पहली बात phpMyAdmin करने के लिए जाना है. तुम लोग पहले phpMyAdmin इस्तेमाल किया है? ठीक है, भयानक, तो तुम लोग पहले से ही यह है कि क्या पता, और मैं Kohana पोस्ट नामक एक नई तालिका बनाने के लिए जा रहा हूँ, और यह वास्तव में आसान होने जा रहा है. मैं वापस अंदर लॉग इन करना होगा हम आज क्या करने जा रहे हैं सभी एक लेखक और एक शरीर है, बस इसे सरल रखने के लिए. मुझे लगता है कि तालिका बनाने के लिए जा रहा हूँ, और अब हम सिर्फ हमारे पदों का प्रतिनिधित्व एक टेबल है हमारे लेखक और हमारे शरीर के लिए 2 क्षेत्रों के साथ. मैं अब क्या करने जा रहा हूँ दूसरी बात है यह डेटाबेस से कनेक्ट करने के लिए कैसे जानता है तो अपने वेब आवेदन को विन्यस्त, और यह, फिर से, आप सभी वेब अनुप्रयोगों के साथ करना होगा कि कुछ है. आप यह उपयोगकर्ता नाम और पासवर्ड बताने की जरूरत और डेटाबेस का नाम और इतने पर और बहुत आगे वास्तव में अपने डेटाबेस से कनेक्ट करने के लिए बाहर निकालने के लिए. Kohana में, हम एक डेटाबेस मॉड्यूल बुलाया कुछ है और विन्यास फ़ोल्डर में हम, डाटाबेस नामक इस फ़ोल्डर है आप देख सकते हैं और, आप यहां सेट करने के लिए सेटिंग्स का एक गुच्छा रहे हैं उपयोगकर्ता नाम और पासवर्ड क्या है यह बताने के लिए डेटाबेस के लिए तो मैं वास्तव में यह करने के लिए कनेक्ट कर सकते हैं. और मैं तुम लोगों को वास्तव में पता नहीं करना चाहते क्योंकि उपयोगकर्ता नाम और अपने डेटाबेस का पासवर्ड, मुझे लगता है मैं पहले से ही यह सब सेट अप जहां एक फ़ाइल है, और मैं कॉपी और इस पर चस्पा करने के लिए जा रहा हूँ. बहुत बढ़िया. ठीक है. मुझे लगता है कि मैं सब करने की ज़रूरत विन्यास लगता है, लेकिन चलो देखते हैं. कुछ दुर्घटनाओं अगर हम उस में काम कर रख देंगे, और फिर हम इसे ठीक कर देंगे. अब मैं क्या करने जा रहा हूँ मैं एक नया नियंत्रक बनाने के लिए जा रहा हूँ है. या वास्तव में, क्षमा करें. सबसे पहले मैं एक नया मॉडल बनाने के लिए है. मैं, post.php नामक एक नया मॉडल तैयार करेंगे और हम क्या करने जा रहे हैं हम वर्ग Model_Post यह कॉल करने के लिए जा रहे है. कुछ वाक्यविन्यास पर प्रकाश डाला हो जाओ, और इसलिए जब मैं कहता हूं, कि मूल रूप से है "ORM, फैली" कुछ और ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग, जो दुर्भाग्य से तुम लोग अभी तक CS50 में सीखा नहीं है, लेकिन इसे लेने के लिए बहुत आसान है. यह मुझे इस ORM पैकेज में आता है कि यह सब अतिरिक्त कार्यशीलता देता है और इसलिए मैं, अतिरिक्त कार्यों और मुक्त करने के लिए whatnot की एक गुच्छा मिल आप एक दूसरे में से एक सा देखेंगे जो. अभी वास्तव में मैं क्या करने की जरूरत है इस वर्ग बना है. मैं भी किसी भी समारोह या कुछ भी बनाने की जरूरत नहीं है, लेकिन मैं तालिका का प्रतिनिधित्व करता है कि एक वर्ग बना लिया है, और मैं इस ORM वर्ग बढ़ा दिया है क्योंकि, मैं मुक्त करने के लिए चीजों की एक गुच्छा ले, तो अब के लिए आप कुछ भी अधिक स्थापित करने के लिए नहीं है. और अब मैं क्या करने जा रहा हूँ मैं एक नया नियंत्रक बनाने के लिए जा रहा हूँ है, जो मैं blog.php नाम करने के लिए जा रहा हूँ, और मैं आपका स्वागत नियंत्रक पर कॉपी करने के लिए जा रहा हूँ तो मैं कुछ सामान फिर से लिखें की जरूरत नहीं है, और अब मैं इस नाम बदलने के लिए है. अब क्या मुझे यकीन है कि सब कुछ बाहर काम कर रहा है बनाने के लिए परीक्षण करने के लिए क्या करने जा रहा हूँ, मैं अपने डेटाबेस से पहली पोस्ट हड़पने के लिए जा रहा हूँ और स्क्रीन पर पद के शरीर मुद्रित. क्या मैं पहले क्या करने जा रहा हूँ मैं पदों को बचाने के लिए जा रहा हूँ है कि ऐसा करने के लिए एक चर करने के लिए, तो क्या हम ऐसा करने जा रहे है - Kohana में आप क्या करते डाक वस्तु हड़पने के लिए है , यह एक तरह से बोझिल है, लेकिन आप ORM इस बात को बुलाया :: कारखाना क्या करना है और तो क्या आप चाहते हैं मॉडल के नाम से गुजरती हैं, और यह उस मॉडल का प्रतिनिधित्व करता है कि ORM ऑब्जेक्ट देता है. और फिर, जैसे मैं, हम ORM वस्तु का विस्तार करते हैं, तो कहा हम मुक्त करने के लिए इन सभी तरीकों मिलता है, तो उदाहरण के लिए, हम नामक इस नए कार्य, "सभी" मिल जो स्वचालित रूप से डेटाबेस में हर एक पद देता है, जो बहुत सुविधाजनक है. और अब शरीर में मैं वापस जा रहा हूँ पहली पोस्ट और अपने शरीर को वापस. और हां, मैं एक पद सृजित करने की आवश्यकता है, तो चलो एक नई पोस्ट डालने दे. मैं, "ब्रैंडन, मेरी बहुत पहले पोस्ट." कहता हूँ बहुत बढ़िया. और अब हम ब्लॉग पर जाने के लिए जा रहे हैं सभी अच्छी तरह से काम करता है और - ओह, यह फिर से कुछ अन्य गूंगा फ़ाइल अनुमति बात है. 1 मिनट रुको. यह एक तरह से बेतुका है. हम वहाँ जाते हैं. ठीक है. मुझे लगता है कि अनुमति समस्या तय. यह कुछ फाइलें और कुछ लॉग बनाने के लिए कोशिश कर रहा था, और अनुमतियाँ, फिर, ठीक से स्थापित नहीं किया गया है, तो मैं इसे बनाया ताकि उन फ़ाइलों को लिखने योग्य और निष्पादन योग्य थे तो यह वास्तव में बातें करने के लिए लॉग इन कर सकते. अब यह "वर्ग ORM नहीं मिला" मुझे एक अपवाद कह रही है, दे रही है मैं एक और कदम भूल गया क्योंकि और है. यह बहुत बुरा है. बूटस्ट्रैप फ़ोल्डर फ़ाइल में, यहाँ इन मॉड्यूल हैं, आप को सक्षम या अक्षम करने के लिए चुन सकते हैं. ये आप का उपयोग करने के लिए चुन सकते हैं कि विभिन्न सुविधाओं का एक गुच्छा रहे हैं एक तरह से अच्छा है जो Kohana, भीतर. उदाहरण के लिए, वे एक प्रमाणीकरण मॉड्यूल जो आप उपयोक्ता के सत्यापन के लिए उपयोग कर सकते हैं. आप लागू करना चाहते हैं, तो वे एक कैशिंग मॉड्यूल आवेदन का काम तेजी से और whatnot बनाने के लिए अंत वापस कैशिंग के कुछ प्रकार की. हम डेटाबेस और ORM मॉड्यूल सक्रिय करने की जरूरत, जैसे मैंने कहा, क्योंकि हम, जाहिर है, डेटाबेस का उपयोग कर रहे हैं और हम भी ORM मॉड्यूल सक्रिय करने की जरूरत, हमारे पास करने के लिए अच्छा है जो अतिरिक्त कार्यक्षमता, करना चाहते हैं क्योंकि. मैं सभी को है, उन 2 लाइनों Uncomment है मैं ताज़ा और अगर अब, यह मुझे एक त्रुटि दे दी है. यह "कक्षा Model_Post नहीं मिला है." अब यह एक अच्छा समस्या है. चलो देखते हैं. यह सार्वजनिक करें. सं पर पकड़ो. ओह, प्यारे. यह है कि खोजने के लिए सक्षम नहीं है यही कारण है मैं नहीं जानता. यह वास्तव में अजीब है. मैं यहीं इस वर्ग है. ओह - मैं मैं के लिए हो सकता है. मैं इतने बेवकूफ हूँ. मैं एक PHP टैग जोड़ने के लिए भूल गया. यही कारण है. अब मैं 1 परिवर्तन मैं बस किया था कि पूर्ववत करने के लिए है. ठीक है. हम वहाँ जाते हैं. यही सच में पागल था. मैं एक खोलने PHP टैग नहीं था. आप देख सकते हैं लेकिन, अब यह ठीक है, ठीक से काम कर रहा है? हम 1 पोस्ट की है. हम पहली पोस्ट पकड़ा, और अब हम अपने शरीर से बाहर मुद्रित. ग्रेट. बढ़िया. कोई प्रश्न अब तक? नहींं? कोई सवाल? ठीक है, तो हम बस, बहुत बुनियादी, डाक मॉडल बनाया और हम बाद में कुछ कार्यों को जोड़ने के लिए जा रहे हैं. हम सत्यापन और फ़िल्टरिंग जोड़ सकते हैं. Validations चीजों में से एक हैं चौखटे वास्तव में अच्छी तरह से, वास्तव में आप के लिए हल है कि, और मैं तुम लोगों को अपने CS50 pset के लिए ऐसा करने के लिए किया था नहीं लगता, लेकिन आप अपने अंतिम परियोजना के लिए वेब विकास करते हैं, आप की संभावना सत्यापन के कुछ प्रकार करना चाहते करने जा रहे हैं, जैसे खाली उपयोगकर्ता नाम नहीं होने, शायद कम से कम कुछ लंबाई के साथ एक पासवर्ड रहा है, इस तरह बातें. और यह अपने आप से इन बातों को लागू करने के लिए वास्तव में बोझिल है और बहुत ज्यादा हर एक वेब रूपरेखा यह तुम्हारे लिए है और आप एक बहुत साफ तरीके से ऐसा करने की अनुमति देता है. आप आम तौर पर उन लोगों के मान्यता नियम व्यक्त जहां और मॉडल है, यह एक मॉडल मान्य है या नहीं मान्य कर रहा है. लेकिन अब के लिए, हम बाद में जब तक कि डालने के लिए जा रहे हैं और अब के लिए हम दूसरे भाग पर काम करने के लिए जा रहे हैं, और हम एक नया देखने की कोशिश और बनाने जा रहे हैं कि सभी पदों को सूचीबद्ध करती है. सभी पदों के लिए नामांकन के लिए कोई नया कार्य बनाने में लगे कदम सभी पदों की एक सूची हड़पने के लिए है और फिर एक दृश्य के माध्यम से सभी पदों की सूची प्रस्तुत करना. यहीं पर, सौभाग्य से पर्याप्त, हम पहले से ही सभी पदों को पकड़ा इस पहली लाइन का उपयोग कर, सभी समारोह लगता है और अब हम क्या करने जा रहे हैं अब तक है मैं सीधे प्रतिक्रिया के शरीर की स्थापना किया गया है स्ट्रिंग गुजर रहा है, लेकिन अब मैं एक दृश्य का उपयोग करना चाहते द्वारा, और अभी यह कर एक दृश्य और बीच का अंतर एक दृश्य के साथ मैं एक अच्छा, बड़ा जनरेटर टेम्पलेट हो सकता है, और क्या मैं कर सकता है यह कुछ चर पारित है और तब दृश्य स्वतः ही अपने टेम्पलेट आबाद है उन चर का उपयोग कर. क्या मैं करता हूँ, मैं एक नया दृश्य पैदा हो जाएगी है और मैं ", ब्लॉग / सूचकांक" की तरह देखने के लिए कुछ नाम होगा और मैं मूल रूप से इस बाँध के लिए जा रहा हूँ - ओह, मैं क्या लिख ​​रहा हूँ? मेरे दिमाग कहीं और है. मैं, देखने के लिए चर पदों बाध्य करने के लिए जा रहा हूँ इस तरह से तो देखें इस पोस्ट चर तक पहुँच गया है. और इसलिए अब मैं इस दृश्य को बनाने की जरूरत है, तो यहाँ हम "विचार" नामक इस फ़ोल्डर है और सबसे पहले, मुझे लगता है कि कहा जाता है, के तहत एक नया फ़ोल्डर बनाने के लिए जा रहा हूँ "ब्लॉग." यह अच्छा है. कि जिस तरह से हम अपने विचारों के लिए एक अच्छा पदानुक्रम हो सकता है. और फिर मैंने फोन वहाँ में एक और फाइल बनाने के लिए जा रहा हूँ "index.php." बहुत बढ़िया. दरअसल, हम यहाँ उन दोनों करते हैं. एक दृश्य फाइल बनाने शायद इस सब का सरलतम हिस्सा है, और ये शायद आप पहले से परिचित हो बातें कर रहे हैं. हम वास्तव में सरल कुछ करने जा रहे हैं कह रही है, शुरू "ब्लॉग पोस्ट की मेरी सूची में." तो फिर हम के माध्यम से जा सकते हैं, और हम पदों सरणी के माध्यम से पुनरावृति कर सकते हैं, हर एक पद हड़पने के लिए और की तरह कुछ कहना है - शायद एक लाइन जोड़ और फिर लेखक और शरीर बाहर प्रिंट. यही कारण है कि अब तक समझ बनाने के लिए? और अगर यह काम करता चलो देखते हैं. कुछ नहीं हुआ. मैं पता नहीं क्यों. ओह, मैं 1 कदम याद किया. मुझ पर बहुत मूर्ख. मैं एक दृश्य बनाया है, लेकिन मैं प्रतिक्रिया के रूप में देखने के लिए सेट नहीं किया है, तो आप 1 बात और क्या करना है. आप "इस प्रतिक्रिया शरीर" करते हैं और देखने होने के लिए यह निर्धारित किया है. हम वहाँ जाते हैं. हम अपने शीर्षक है, और फिर हम एक पोस्ट किया है, और बस kicks के लिए, चलो एक और पोस्ट सम्मिलित करते हैं इसलिए हम एक सूची देख सकते हैं. और इन 2 पदों डालने, और अब मैं पृष्ठ को ताज़ा करते हैं, तो हम यहाँ इन सभी पदों को देखने. कि अब तक मतलब? हाँ, एक सवाल? ठीक है, ओह. आप देख सकते हैं, हम बाहर इन सभी कोड को अलग कर लिया है विभिन्न वर्गों में, और उसके बाद आप उसे देख कोड के साथ सबसे स्पष्ट है देख सकते हैं. यह दृश्य का प्रतिनिधित्व करता है कि यहां फ़ाइल, यह केवल डेटा प्रदर्शित करने, डेटा का प्रतिनिधित्व करने के बारे में परवाह नहीं है. यह डेटा के कुछ प्रकार पारित हो जाता है, और यह सब होता है सिर्फ तुम यह शो है. अपने कोड के सभी अन्य भागों में, आपको लगता है कि किसी के बारे में चिंता करने की ज़रूरत नहीं होगी, और इसी तरह, आपके विचार कोड के बारे में कुछ भी चिंता करने की ज़रूरत नहीं है डेटाबेस का उपयोग और इतने पर और बहुत आगे है, करने के लिए कैसे जो वास्तव में अच्छा है और अपने कोड एक बहुत अधिक maintainable बनाता है. जैसे मैंने कहा, देखा, वे उस में गतिशील हो यह 1 फ़ाइल है, लेकिन यह अलग अलग विचार पैदा होंगे आप वास्तव में पारित चर के आधार पर, और इसके अलावा, विभिन्न सहायक कार्यों का एक बहुत कुछ कर रहे हैं आप, आप तेजी से अपने कोड लिखने में मदद करने के लिए उपयोग कर सकते हैं मैं बस एक पल में तुम्हें दिखाता हूँ जो. हाँ. [छात्र] तो $ 0 सही, एक नियंत्रक है? दूसरी बात है कि. सवाल $ 0 एक नियंत्रक है? $ 0 मैं यहीं बनाई गई एक चर रहा है. मैं पहले एक दृश्य बनाया. मैं कुछ चर को सौंपा. तो मैं इस समारोह में इसे पारित प्रतिक्रिया के शरीर के रूप में सेट. कि मतलब? [छात्र] तो देखने :: कारखाना है, एक वर्ग की तरह देखने है या एक पुस्तकालय [सुनाई] फैक्टरी समारोह? सवाल, देखें :: कारखाने समारोह के बारे में है और मूल रूप से यह अनिवार्य रूप से कुछ अधिक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग है. "फैक्टरी" देखें वर्ग है, और यह कहा जाता है एक विधि है और उस नाम है उस वस्तु को हड़पने के लिए एक तरीका है "ब्लॉग / सूचकांक." और वह कुछ अधिक ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग सामान मैं बहुत ज्यादा यहाँ में जाने के लिए नहीं जा रहा हूँ कि. अब जाहिर है, हम नए पदों का सृजन करना चाहते हैं, लेकिन हम एक डाटाबेस के माध्यम से यह करना होगा नहीं करना चाहती, इसलिए हम एक नई पोस्ट बनाने के लिए एक नया कार्य बनाने के लिए जा रहे हैं, और हमें क्या करना है सामान की एक बहुत कुछ है. हम क्या करने जा रहे हैं, पहली बात - चलो इन बातों को एक के बाद एक से निपटने. हम क्या करेंगे पहली बात यह है कि हम एक फार्म बनाने के लिए मिल गया है एक नई पोस्ट डालने के लिए, लेकिन मैं यह भी पहली बार किसी नए कार्य जोड़ने के लिए जा रहा हूँ इसलिए कोई नया कार्य जोड़ने के रूप में बस के रूप में आसान है अपने नियंत्रक के साथ एक नया समारोह में जोड़ने, और अब के लिए मैं बहुत बुनियादी कुछ करने जा रहा हूँ बस इस दृश्य को पकड़ो और यह पोस्ट, सिर्फ तुम्हारे लिए यह प्रदर्शित करते हैं. और फिर अब मैं एक नए दृश्य फाइल बनाने के लिए जा रहा हूँ, और मैं कुछ सामान लेखन शुरू करने जा रहा हूँ. क्या Kohana के बारे में अच्छी बात है कि वे विभिन्न सहायक कार्यों का एक बहुत प्रदान करता है यदि आप और अधिक आसानी से देखने कोड लिखने के लिए उन सहायक कार्यों या सहायक मॉड्यूल की और 1 आसपास रूपों में लिख रही है. रूपों लिखने के लिए, मैं वास्तव में सीधे किसी भी HTML अपने आप को लिखने की जरूरत नहीं है. तुम लोग HTML रूपों में लिखा है. आप यह वास्तव में, वास्तव में दर्द होता है और रूपों लिखने के लिए बोझिल हो सकता है कि कैसे पता है. यह तो सौभाग्य से, मजाक नहीं है हम मूल रूप से Kohana का उपयोग कर एक फार्म लिख सकते हैं हमारे लिए यह करने के लिए सहायक कार्यों के रूप में. हम मूल रूप से हमारे पास हर एक बात के लिए खेतों लिए जा रहे हैं इसलिए लेखकों के लिए एक और शरीर के लिए एक. हम एक लेबल किया जा रहे हैं, और हम एक इनपुट किया जा रहे हैं. और फिर अंत में, हम एक प्रस्तुत किया जा रहे हैं. और आप देख सकते हैं, यह लिखने के लिए बहुत क्लीनर है एक तरह से अच्छा है जो सभी कि गंदा एचटीएमएल, से. दी, कि तुलना में यह भी क्लीनर है कि अन्य वेब चौखटे वहाँ हैं, लेकिन कम से कम इस HTML अपने आप को लिखने से बेहतर है. बहुत बढ़िया, तो यह आपके क्या देख रहा है. यही कारण है, एक तरह से गंदा है इसलिए मुझे लगता है कि वहाँ एक पंक्ति विराम जोड़ने के लिए जा रहा हूँ कि एक छोटे से अच्छे लग रहे बनाने के लिए. ठीक है, बेशक, यह अभी भी बहुत, बहुत बुरा लग रहा है, लेकिन हम अभी से ध्यान केंद्रित कर रहे हैं सौंदर्यशास्त्र पर अब और नहीं करने के लिए कार्यक्षमता पर. सब कुछ करने के लिए कोई समय. आप देख सकते हैं और, अब हम एक सुपर बुनियादी रूप है, जो एक तरह से अच्छा है. मेरा कहना है कि यह कोड अपने आप को फार्म एक HTML लिखने की कोशिश की तुलना में क्लीनर है, तो यह अच्छा है. आगे क्या है? अब हम कार्रवाई के साथ काम करने की जरूरत. आप HTML रूपों लिखने आम तौर पर जब, आप इसे करने के लिए फार्म जमा करने के लिए जा रहा है, जहां यह बताने के लिए है. सबसे वेब चौखटे में डिफ़ॉल्ट रूप से, , यह ठीक उसी यूआरएल के लिए प्रस्तुत है, तो बात है आप करने के लिए / ब्लॉग / नई, एक अनुरोध प्राप्त भेजने यह आप प्रपत्र प्रदर्शित करना चाहिए, लेकिन आप एक पोस्ट अनुरोध भेजने के लिए / ब्लॉग / डेटा के साथ नए, यह वास्तव में उस पद को बचाने के लिए प्रयास करना चाहिए और इसके साथ कुछ करना. हम क्या करने जा रहे है मूल रूप से हम सभी का यह एक पोस्ट अनुरोध या एक अनुरोध प्राप्त है कि क्या जांच करने के लिए क्या करना है आप सेट कर सकते हैं पोस्ट चर रहे हैं क्या जांच करने के लिए है. पोस्ट चर सेट कर दिया जाता है, तो हम कोशिश करते हैं और एक नए पद सृजित करने के लिए जा रहे हैं. फिर, हम सिर्फ यह करना है, और कहा कि एक नई पोस्ट बनाता है, और हम सचमुच जा रहे हैं इस तरह अपने खेतों सेट, और फिर हम इसे बचाने के लिए जा रहे हैं. और फिर मैं पुनर्निर्देशित करने के लिए जा रहा हूँ सूचकांक पृष्ठ पर तो वे पदों की हमारी सूची में फिर से देख सकते हैं. चलो कोशिश करते हैं. मैं ", ब्रैंडन" कहते हैं, और, फिर बाद सबमिट करें, और अगर सब कुछ ठीकठाक आप देख सकते हैं, यह सूचकांक पृष्ठ पर मुझे पुनः निर्देशित मैं नीचे स्क्रॉल और, अगर हम एक नव डाला पद है. हाँ! हाँ, सवाल. [छात्र] क्या आप सटीक एक ही बात में प्रवेश किया था, तो इससे पहले कि आप में प्रवेश किया? यह सुनिश्चित करें कि आप दोहराया नहीं किया है करने के लिए जाँच करता है उसी प्रस्तुत? डिफ़ॉल्ट होना, नहीं, क्योंकि डिफ़ॉल्ट रूप से - आप के रूप में सटीक एक ही डेटा में दर्ज करते हैं, माफ सवाल है और, यह तुम एक नकली वस्तु को सम्मिलित करने की अनुमति देगा, कि प्रस्तुत एक अनिवार्य रूप से प्रवेश नकल? अभी, हाँ, यह आपको ऐसा करने की अनुमति देगा, डेटाबेस में यह पूरी तरह से डुप्लिकेट पंक्तियों को पूरी तरह से वैध है क्योंकि, कि एक चिंता का विषय है लेकिन, तो आप उदाहरण के लिए, सत्यापन जोड़ सकते हैं, यह पहले से ही मौजूद है कि कुछ के रूप में बिल्कुल वैसा ही है, तो यकीन है कि बनाने के लिए, तो यह एक अवैध वस्तु कहना है कि, और फिर आप भी अपने त्रुटि संदेश निर्दिष्ट कर सकते हैं "यह पहले से ही मौजूद है क्योंकि अवैध" या ऐसा कुछ और कहते हैं. लेकिन इस मामले में, मैं सिर्फ डुप्लिकेट कुछ बना सकते हैं. अब हम कोशिश करते हैं और कुछ validations जोड़ें. इस के साथ समस्या अभी है कि मैं सचमुच एक पूरी तरह से खाली पद प्रस्तुत सकता है. मैं अभी इस बटन को क्लिक कर सकते हैं, और हम वहाँ जाते हैं. आप वास्तव में इसे देखते हैं, लेकिन नहीं कर सकते हैं यहाँ इस अतिरिक्त लाइन मैं सचमुच एक नई पोस्ट है कि इंगित करता है. यह सिर्फ एक खाली लेखक और एक खाली शरीर है, और हम लोगों को ऐसा करने की अनुमति नहीं करना चाहती. मान्यता अंदर आता है जहां यह है मैं अपने मॉडल वस्तु पर जा सकते हैं, और अब मैं यह बताता है कि एक नया समारोह जोड़ सकते हैं मैं इस मॉडल को जोड़ना चाहिए क्या मान्यता नियम यह वैध है कि बनाना या निर्दिष्ट करने के लिए क्या यह एक वैध पोस्ट होने का मतलब है? और मुझे लगता है कि यह केवल एक वैध पद है कहना चाहता हूँ अगर लेखक और शरीर दोनों खाली नहीं कर रहे हैं, और यह आपके Kohana में यह कैसे करते हैं. तुम "नियम," नामक एक नया समारोह बनाने और फिर आप मूल रूप से एक साहचर्य सरणी वापस कि इस उद्देश्य के लिए मान्यता नियम को परिभाषित करता है. हम सरणी वापस जाने के लिए जा रहे हैं, और फिर हम क्या करने जा रहे हो रहा है कहते हैं, "लेखक," यह एक सरणी के लिए चला जाता है, जो कहा जाता है एक और सरणी के लिए चला जाता है "खाली नहीं." और फिर मैं कहने जा रहा हूँ "शरीर." इस के लिए ठीक है, और इस के लिए वाक्यविन्यास और संरचना एक छोटे से बोझिल और थोड़ा जटिल लग सकता है. आप प्रलेखन पढ़ा है, यह पता लगाने की बहुत सीधा है लेकिन अनिवार्य रूप से यह आपके निर्दिष्ट करने के लिए क्या करने की जरूरत है कुछ मान्यता नियम, और विभिन्न नियमों का एक बहुत कुछ कर रहे हैं आप कहना नियम जोड़ सकते हैं जैसे Kohana, मुक्त करने के लिए आपको दे देंगे कि यह कम से कम इस लंबाई का होना चाहिए. हो सकता है कि यह संख्यात्मक हो गया है. शायद यह अल्फा न्यूमेरिक हो गया है. हो सकता है कि यह इतने पर और बहुत आगे है, अधिक से अधिक यह लंबाई हो गया है. Kohana आप के लिए प्रदान करता है कि विभिन्न नियमों का एक बहुत हैं, और तुम, प्रलेखन पर देखने के लिए, अपनी वेबसाइट पर जा सकते हैं और आप क्या कर सकते हैं कि सब अलग अलग चीजें देख सकते हैं. लेकिन यह मुझे क्या करना है सब है, और अब हम देखते हैं क्या होता मैं एक रिक्त पद सबमिट करते हैं. क्या होने वाला है? ओह, नहीं, मैं एक त्रुटि मिलती है. मैं एक मान्यता अपवाद हो. खैर, यह अच्छा है. यह मेरे मॉडल अमान्य है कि मुझे बताया था, लेकिन मैं एक अपवाद प्रदर्शित नहीं करना चाहते मेरे उपयोगकर्ताओं के लिए वे सही, अवैध कुछ प्रस्तुत करने का प्रयास करते? मैं उन्हें friendlier त्रुटि संदेश के कुछ प्रकार देना चाहता हूँ कुछ गलत हो जाता है. हम क्या करने जा रहे हैं हम करने जा रहे है एक कोशिश पकड़ पाश में सब कुछ लपेटो. असल में, मैं यह भी अगर आप अभी तक नहीं सीखा है कुछ है CS50 में, क्योंकि सी, प्रोग्रामिंग भाषा, लगभग हर एक अन्य भाषा अपवाद है, लेकिन यह नहीं है , तो वास्तव में, वास्तव में संक्षेप में अपवाद है, एक अपवाद कोड का एक टुकड़ा सकता है कुछ है कुछ गलत हो जाता है, जब एक अपवाद फेंक ऊपर लेकिन तब शायद कोड के कुछ अन्य टुकड़ा उच्चतर कि अपवाद को पकड़ने और इसके साथ कुछ कर सकते हैं. उदाहरण के लिए, इस मामले में, एक मॉडल को बचाने के लिए कोशिश कर रहा है कि कोड का टुकड़ा, "ठीक है, इस मॉडल अमान्य है" यह मॉडल पुष्टि, और यह कहते हैं, यह एक अपवाद फेंक करने के लिए जा रहा है, और यह करने के लिए बराबर की तरह है सी में आप एक -1 या ऐसा कुछ वापसी हो सकती है. और फिर मेरे लिए, इस समारोह में, मेरे कोड एक उच्च स्तर पर, मुझे लगता है कि अपवाद के लिए प्रयास करें और पकड़ कर सकते हैं और मूल रूप से "ठीक है, मैं अपवाद को पकड़ने, तो मैं क्या करने जा रहा हूँ?" कहते हैं, या मैं उस अपवाद को पकड़ने और ऊपर किसी उच्च जाने के लिए नहीं चुन सकता है अपवाद को पकड़ने, या कोई भी यह फैल जाती है, तब पूरे कार्यक्रम, दुर्घटनाओं और कहते हैं "कुछ गलत हो गया था, और मैं यह नहीं संभाल सकता है." लेकिन हम क्या करते हैं, आप एक कोशिश ब्लॉक में कोड का एक टुकड़ा लपेटो है और फिर आप भी एक पकड़ ब्लॉक बुलाया कुछ जोड़ जो कोशिश करते हैं और हो सकता है कि अपवाद को पकड़ने होगा कि कोड की तरह है. और इसलिए मैं इस विशेष अपवाद पकड़ या रद्द अपवाद है, तो मैं क्या करने जा रहा हूँ है मैं त्रुटियों सेट करने के लिए जा रहा हूँ - मुझे लगता है कि मैं इसे कैसे करते है - और मैं किसी वस्तु को त्रुटियों सेट करने के लिए जा रहा हूँ. यह इस अपवाद हिट तो मैं क्या करने जा रहा हूँ है, यह पुनर्निर्देशित नहीं करता है, तो यह, पुनर्निर्देशित करने के लिए जा रहा है, और नहीं है अगर यह ब्लॉग से बाहर आ रहा है और मैं क्या करना चाहते चाहते है, जो इस ब्लॉग / नई मारा. वहाँ एक त्रुटि है, तो मैं फार्म के लिए वापस जाना चाहता हूँ और उन त्रुटियों को प्रदर्शित करते हैं. अब मैं क्या करना चाहते हैं मैं उन त्रुटियों में पास करना चाहते है देखने के लिए. ठीक है, मैं, मैं यहीं देखने लगता है और मूल रूप से मैं अगर वे मौजूद हैं उन त्रुटियों को प्रदर्शित करना चाहते हैं. मैं उस के लिए HTML लिखने से पहले, मैं करने के लिए वास्तव में जल्दी से जा रहा हूँ इस त्रुटियों की संरचना चर चेहरा पसंद है तुम्हें दिखाता, और यह सामान्य रूप में एक अच्छा अभ्यास है. आमतौर पर आप वापस कुछ विधि से कुछ मिल वेब ढांचे में कुछ समारोह, और तुम, चर की तरह लग रहा है पता नहीं है तो आप इसके साथ काम करने के लिए कैसे पता नहीं है. मैं मूल रूप से इसे बाहर प्रिंट करने के लिए एक प्रिंट R विधि का उपयोग करने के लिए जा रहा हूँ. आप देख सकते हैं और, यह, यह एक सहयोगी सरणी है मुझसे कहता है और अगर आप इस स्ट्रिंग के लिए एक प्रमुख, लेखक, अंक है लेखक खाली हो, और एक अन्य प्रमुख, शरीर, नहीं चाहिए एक और स्ट्रिंग, शरीर को अंक खाली नहीं होना चाहिए. मैं शांत, ठीक है, की तरह हूँ. तब मैं सरणी के माध्यम से पुनरावृति और हर एक संदेश मुद्रित कर सकते हैं. यह संदेश के एक समूह के साथ एक साहचर्य सरणी की तरह मूल रूप से है. मैं क्या करने जा रहा हूँ ", अगर त्रुटि" है और मैं एक unordered सूची बनाने के लिए जा रहा हूँ, और मैं सभी त्रुटियों के माध्यम से पुनरावृति करने के लिए जा रहा हूँ. और यह, और अब मैं फिर से इस प्रस्तुत करने की कोशिश करने जा रहा हूँ और हम क्या मिल देखते हैं. अब हम त्रुटियों की यह अच्छा सूची प्राप्त, और, यह अभी भी बहुत बदसूरत है, लेकिन यह स्पष्ट रूप से अच्छी लग रही करने के लिए प्रारूप तैयार किया लेकिन मूल विचार, बस कोड की कुछ लाइनों में है हम अपने मॉडल को मान्य करने में सक्षम थे, कुछ क्षेत्रों को खाली नहीं कर रहे थे, सुनिश्चित करें कि और कुछ गलत हो गया है, तो त्रुटि संदेश के कुछ प्रकार लौटने मैं तो उपयोगकर्ता को वापस भेंट कर सकते हैं. आप भी अपनी मान्यता अनुकूलित कर सकते हैं आप वास्तव में एक त्रुटि संदेश हो सकता है कि कि आपके आवेदन या ऐसा कुछ करने के लिए और अधिक विशिष्ट है. सब है कि आम तौर पर प्रचलित है. दुर्भाग्य से, हम समय से बाहर चल रहे हैं इसलिए मैं यहाँ रहता कोडन सत्र काट करने के लिए जा रहा हूँ. मैं आप के लिए प्रदर्शित करना चाहते हैं कि अन्य सुविधाओं का एक गुच्छा रहे हैं इस उदाहरण में. उदाहरण के लिए, आप अपनी साइट के लिए टेम्पलेट्स जोड़ सकते हैं, इसलिए हो सकता है कि आप लागू करना चाहते हैं कि एचटीएमएल कोड के कुछ प्रकार है अपनी साइट में हर एक पृष्ठ पर, और बजाय चिपकाने की कि हर एक दृश्य फ़ाइल में आप स्पष्ट रूप से एक बुरा व्यवहार किया जाएगा, जो है आप मूल रूप से इन टेम्पलेट्स परिभाषित कर सकते हैं, और फिर अपने नियंत्रक में "ठीक है, मैं इस टेम्पलेट का उपयोग कर रहा हूँ." कहते हैं, "मेरे सारे दृश्य इस टेम्पलेट का उपयोग किया है." और मैं भी आप के लिए प्रदर्शित करना चाहते हैं एक अंतिम बात हम, क्रॉस साइट स्क्रिप्टिंग है के लिए समय नहीं है कि और मूल रूप से मैं तुम लोगों को शायद CS50 में देखा है - मैं दाऊद Malan शायद आप आमतौर पर इंजेक्षन सकता है के बारे में बात की थी लगता है में जावास्क्रिप्ट कोड - आप इस बारे में बात की है? हो सकता है? शायद नहीं? लेकिन कई बार आप दुर्भावनापूर्ण जावास्क्रिप्ट कोड इंजेक्षन कर सकते हैं किसी डेटाबेस में, और वे ठीक है कि बच नहीं है, फिर वे वापस उपयोगकर्ता के लिए कि आंकड़ों को पेश करते हैं, तो यह है कि आप ऐसा करने के लिए नहीं करना चाहती यादृच्छिक जावास्क्रिप्ट कोड के कुछ प्रकार चला सकते हैं, और मैं आप Kohana के भीतर ऐसा कर सकता हूँ कैसे प्रदर्शित करने के लिए जा रहा था. यह वास्तव में बहुत, बहुत आसान होता है. मैं सचमुच 2 सेकंड में सही अब यह कर सकता है. तुम्हें क्या करना है सभी मूल रूप से इन बातों को लपेट रहा है इस बात में HTML संस्थाओं का आह्वान किया. और यह स्वत: ठीक से सभी पात्रों से बच जाएगा और आप इस समस्या को नहीं मिलता सुनिश्चित करें. [छात्र] तुम गलत तरीके से पहले परीक्षण की वर्तनी. [ब्रैंडन लियू] ओह, ओह. ठीक है, कि मैं आज आप के साथ साझा किया था और कुछ नहीं. ये स्लाइड तैनात होने जा रहे हैं, लेकिन ये आम तौर पर कर रहे हैं केवल संसाधनों आप वास्तव में Kohana के साथ आरंभ करने की आवश्यकता चाहिए. आप वेबसाइट पर जा सकते हैं. वे एक उपयोगकर्ता पुस्तिका है, और वे भी एक एपीआई एक्सप्लोरर है. हम वे तुम्हारे लिए सब विभिन्न कार्यों और सहायक कार्यों तलाश कर सकते हैं. वे आम तौर पर वेबसाइट पर पर्याप्त जानकारी आप आरंभ करने के लिए और Kohana के साथ जा पाने उपयोग कर सकते हैं. कि कई ट्यूटोरियल के बाहर, Kohana के लिए, मुझे लगता है, नहीं कर रहे हैं क्या वे यहाँ की वेबसाइट पर है, तो यह शायद तुम्हारा सबसे अच्छा शर्त है. लेकिन आप वेब रूपरेखा के साथ जाना चाहते हैं और आप एक नई भाषा लेने के लिए नहीं करना चाहते, और तुम, अपेक्षाकृत हल्के है और एक आसान सीखने की अवस्था है कि कुछ करना चाहते हैं मैं निश्चित रूप से Kohana का सुझाव है. वह शायद उसके लिए सबसे अच्छी भेंट है. हम पटरियों पर रूबी का उपयोग कर रहे थे, तो अजीब बात है, हालांकि, है, हम अभी क्या किया दोहराया जा सकता था और शायद 3 के तहत मिनट में अधिक. कोई मजाक नहीं है, लेकिन पटरियों पर रूबी सीखने के लिए एक बहुत लंबे समय तक ले जाता है यह Kohana जानने के लिए ले जाएगा की तुलना में. यह आपको जानने का चयन करना चाहते हैं पर मूल रूप से अपनी पसंद है लेकिन आप को और जल्दी से चलाने के लिए चाहते हैं, Kohana निश्चित रूप से एक बहुत अच्छा विकल्प है. हम अंत कोई अंतिम सवाल से पहले? हां. [छात्र] हम कैसे है कि एकीकृत होगा आपको निर्देशित किया गया है जब आप उपयोग कर रहे थे जैसे एक सीएसएस ढांचे में? सवाल यह है कि हम एक सीएसएस ढांचे के साथ कि एकीकृत होता है? क्या हम शायद ऐसा होता है कि हम शायद शामिल होगा है हम सब अपने सीएसएस फ़ाइलों डंप होगा जहां एक नया फ़ोल्डर, और फिर हम भी एक नया टेम्पलेट जोड़ना चाहते हैं. टेम्पलेट में हम उन सीएसएस फ़ाइलों में शामिल होगी वे हर एक पृष्ठ पर संदर्भित कर रहे हैं सुनिश्चित करने के लिए, और फिर आप वास्तव में एचटीएमएल लिख रहे हैं, तुम सिर्फ उचित वर्गों और whatnot जोड़ने, और उदाहरण के लिए, जब आप फार्म की तरह कुछ का उपयोग कर रहे हैं सहायक समारोह, आप बाद में अधिक पैरामीटर जोड़ सकते हैं आप विभिन्न चीजों से जुड़ी क्या बनना चाहते हो कक्षाओं निर्दिष्ट करने के लिए ताकि वे ठीक से यह शैली सकता है, और है कि आप कैसे जाना होगा मूल रूप से है. कोई अन्य प्रश्न? बहुत बढ़िया. अपने समय के लिए धन्यवाद, और आने के लिए धन्यवाद. मैं बहुत ज्यादा कुछ और जोड़ने के लिए नहीं जा रहा था लेकिन 1 बहुत जल्दी बात है कि हम एक लिंक नहीं है फार्म के लिए. सच में मूक. चलो एक जोड़ है - वास्तव में ध्यान में रखते हुए, ब्लॉग, सूचकांक, नए पृष्ठ पर चला जाता है कि एक कड़ी जोड़ सच में जल्दी चलो, हम एक नई पोस्ट सम्मिलित कर सकते हैं, जहां पेज. हम यह करने के लिए जा रहे हैं. क्या अच्छा है HTML सहायक कार्यों के इस पूरे समूह वहाँ है आप के लिए अलग अलग बातें करते हैं, तो आप पहले से ही संस्थाओं को देखा जो "लंगर" यहां एक समारोह है, लेकिन उन्होंने यह भी कहा जाता है एक समारोह है आप ब्लॉग / नई में टाइप कर सकते हैं जो और 'पोस्ट एक नया ब्लॉग. कहते हैं, " और यह, कि आप के लिए कड़ी पैदा होगा और, यह करने के लिए वास्तव में तुच्छ लगता है, लेकिन यह अच्छा है आप 1 डोमेन से दूसरे करने के लिए अपनी वेबसाइट बढ़ रहे हैं कि लगता है. और तुम बस यूआरएल अपने आप को बाहर लिखा है, तो आप सभी यूआरएल को बदलना होगा. या हो सकता है आप एक और सबफ़ोल्डर को 1 सबफ़ोल्डर से चले गए. आप उन सभी यूआरएल अपने आप को बदलना होगा और कहा कि कोई मज़ा नहीं है. तुम यहीं इस लंगर का उपयोग कर सकते हैं और आप डोमेन या सबफ़ोल्डर उपसर्ग बदल सकते हैं , एक बार विन्यास फाइल में और, तो यह है कि हर जगह लागू होगी, और यह फिर से है, का एक बड़ा उदाहरण अपने कोड बाहर सुखाने, अपने आप को दोहराना नहीं है. तुम अपने आप को दोहरा रहे हैं जहाँ भी कोशिश करते हैं और विन्यास फाइल के कुछ प्रकार में निकालने या एक अलग कार्य करने के लिए और यह आप के लिए संभाल लिया है. और मैं आपको दिखाना चाहता था कि बहुत पिछले बात थी हम इस पद पर वापस आ गए हैं, और मैं कुछ वास्तव में लंबे निबंध रचना की थी लगता है, लेकिन मैं अपने लेखक शामिल करने के लिए भूल गया. अब मैं ", डाक भेजें" पर क्लिक करें जब मैं अभी सब कुछ खो दिया है. नहीं! वास्तव में दुखद. तो आप कैसे उस के साथ सौदा करते हैं? यह हम क्या करते हैं. हम क्या इन इनपुट और पाठ क्षेत्र कार्यों के लिए यहाँ है, हम एक दूसरे पैरामीटर, कि दूसरा पैरामीटर के तत्कालीन मूल्य शामिल हैं क्षेत्र शुरू में साथ आबादी होने जा रहा है क्या होने जा रहा है. क्या हम कर सकते थे हमारे ब्लॉग नियंत्रक में है, हम एक और चर बाध्य कर सके. हो सकता है यह "मूल्यों" कहते हैं. और सचमुच, पोस्ट सरणी में गुजरती हैं. कि, सत्यापन विफल अगर इसका मतलब है कि मेरे लिए मैं पिछले अनुरोध से प्रस्तुत की उस पोस्ट सरणी के पास, और इस तरह से मैं अपने पिछले प्रस्तुत करने से मूल्यों का उपयोग कर सकते हैं खेतों फिर से आबाद करने के लिए. अब मैं मूल्यों लेखक की तरह कुछ कर सकते हैं मैं कुछ यादृच्छिक सामान और अगर अब शरीर, और इस तरह के मूल्यों और तब यह वहाँ रहता है ", डाक भेजें" पर क्लिक करें. लेकिन हम एक और समस्या में चलाने के लिए जा रहे हैं. मैं पृष्ठ के लिए बहुत पहली बार जाना है, अगर काम करता है, लेकिन यह दुर्घटना करने के लिए जा रहा है, और है कि बहुत पहले समय क्योंकि हम पृष्ठ पर जाएं, इस संदेश चर अभी तक परिभाषित नहीं किया गया है. यह शून्य है. यह अस्तित्व में नहीं है. इस कुंजी मौजूद है और क्या हम कहना चाहते है, तो इस सरणी के मान, कुंजी मौजूद नहीं है लेकिन, फिर एक रिक्त स्ट्रिंग वापस. यही कारण है कि हम यहाँ चाहते कार्यक्षमता है. हम कुंजी सरणी का उपयोग करने की कोशिश कर रहा से पहले से मौजूद है अगर जाँच करना चाहते हैं, और सौभाग्य से पर्याप्त, Kohana भी हमें उस के लिए एक सहायक समारोह देता है. वे कार्यों की इस पूरी सूट नाम आगमन तहत, लघु सरणी के लिए, और वे "मिल" कहा जाता है 1 समारोह है और आप सरणी में पारित कर सकते हैं, और आप कुंजी के नाम पर पारित कर सकते हैं. तो बुनियादी तौर पर क्या यह करना होगा यह कि चाबी प्राप्त करने की कोशिश करेंगे, लेकिन उस कुंजी सरणी में मौजूद नहीं है, मुझे विश्वास है, तो यह रिक्त वापस आ जाएगी, या हम भी एक डिफ़ॉल्ट निर्दिष्ट कर सकते हैं जो अच्छा है. अब हम फिर से एक ही बात करते हैं, तो आप, यह पहली बार के आसपास काम करता है अब देखना और फिर, हम कुछ यादृच्छिक सामान में टाइप करते हैं और तब यह वहाँ रहता है, कोशिश करते हैं और सबमिट करें. और मैं भी कैसे सच में जल्दी से एक टेम्पलेट जोड़ने के लिए आपको दिखा सकता है. हम पहले क्या कर सकते हैं हम "template.php" नामक एक नया देखने को जोड़ सकते हैं दृश्य फ़ोल्डर में, और मैं क्या करने जा रहा हूँ, "सामग्री" मैं बुलाया कुछ बाहर मुद्रित करने के लिए जा रहा हूँ है मेरा मुख्य सामग्री होने जा रहा है. और शायद बहुत नीचे मैं, कहते हैं, जोड़ने के लिए जा रहा हूँ कॉपीराइट. [सुनाई छात्र प्रश्न] [ब्रैंडन लियू] शायद यह है कि मैं का उपयोग करना चाहते एक सुपर बुनियादी टेम्पलेट है. मैं हर एक पृष्ठ पर मेरा कॉपीराइट के साथ एक फ़ोल्डर है चाहता हूँ, और अब मैं अपने नियंत्रक के भीतर क्या करने जा रहा हूँ बजाय कह का अब है, "नियंत्रक फैली" मैं ", Controller_Template फैली", कहने जा रहा हूँ बजाय कह की और अब, "प्रतिक्रिया शरीर, यह देखने के लिए बराबर है" मैं कहने जा रहा हूँ "इस टेम्पलेट सामग्री है -" और मुझे लगता है - मैं एक बराबर चिह्न रखा है? मैं भूल जाते हैं. हाँ, मुझे ऐसा लगा. और अब मैं सामग्री चर देखने के बराबर है कि निर्धारित किया है. मैं यहाँ भी ऐसा ही कर सकते हैं. मैं ताज़ा और अगर अब, आप, इस Copyright वहाँ गयी है अब देख सकते हैं और अभी कुछ यादृच्छिक पोस्ट बनाने, और फिर, फिर से, आप कॉपीराइट पृष्ठ के बहुत नीचे है कि देखना चाहिए. ग्रेट. यही कारण है कि मैं तुम लोगों को दिखाने के लिए चाहता था. [तालियाँ] कोई सवाल? [CS50.TV]