1 00:00:00,000 --> 00:00:02,150 >> [ندوة] [Kohana: إطار PHP خفيفة الوزن] 2 00:00:02,150 --> 00:00:04,000 [براندون ليو] [جامعة هارفارد] 3 00:00:04,000 --> 00:00:07,270 [هذا CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 مرحبا >> الجميع. اسمي براندون. 5 00:00:09,130 --> 00:00:11,000 أنا هنا المبتدئين في الكلية القيام علوم الكمبيوتر، واليوم نحن بصدد الحديث عن 6 00:00:11,000 --> 00:00:14,460 Kohana، وهو إطار تطوير الشبكة PHP. 7 00:00:14,460 --> 00:00:17,260 اليوم ستكون ندوة الترميز الحية، 8 00:00:17,260 --> 00:00:21,000 لذلك أنا في الأساس ذاهب لقضاء 5-10 دقائق شرح ما هو Kohana، 9 00:00:21,000 --> 00:00:25,000 ثم أنا حرفيا ذاهب لبناء بلوق السوبر بسيطة 10 00:00:25,000 --> 00:00:28,570 لك الحق هنا حرفيا من الصفر. 11 00:00:28,570 --> 00:00:32,229 ونحن في طريقنا لتحميل رمز من موقع Kohana، 12 00:00:32,229 --> 00:00:35,000 ونحن في طريقنا للبدء في بناء بلوق، ونأمل انها سوف تكون مفيدة جدا، 13 00:00:35,000 --> 00:00:37,000 لأنك سترى ربما ربما سوف تجعل بعض الأخطاء، 14 00:00:37,000 --> 00:00:39,000 وسترى لي الشفاء منها، 15 00:00:39,000 --> 00:00:42,040 أو سترى بلدي عملية التفكير كما كنت بناء من خلال هذا بلوق، 16 00:00:42,040 --> 00:00:44,000 وفي الوقت نفسه، عليك أيضا الحصول على دراية الإطار نفسه. 17 00:00:44,000 --> 00:00:48,000 نأمل انها سوف تكون ممارسة مفيدة جدا. 18 00:00:48,000 --> 00:00:51,370 >> أولا، ما هو بالضبط الإطار؟ 19 00:00:51,370 --> 00:00:54,000 إذا كنت قد تم اتخاذ CS50 حتى الآن، لم تكن قد عملت حقا مع أي 20 00:00:54,000 --> 00:00:56,000 الأطر حتى الآن، والشيء هو هذا. 21 00:00:56,000 --> 00:01:00,000 ربما كنت قد فعلت 1 pset تطوير الشبكة بالفعل، 22 00:01:00,000 --> 00:01:03,000 ودعونا نقول لكم الاستمرار في بناء المواقع والحفاظ على بناء المواقع. 23 00:01:03,000 --> 00:01:05,000 عليك أن تبدأ لاحظت وجود عدد قليل من الأشياء. 24 00:01:05,000 --> 00:01:07,000 أول شيء ستلاحظ هو أنك ربما تفعل نفس الأشياء 25 00:01:07,000 --> 00:01:09,150 مرارا وتكرارا في كل وقت، 26 00:01:09,150 --> 00:01:13,000 الأشياء مثل تنظيف البيانات إدخال المستخدم، 27 00:01:13,000 --> 00:01:17,250 أشياء مثل تنظيم الملفات الخاصة بك بطريقة معينة. 28 00:01:17,250 --> 00:01:19,000 الشيء الآخر عليك أيضا ربما لاحظ أن التعليمات البرمجية 29 00:01:19,000 --> 00:01:21,000 قد تبدأ لتصبح جدا، فوضوي للغاية، 30 00:01:21,000 --> 00:01:24,000 وكنت قد ترك الأمر فوضوي وفقط لديهم وقتا عصيبا للغاية الحفاظ عليه، 31 00:01:24,000 --> 00:01:26,000 أو قد تبدأ في تنظيم التعليمات البرمجية الخاصة بك وجعلها وحدات 32 00:01:26,000 --> 00:01:28,510 في بعض الطرق لجعله أكثر تستعصي على الحل. 33 00:01:28,510 --> 00:01:31,020 هذا هو المكان >> أطر الويب جاءت أساسا فيها. 34 00:01:31,020 --> 00:01:33,680 وقال هؤلاء الناس الذين بنوا الكثير من المواقع التي، 35 00:01:33,680 --> 00:01:35,820 "نحن لسنا بحاجة إلى إعادة هذا في كل مرة نبني موقع على شبكة الانترنت." 36 00:01:35,820 --> 00:01:39,050 "لماذا لا يمكننا مجرد تقديم الحزمة التي تفعل كل هذه الأشياء بالنسبة لك 37 00:01:39,050 --> 00:01:41,250 في كل مرة كنت ترغب في بناء موقع على شبكة الانترنت؟ " 38 00:01:41,250 --> 00:01:43,030 وحتى عندما كنت جعل موقع على شبكة الانترنت الجديدة، 39 00:01:43,030 --> 00:01:45,880 عليك التركيز فقط على ما هو بالضبط هذا الموقع خاص عنه. 40 00:01:45,880 --> 00:01:48,630 لا تحتاج لتكرار كل التكوين المختلفة 41 00:01:48,630 --> 00:01:53,070 والفصل بين الرموز ورمز إعادة كتابة 42 00:01:53,070 --> 00:01:56,180 أن يكون لديك كثير من الأحيان إلى القيام به عندما كنت صنع المواقع. 43 00:01:56,180 --> 00:01:59,410 والفكرة هي أن إطارا يسمح لك لكتابة التعليمات البرمجية ذات المستوى العالي 44 00:01:59,410 --> 00:02:01,030 دون الحاجة إلى القلق بشأن التفاصيل ذات المستوى الأدنى. 45 00:02:01,030 --> 00:02:03,670 ثمة تفصيل المستوى الأدنى قد يكون شيء من هذا القبيل 46 00:02:03,670 --> 00:02:07,250 التعامل مع تنظيف البيانات إدخال المستخدم. 47 00:02:07,250 --> 00:02:09,320 هذا شيء يجب أن لا تحتاج حقا ما يدعو للقلق. 48 00:02:09,320 --> 00:02:12,370 يجب التركيز على ما هو تخصيص الويب الخاص بك في الواقع شيء. 49 00:02:12,370 --> 00:02:14,790 أنه يقضي على الكثير من التعليمات البرمجية النمطي. 50 00:02:14,790 --> 00:02:16,640 وهو الهندسة المعمارية للمشروع الخاص بك. 51 00:02:16,640 --> 00:02:18,680 >> الأكثر شعبية واحدة سيكون الموديل عرض وحدة تحكم، 52 00:02:18,680 --> 00:02:20,380 الذي أنا بصدد الحديث عنه في الثانية. 53 00:02:20,380 --> 00:02:22,790 والكثير من الأوقات هذه الأطر تجسد مجموعة من الإجراءات، 54 00:02:22,790 --> 00:02:25,750 قواعد، وأفضل الممارسات لتتمكن من استخدامها 55 00:02:25,750 --> 00:02:28,190 ذلك أنه عند اعتماد إطار الشبكة 56 00:02:28,190 --> 00:02:30,050 لديك لكتابة التعليمات البرمجية بطريقة معينة، 57 00:02:30,050 --> 00:02:32,430 وانها عموما متفق عليه مجموعة من المبادئ 58 00:02:32,430 --> 00:02:34,290 من المجتمع التي هي مقبولة عموما أن يكون 59 00:02:34,290 --> 00:02:36,230 وسيلة جيدة لكتابة التعليمات البرمجية. 60 00:02:36,230 --> 00:02:38,260 يجعل التعليمات البرمجية للصيانة أكثر، أكثر قابلية للاستخدام، 61 00:02:38,260 --> 00:02:40,030 هلم جرا وهكذا دواليك. 62 00:02:40,030 --> 00:02:42,740 وأخيرا، والشيء أريد أن أؤكد حول الأطر 63 00:02:42,740 --> 00:02:45,980 مقابل المكتبات هو هذه الفكرة حول انعكاس عن نطاق السيطرة، والشيء هو هذا. 64 00:02:45,980 --> 00:02:48,430 الفرق بين مكتبة والإطار هو أنه مع مكتبة 65 00:02:48,430 --> 00:02:51,990 كنت لا تزال في كتابة البرنامج الرئيسي، 66 00:02:51,990 --> 00:02:54,460 وكنت نوعا من الاحتجاج المكتبة 67 00:02:54,460 --> 00:02:56,810 ويدعو المكتبة أن تفعل شيئا بالنسبة لك. 68 00:02:56,810 --> 00:02:58,180 الفرق بين المكتبة وإطارا 69 00:02:58,180 --> 00:03:01,620 غير أن الإطار بدأ مع السيطرة، 70 00:03:01,620 --> 00:03:03,260 واستدعاء التعليمات البرمجية الخاصة بك، 71 00:03:03,260 --> 00:03:06,190 لذلك يمكن ان يخطر لك أنها - وهذا هو السبب في انه دعا إطارا - 72 00:03:06,190 --> 00:03:09,700 يوفر إطار هذا الإطار والهيكل لالشفرة الخاصة بك، 73 00:03:09,700 --> 00:03:11,320 وكنت في ملء الثقوب، 74 00:03:11,320 --> 00:03:13,990 وهذا سوف تصبح أكثر وضوحا في الثانية 75 00:03:13,990 --> 00:03:16,670 عندما ترى لي أن أبدأ كتابة التعليمات البرمجية في سياق الإطار. 76 00:03:16,670 --> 00:03:19,130 سترى أنني ملء الفجوات، 77 00:03:19,130 --> 00:03:22,450 والإطار هو نوع من السيطرة على كل قطعة تتحرك، 78 00:03:22,450 --> 00:03:27,420 ولدي لوضع القطع في الأماكن الصحيحة. 79 00:03:27,420 --> 00:03:29,360 >> اليوم ونحن في طريقنا للحديث عن Kohana، 80 00:03:29,360 --> 00:03:31,610 التي هي واحدة من العديد من الأطر PHP. 81 00:03:31,610 --> 00:03:34,550 هناك أطر على شبكة الإنترنت، وهناك منها تقريبا في كل لغة واحدة، 82 00:03:34,550 --> 00:03:38,330 وأنا التقاط Kohana لأن Kohana يمكن القول 83 00:03:38,330 --> 00:03:43,250 والمعترف بها عموما باعتبارها الإطار PHP أسهل لالتقاط. 84 00:03:43,250 --> 00:03:45,940 انها خفيفة الوزن أكثر. 85 00:03:45,940 --> 00:03:48,470 وهناك بعضها الآخر الى ان هناك تأتي مع العديد والعديد من المزيد من الميزات، 86 00:03:48,470 --> 00:03:51,590 لكنها تميل إلى أن تكون أكثر صعوبة لالتقاط. 87 00:03:51,590 --> 00:03:54,920 وأخيرا، يستخدم Kohana بنية MVC. 88 00:03:54,920 --> 00:03:57,780 انها خفيفة الوزن بما فيه الكفاية أن نتمكن من بناء حرفيا مشروع 89 00:03:57,780 --> 00:03:59,620 هنا الحق أمام عينيك، ويمكنك الى حد كبير 90 00:03:59,620 --> 00:04:02,780 اتبع جنبا إلى جنب بسهولة جدا. 91 00:04:02,780 --> 00:04:04,420 >> ما هو بنية MVC؟ 92 00:04:04,420 --> 00:04:06,540 انها تقف على طراز عرض وحدة تحكم، 93 00:04:06,540 --> 00:04:09,560 وربما إذا كنت تعتقد حول رمز كنت قد تم كتابة حتى الآن 94 00:04:09,560 --> 00:04:11,280 لبعض psets تطوير الشبكة الخاصة بك 95 00:04:11,280 --> 00:04:14,710 قد تكون قادرا على رؤية بعض من هذا، ولكن عادة عند بدء الكتابة 96 00:04:14,710 --> 00:04:16,500 تطبيق ويب أكثر تعقيدا، 97 00:04:16,500 --> 00:04:21,209 الانقسام بين هذه القطاعات 3 يصبح أكثر وأكثر وضوحا. 98 00:04:21,209 --> 00:04:26,740 أنا وضعت خارج MVC هنا نوع من مثل كومة، 99 00:04:26,740 --> 00:04:29,920 وغالبا ما سوف تسمع الناس يتحدثون عن أكوام في تطوير الشبكة، و 100 00:04:29,920 --> 00:04:33,760 وهذا هو لتوضيح فكرة أن 101 00:04:33,760 --> 00:04:37,510 كل طبقة، كل مكون يحاول حقا أن التواصل فقط 102 00:04:37,510 --> 00:04:40,750 بين 2 المكونات الأخرى. 103 00:04:40,750 --> 00:04:44,550 شخص ما بالوصول إلى موقع الويب الخاص بك كعميل أو مستعرض. 104 00:04:44,550 --> 00:04:48,870 تفاعلها مع البرنامج من خلال رمز العرض. 105 00:04:48,870 --> 00:04:50,500 يتفاعل رمز عرض مع وحدة تحكم. 106 00:04:50,500 --> 00:04:52,400 يتفاعل مع وحدة تحكم النموذج، 107 00:04:52,400 --> 00:04:55,090 ويتفاعل هذا النموذج مع قاعدة بيانات SQL. 108 00:04:55,090 --> 00:04:59,670 وليس هناك في التنقل بين إذا كنت كتابة التعليمات البرمجية بشكل صحيح. 109 00:04:59,670 --> 00:05:01,670 >> ماذا تفعل هذه الأشياء؟ 110 00:05:01,670 --> 00:05:06,020 هذا النموذج هو في الأساس قطعة من التعليمات البرمجية التي تتعامل مع البيانات الخاصة بك. 111 00:05:06,020 --> 00:05:09,100 أي شيء الذي يتعامل مع قاعدة البيانات الخاصة بك، مع الكائنات التي قمت بتخزينها، 112 00:05:09,100 --> 00:05:11,280 أو استرجاع هذه الكائنات في قاعدة البيانات، 113 00:05:11,280 --> 00:05:13,450 هذا كل ما التعامل معها من قبل النموذج. 114 00:05:13,450 --> 00:05:15,290 ربما لديك الكائنات في قاعدة البيانات الخاصة بك. 115 00:05:15,290 --> 00:05:17,700 نحن ذاهبون الى خلق نموذج لها علاقة مع وظيفة، 116 00:05:17,700 --> 00:05:19,760 لذلك وظيفة قد يكون لها بعض سمات إليها. 117 00:05:19,760 --> 00:05:23,900 قد يكون لديك وظائف حول تخزين تلك الوظائف أو استرجاع المشاركات 118 00:05:23,900 --> 00:05:26,270 أو تصفية المشاركات وهلم جرا وهكذا دواليك، 119 00:05:26,270 --> 00:05:28,880 وهذا كل شيء وهذا ما رمز التعامل معها من قبل النموذج. 120 00:05:28,880 --> 00:05:31,780 وحدة تحكم هو نوع من منطق التطبيق، 121 00:05:31,780 --> 00:05:37,910 والكثير من أشياء مختلفة يمكن أن تذهب في منطق التطبيق. 122 00:05:37,910 --> 00:05:39,790 إذا كنت تتحدث إلى API مختلفة، 123 00:05:39,790 --> 00:05:42,310 التي قد تكون حيث كنت تتعامل مع منطق التطبيق. 124 00:05:42,310 --> 00:05:47,990 إذا كنت تحاول أن يكون لجلب البيانات من نماذج مختلفة متعددة 125 00:05:47,990 --> 00:05:51,540 ويجب أن الجمع بينهما في بعض الطريق، والتي غالبا ما يمكن معالجتها بواسطة وحدة تحكم. 126 00:05:51,540 --> 00:05:53,820 على سبيل المثال، في الفيسبوك، إذا كنت صديق شخص ما، 127 00:05:53,820 --> 00:05:58,500 ثم ربما هذا الفعل من إنشاء تلك العلاقة 128 00:05:58,500 --> 00:06:00,490 ويمكن أن يتم بواسطة وحدة تحكم. 129 00:06:00,490 --> 00:06:04,350 >> وأخيرا، فإن الرأي هو رمز الذي تم توليد ما تراه في الواقع. 130 00:06:04,350 --> 00:06:07,410 هناك الكثير من الأوقات أعتقد في psets CS50 131 00:06:07,410 --> 00:06:10,050 أنها لا تشجع كنت حقا الرجال لفصل هذه الأشياء 3. 132 00:06:10,050 --> 00:06:12,430 عليك ربما يكون هذا، ملف طويل كبيرة حيث في الجزء العلوي 133 00:06:12,430 --> 00:06:15,130 قمت بإجراء بعض الاستعلام SQL وربما القيام ببعض المعالجة 134 00:06:15,130 --> 00:06:17,020 على البيانات التي تم استردادها من قاعدة البيانات، 135 00:06:17,020 --> 00:06:19,370 ثم لديك كل ما تبذلونه من HTML في الجزء السفلي. 136 00:06:19,370 --> 00:06:22,840 وكنت قد تجد أنه عند إنشاء المزيد والمزيد من الصفحات 137 00:06:22,840 --> 00:06:25,790 ان كنت ستكون لدينا بعض التكرار رمز، وأيضا، 138 00:06:25,790 --> 00:06:29,600 الشيء هو الملف الخاص بك يحصل كبيرة حقا وطويلة 139 00:06:29,600 --> 00:06:32,370 ويصبح غير عملي لإدارة. 140 00:06:32,370 --> 00:06:34,500 السبب في ذلك هو MVC يعتبر جيدا 141 00:06:34,500 --> 00:06:36,120 هو لعدد من الأسباب. 142 00:06:36,120 --> 00:06:38,110 أول شيء هو ما يسمى الفصل بين المخاوف 143 00:06:38,110 --> 00:06:40,370 وهو فكرة أنه عندما يكون لديك - 144 00:06:40,370 --> 00:06:43,520 مثالي 1 قطعة من التعليمات البرمجية يجب أن تفعل الشيء 1 ونفعل ذلك بشكل جيد حقا، 145 00:06:43,520 --> 00:06:47,210 ويجب أن لا تجمع بين قطعة من التعليمات البرمجية التي تفعل أشياء متباينة. 146 00:06:47,210 --> 00:06:49,230 على سبيل المثال، عرض رمز ورمز النموذج، 147 00:06:49,230 --> 00:06:51,040 لم يكن لديهم حقا أن تكون ذات صلة. 148 00:06:51,040 --> 00:06:53,290 أنها لا يجب أن تكون في نفس الملفات، وذلك عندما كنت تستطيع، وفصل منها 149 00:06:53,290 --> 00:06:55,300 لذلك فمن السهل للمحافظة عليه. 150 00:06:55,300 --> 00:06:57,130 >> والشيء الآخر هو إعادة استخدام التعليمات البرمجية. 151 00:06:57,130 --> 00:06:59,770 قد تجد نفسك في كتابة استعلام SQL نفس أو القيام 152 00:06:59,770 --> 00:07:03,060 استفسارات المماثلة التي يمكن أن تستخرج في 1 وظيفة، 153 00:07:03,060 --> 00:07:05,440 وهذه هي الفكرة وراء نماذج وحدات التحكم، 154 00:07:05,440 --> 00:07:09,690 وجود لها في وظيفة منفصلة التي يمكن إعادة استخدامها في أماكن مختلفة في المشروع. 155 00:07:09,690 --> 00:07:12,420 وأخيرا، وهذا مرتبط تجفيف التعليمات البرمجية الخاصة بك، 156 00:07:12,420 --> 00:07:14,700 أو عدم تكرار نفسك، لا تكرر نفسك. 157 00:07:14,700 --> 00:07:18,090 هذا هو مفهومة جدا في التنمية. 158 00:07:18,090 --> 00:07:20,110 كلما كنت تستطيع، وأنت لا تريد أن تكرر نفسك، لأنك إذا تكرر نفسك، 159 00:07:20,760 --> 00:07:23,400  انها أكثر من ذلك بكثير مكلفة للمحافظة عليه. 160 00:07:23,400 --> 00:07:26,040 إذا كنت ترغب في تغيير شيء 1، لديك لتغييره في كل مكان، 161 00:07:26,040 --> 00:07:30,230 والذي يؤدي إلى الخلل، وانها رهيبة. 162 00:07:30,230 --> 00:07:32,010 >> حسنا. 163 00:07:32,010 --> 00:07:37,270 أي أسئلة حتى الآن حول Kohana على الإطلاق؟ 164 00:07:37,270 --> 00:07:39,200 عظيم. 165 00:07:39,200 --> 00:07:42,300 الآن ونحن في طريقنا ليغوص في الدورة الترميز الحية، 166 00:07:42,300 --> 00:07:48,050 ونأمل أن كل شيء على ما يرام. 167 00:07:57,200 --> 00:08:00,050 وانا ذاهب لبناء الأساس هذا الموقع 168 00:08:00,050 --> 00:08:03,910 على واحدة من بلدي خدمة المناطق النائية، وبهذه الطريقة يمكنك أيضا الرجال 169 00:08:03,910 --> 00:08:06,310 انظر موقع والوصول إلى شبكة الإنترنت، 170 00:08:06,310 --> 00:08:10,990 وكذلك البيئة الأفضل مكون من بلدي الجهاز البعيد، 171 00:08:10,990 --> 00:08:14,580 لأنه بدلا من تشغيل لينكس OS X. 172 00:08:14,580 --> 00:08:16,260 نحن حرفيا سوف تبدأ. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 انا ذاهب الى تحميل الكود من الموقع. 175 00:08:21,350 --> 00:08:24,610 أنا ذاهب لنسخ عنوان الرابط، 176 00:08:24,610 --> 00:08:29,770 تذهب لخدمة بلدي، تحميل البرنامج، 177 00:08:29,770 --> 00:08:33,000 وانا ذاهب لاستخراجها. 178 00:08:38,330 --> 00:08:45,710 >> [طالب] ما هو أكبر يمكنك جعل النص؟ 179 00:08:45,710 --> 00:08:47,330 [براندون ليو] هل هذا أفضل؟ 180 00:08:47,330 --> 00:08:50,070 [طالب] هل هذا قابل للتحقيق؟ >> [براندون ليو] نعم، هذا شيء طيب. 181 00:08:50,070 --> 00:08:54,500 أنا تحميل ملف مضغوط وذلك في محلول دليل يسمى Kohana، 182 00:08:54,500 --> 00:08:58,820 ونحن في طريقنا لإعادة تسمية هذا CS50-Kohana، 183 00:08:58,820 --> 00:09:01,140 ودعونا نذهب فيها. 184 00:09:01,140 --> 00:09:03,610 رهيبة. 185 00:09:03,610 --> 00:09:06,870 هنا تشاهد مجموعة من الملفات المختلفة. 186 00:09:06,870 --> 00:09:10,140 معظم يمكنك تجاهل - نحن لسنا ستذهب من خلال ملف واحد كل هذا هنا 187 00:09:10,140 --> 00:09:13,130 بسبب ضيق الوقت لدينا، 188 00:09:13,130 --> 00:09:16,310 ولكن بصفة عامة عند تثبيت Kohana، فإن أول شيء تفعله 189 00:09:16,310 --> 00:09:23,210 وتذهب إلى الدليل، 190 00:09:23,210 --> 00:09:26,050 وعليك أن تفعل في الأساس بعض الاختبارات البيئة وغيرها 191 00:09:26,050 --> 00:09:28,640 للتأكد من تعيين بشكل صحيح البيئة لتشغيل Kohana 192 00:09:28,640 --> 00:09:31,450 وتأكد من أن كل شيء على ما يرام. 193 00:09:31,450 --> 00:09:35,510 يمكنك ان ترى معظم الأشياء مرت، ولكن عموما تشغيل دائما في هذه المشكلة 1 194 00:09:35,510 --> 00:09:38,180 حيث يشكو من أن بعض الدليل غير قابل للكتابة، 195 00:09:38,180 --> 00:09:40,410 وذلك لأن بعض الأذونات. 196 00:09:40,410 --> 00:09:43,080 أنا لا أعرف كم تعلمت يا رفاق حول أذونات الملف في CS50، 197 00:09:43,080 --> 00:09:47,920 لكن اذا كنت تفعل وتطوير الشبكة، وأنت تسير لتصل الى هذه المسألة كثيرا. 198 00:09:47,920 --> 00:09:58,340 أنا ذاهب لجعله قابل للكتابة 199 00:09:58,340 --> 00:10:03,390 وأعتقد أن لدي أيضا ل- هناك نذهب. 200 00:10:03,390 --> 00:10:07,040 >> حسنا، لذلك الآن يمكنك ان ترى كل شيء مرت، 201 00:10:07,040 --> 00:10:10,000 والآن وسوف اقول لكم لإعادة تسمية الملف install.php. 202 00:10:10,000 --> 00:10:15,630 انا ذاهب الى نقل الملف install.php لinstalled.php، 203 00:10:15,630 --> 00:10:19,610 والآن إذا كنت تحديث، 204 00:10:19,610 --> 00:10:22,810 انه يعطيني بعض الخطأ، وهذا هو المكان الذي يأتي التصحيح فيها. 205 00:10:22,810 --> 00:10:25,610 هذا هو المكان الذي يمكن أن نرى ما يحدث في الواقع أن يحدث. 206 00:10:25,610 --> 00:10:28,460 الشيء هو، بشكل افتراضي، يفترض أن Kohana 207 00:10:28,460 --> 00:10:31,480 مشروعك هو في الدليل الجذر من المجال الخاص بك، 208 00:10:31,480 --> 00:10:35,920 حتى انها تتوقع منك أن تكون في demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 علينا أن نقول أن ذلك في الواقع في مجلد فرعي. 210 00:10:37,540 --> 00:10:39,820 انها في مجلد فرعي يسمى CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 الشيء هو، انها إساءة تفسير CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 كما شيء آخر، وأنا سوف أشرح لك في الثانية. 213 00:10:45,680 --> 00:10:49,910 ولكن أود أن أقول لكم أن هذا شيء متوقع. 214 00:10:49,910 --> 00:10:53,700 ما نحن بصدد القيام به هو أننا ذاهبون للذهاب إلى هذا المجلد دعا bootstrap.php، 215 00:10:53,700 --> 00:10:59,260 وهو المجلد التكوين حيث يتم تعيين الكثير من أشياء مختلفة تصل. 216 00:10:59,260 --> 00:11:01,570 أنا فتح ان ما يصل. 217 00:11:01,570 --> 00:11:09,790 ثم ربما واحدة من أول الأشياء التي سوف القيام به هو تغيير المنطقة الزمنية. 218 00:11:09,790 --> 00:11:13,910 >> ثم دعونا نرى. 219 00:11:13,910 --> 00:11:15,180 آها! الحق هنا. 220 00:11:15,180 --> 00:11:18,690 هناك حفنة من أقوال مختلفة في التكوين هنا، 221 00:11:18,690 --> 00:11:21,700 ولكن واحدة أنا أبحث عن هذا الشيء يسمى URL قاعدة، 222 00:11:21,700 --> 00:11:24,570 وافتراضيا أحصل عليه لتعيين Kohana، 223 00:11:24,570 --> 00:11:29,020 ولكن انا ذاهب الى تغيير ذلك إلى CS50-Kohana، 224 00:11:29,020 --> 00:11:32,880 وأعتقد أنه ينبغي إصلاحه. 225 00:11:32,880 --> 00:11:34,150 نعم، عظيم. 226 00:11:34,150 --> 00:11:39,530 افتراضيا، لمعرفة أنه يعمل، فإنه يقول: "مرحبا العالم". 227 00:11:39,530 --> 00:11:42,930 أين التي تأتي من؟ كيف أننا لم نصل الى مرحبا العالم؟ 228 00:11:42,930 --> 00:11:47,640 هو المكان بالضبط الرمز الذي كتب فعلا ذلك؟ 229 00:11:47,640 --> 00:11:50,240 لفهم ذلك، وأنا أعرض هذا المفهوم يسمى التوجيه. 230 00:11:50,240 --> 00:11:52,590 الى حد كبير كل الأطر شبكة الإنترنت لديها مفهوم يسمى التوجيه، 231 00:11:52,590 --> 00:11:57,230 وهو قطعة من البرمجيات التي من شأنها أن تعيين URL معينة 232 00:11:57,230 --> 00:12:01,550 لقطعة معينة من التعليمات البرمجية ضمن إطار الخاص بك. 233 00:12:01,550 --> 00:12:07,510 على سبيل المثال، إذا كان لديك بعض URL وتذهب إلى بعض URL مثل foo.com / بلوق / جميع 234 00:12:07,510 --> 00:12:11,170 ثم ما الإطار يجري القيام به - أو على الأقل ما Kohana يجري القيام به - 235 00:12:11,170 --> 00:12:15,540 وانها سوف تجد فئة تسمى تحكم بلوق، 236 00:12:15,540 --> 00:12:18,720 وانها تسير لتشغيل دالة باسم العمل الإطلاق. 237 00:12:18,720 --> 00:12:20,160 أعرف أنني أتحدث عن فئة وظائف، 238 00:12:20,160 --> 00:12:23,860 وأنا أعلم لم تشملها يا رفاق الطبقات وظائف 239 00:12:23,860 --> 00:12:26,470 في CS50 بعد، ولكن في الوقت الراهن، 240 00:12:26,470 --> 00:12:29,800 يمكنك التفكير في الطبقات على أنها مجرد مجموعة من الوظائف، 241 00:12:29,800 --> 00:12:32,900 وسيلة لتجميع وظائف معا. 242 00:12:32,900 --> 00:12:37,690 هذا هو حقا كل ما تحتاج إلى معرفته. 243 00:12:37,690 --> 00:12:43,120 >> الآن إذا نظرنا إلى بنية المجلد لدينا، 244 00:12:43,120 --> 00:12:47,110 داخل مجلد التطبيق هناك مجلد آخر يسمى الطبقات، 245 00:12:47,110 --> 00:12:49,200 وتسمى المجلدات الأخرى المراقب المالي والنموذجي. 246 00:12:49,200 --> 00:12:52,530 اذا نظرتم داخل مجلد المراقب المالي، 247 00:12:52,530 --> 00:12:56,330 ونحن نرى أن هناك ملف يسمى أهلا، 248 00:12:56,330 --> 00:13:00,370 ويمكنك أن ترى هنا هي فئة دعا المراقب أهلا، 249 00:13:00,370 --> 00:13:02,340 وهناك وظيفة تسمى مؤشر العمل، 250 00:13:02,340 --> 00:13:06,360 وما يفعله هو أنه يضع الجسم من ردكم على مرحبا العالم. 251 00:13:06,360 --> 00:13:08,730 هذا هو المكان الذي يتم كتابة التعليمات البرمجية. 252 00:13:08,730 --> 00:13:11,610 السؤال الآخر هو، حسنا، أنا لم أذهب ل 253 00:13:11,610 --> 00:13:13,680 كذا وكذا وكذا و/ ترحيب / مؤشر. 254 00:13:13,680 --> 00:13:16,250 كيف أنا في نهاية المطاف هنا؟ 255 00:13:16,250 --> 00:13:20,410 حسنا، هذا ببساطة لأن 256 00:13:20,410 --> 00:13:22,410 هنا في الجزء السفلي من ملف التمهيد لدينا 257 00:13:22,410 --> 00:13:24,550 حيث وضعنا لدينا طرق 258 00:13:24,550 --> 00:13:26,570 يمكنك أن ترى أن وضعوا بعض الافتراضات بالنسبة لك. 259 00:13:26,570 --> 00:13:28,990 وحدة تحكم الافتراضي هو موضع ترحيب. الإجراء الافتراضي هو مؤشر. 260 00:13:28,990 --> 00:13:31,600 لهذا السبب عندما نضع شيئا في وجود ذهب تلقائيا إلى وحدة تحكم أهلا 261 00:13:31,600 --> 00:13:33,940 ومؤشر العمل. 262 00:13:33,940 --> 00:13:37,460 >> كل شيء معنى حتى الآن؟ 263 00:13:37,460 --> 00:13:40,850 الآن، يمكنك أن تفعل أكثر من مجرد الذهاب إلى وحدة تحكم 264 00:13:40,850 --> 00:13:43,670 وإجراءات محددة. 265 00:13:43,670 --> 00:13:48,480 يمكنك أيضا تمرير في المعلمات إلى وحدة تحكم. 266 00:13:48,480 --> 00:13:56,390 فقط كمثال، 267 00:13:56,390 --> 00:14:04,070 انا ذاهب لإضافة إجراء آخر إلى وحدة التحكم هذه لتظهر لك. 268 00:14:04,070 --> 00:14:09,130 دعونا نسمي هذا الإجراء Echo، لأنه ذاهب لاقول لكم كل ما تعطيه، 269 00:14:09,130 --> 00:14:17,510 وحتى وأنا في الأساس ذاهب الى انتزاع 270 00:14:17,510 --> 00:14:20,960 معلمة أن يحدث ليتم إرسالها عبر لي لبرنامج التوجيه، 271 00:14:20,960 --> 00:14:24,440 وكما ترون هنا، 272 00:14:24,440 --> 00:14:28,440 هذا الخط هنا، يمكنك أن ترى أن 273 00:14:28,440 --> 00:14:31,270 وهذا يعني في الأساس أن يكون لديك وحدة تحكم، وكان لديك /، 274 00:14:31,270 --> 00:14:33,480 وكان لديك عمل، وكان لديك آخر /، 275 00:14:33,480 --> 00:14:39,140 والتي ستكون المعلمات، ولأن لدينا هذا الرقم اسم 276 00:14:39,140 --> 00:14:42,450 بين قوسين زاوية، وهذا يعني أننا تسمية هذا معرف المعلمة. 277 00:14:42,450 --> 00:14:45,490 في وقت لاحق في التعليمات البرمجية تحكم بلدي إذا أريد لانتزاع عقد من تلك المعلمة، 278 00:14:45,490 --> 00:14:51,790 يمكنني استخدام رمز كتبت، والعثور على المعلمة اسمه معرف. 279 00:14:51,790 --> 00:14:59,290 وهذا ما فعلته هنا، وانا ذاهب الى العودة وأقول، 280 00:14:59,290 --> 00:15:07,090 "قلت" ذلك. 281 00:15:07,090 --> 00:15:10,760 وحتى الآن إذا ذهبت إلى موقعنا، 282 00:15:10,760 --> 00:15:19,550 أذهب إلى cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 أوه، هذا صحيح. 284 00:15:21,420 --> 00:15:23,930 هناك 1 خطوة تركت خارجا. 285 00:15:23,930 --> 00:15:27,020 هذا هو جزء من فكرة الترميز الحية. 286 00:15:27,020 --> 00:15:36,100 هنا >> 1 الشيء. دعونا نرى. 287 00:15:36,100 --> 00:15:38,870 لذلك عادة بشكل افتراضي مع الكثير من هذه التطبيقات على شبكة الإنترنت 288 00:15:38,870 --> 00:15:42,820 لديك لتضمين هذا الشيء index.php في URL الخاص بك، 289 00:15:42,820 --> 00:15:46,410 لأن الفكرة هي index.php نوع من نقطة الدخول 290 00:15:46,410 --> 00:15:48,250 التطبيق الخاص بك، ولكن بطبيعة الحال، 291 00:15:48,250 --> 00:15:50,110 وهذا نوع من مزعج لديهم. 292 00:15:50,110 --> 00:15:53,790 كنت لا تريد أن يكون index.php تظهر في URL الخاص بك، 293 00:15:53,790 --> 00:15:56,080 والى حد كبير كل إطار على شبكة الإنترنت من خارج منطقة الجزاء 294 00:15:56,080 --> 00:15:58,440 لديه هذه المشكلة index.php، 295 00:15:58,440 --> 00:16:03,370 وحتى يكون لديك لاتخاذ بعض التدابير لتكون قادرة على إزالة ذلك. 296 00:16:03,370 --> 00:16:07,540 وحتى في هذه الحالة، 297 00:16:07,540 --> 00:16:11,450 ما نحن بصدد القيام به هو أننا ذاهبون إلى استخدام ملف يسمى. هتكس، 298 00:16:11,450 --> 00:16:13,900 وهذا هو الشيء الذي هو محددة لخادم الويب Apache، 299 00:16:13,900 --> 00:16:16,290 وأنها يمكن أن تفعل أشياء مثل إعادة كتابة عناوين المواقع 300 00:16:16,290 --> 00:16:19,350 وإعادة توجيه عناوين المواقع وهلم جرا وهكذا دواليك، 301 00:16:19,350 --> 00:16:24,280 وKohana جميلة بما يكفي لتوفير قالب ملف htaccess التي يمكننا استخدامها. 302 00:16:24,280 --> 00:16:28,300 >> كما ترون، هناك ملف يسمى هناك example.htaccess، 303 00:16:28,300 --> 00:16:33,410 ونحن في طريقنا للنسخ التي ل. هتكس. 304 00:16:33,410 --> 00:16:36,950 أنا ذاهب لفتح هذا وتحريره، 305 00:16:36,950 --> 00:16:40,840 وأساسا فإنه لا حفنة من الاشياء المختلفة. 306 00:16:40,840 --> 00:16:45,320 خط المفتاح الذي قد ترغب في النظر في الحق هو هنا. 307 00:16:45,320 --> 00:16:49,840 والفكرة هي أن هذا يضع قاعدة تقول، 308 00:16:49,840 --> 00:16:56,400 "حسنا، كل ما كنت اكتب في، prepend index.php لذلك." 309 00:16:56,400 --> 00:16:58,710 يمكنك أن ترى ذلك. 310 00:16:58,710 --> 00:17:00,370 و. * تقف على أي شيء، أي شيء يطابق، 311 00:17:00,370 --> 00:17:03,300 ثم الجزء الثاني هو index.php / $ 0، 312 00:17:03,300 --> 00:17:07,410 و$ 0 يشير إلى ما كان يقابل من قبل. 313 00:17:07,410 --> 00:17:09,500 فهل هذا يعقل؟ 314 00:17:09,500 --> 00:17:12,190 ولكن الشيء الرئيسي حقا أريد تغيير هو تغيير هذه القاعدة إعادة كتابة، 315 00:17:12,190 --> 00:17:14,300 والذي هو قاعدة URL. 316 00:17:14,300 --> 00:17:17,780 انها نوع من يفترض حيث كنت تعمل من. 317 00:17:17,780 --> 00:17:22,560 انا ذاهب لإضافة CS50 Kohana إلى ذلك، 318 00:17:22,560 --> 00:17:26,530 وبهذه الطريقة الآن إذا كنت إزالة index.php، 319 00:17:26,530 --> 00:17:32,110 ينبغي لها أن تعمل، وانا ذاهب لإضافة بعض الأرقام 320 00:17:32,110 --> 00:17:36,380 لتظهر لك أن فعلت في الواقع العمل. 321 00:17:36,380 --> 00:17:38,130 يبدو جيدا. 322 00:17:38,130 --> 00:17:40,260 >> أي أسئلة حتى الآن؟ 323 00:17:40,260 --> 00:17:42,300 [طالب] كيف تعرف ذلك لجعل 123؟ 324 00:17:42,300 --> 00:17:44,120 غير أن حجة؟ 325 00:17:44,120 --> 00:17:46,560 بالضبط. يمكنك التفكير في الأمر تماما مثل حجة. 326 00:17:46,560 --> 00:17:52,410 ولكن شيء غريب، رغم ذلك، هو أن الطريقة Kohana يفعل ذلك 327 00:17:52,410 --> 00:17:54,910 وأنها لا تفعل ذلك بالضبط مثل حجة. 328 00:17:54,910 --> 00:17:56,930 لديك للاستيلاء عليها من هذا القبيل. 329 00:17:56,930 --> 00:18:01,030 لديك للاستيلاء على وجوه الطلب وطلب المعلمة وهذا ما يسمى ID، 330 00:18:01,030 --> 00:18:03,240 وأن معرف اسم يأتي من أن ملف التمهيد 331 00:18:03,240 --> 00:18:06,990 التي عرضتها في وقت سابق، وكان اسم معرف في تلك أقواس زاوية، 332 00:18:06,990 --> 00:18:11,580 وهذه هي الطريقة التي كنت انتزاع تلك المعلمات. 333 00:18:11,580 --> 00:18:14,010 رهيبة. 334 00:18:14,010 --> 00:18:17,550 أي أسئلة أخرى؟ 335 00:18:17,550 --> 00:18:20,500 كما قلت، وأجهزة التحكم، والتعامل مع منطق التطبيق، 336 00:18:20,500 --> 00:18:22,980 ولهذا المثال 1 حيث يمكنك رؤية ذلك - 337 00:18:22,980 --> 00:18:24,830 أنها أساسية جدا، لكنه ما زال منطق التطبيق، 338 00:18:24,830 --> 00:18:27,980 فكرة الاستيلاء على المعلمة وإنشاء سلسلة جديدة 339 00:18:27,980 --> 00:18:31,920 الذي يقول: "قلت بلاه"، ومن ثم البصق أن يعود لك. 340 00:18:31,920 --> 00:18:34,030 وعموما ما عليك فعله هو لك إنشاء وحدات تحكم مختلفة. 341 00:18:34,030 --> 00:18:36,450 يمكنك إنشاء وحدات تحكم منفصلة لأجزاء مختلفة من موقع الويب الخاص بك. 342 00:18:36,450 --> 00:18:38,160 >> اليوم ونحن في طريقنا لجعل موقع على شبكة الانترنت بسيطة جدا، 343 00:18:38,160 --> 00:18:40,420 وانها ستكون بلوق أساسية جدا. 344 00:18:40,420 --> 00:18:43,780 ونحن في طريقنا لجعل وحدة تحكم جديدة لمجرد وظيفة في بلوق. 345 00:18:43,780 --> 00:18:47,060 ولكن بعد ذلك إذا كان لي أن أضيف أيضا تعليقات إلى بلوق وظيفة، 346 00:18:47,060 --> 00:18:50,140 ثم أود أن ربما تريد أن تجعل من وحدة تحكم جديدة لتلك التعليقات. 347 00:18:50,140 --> 00:18:53,380 إذا كنت أريد أن أضيف المستخدمين، وأود أن ربما إضافة وحدة تحكم جديدة لهؤلاء المستخدمين، 348 00:18:53,380 --> 00:18:57,000 وبشكل عام، والفكرة هي أنه كلما كان لديك نموذج جديد، 349 00:18:57,000 --> 00:18:59,630 كائن البيانات الجديدة التي كنت تتعامل معها، 350 00:18:59,630 --> 00:19:02,970 لديك وحدة تحكم واحدة لهذا الكائن البيانات. 351 00:19:02,970 --> 00:19:04,370 اليوم ونحن في طريقنا فقط للعمل مع كائن البيانات 1، 352 00:19:04,370 --> 00:19:06,250 والتي ستكون وظيفة، 353 00:19:06,250 --> 00:19:08,710 وأيضا يمكن أن تفكر في الأشياء البيانات كما الموافق الجداول. 354 00:19:08,710 --> 00:19:12,160 عموما يتوافق كل جدول إلى 1 نوع الكائن البيانات، 355 00:19:12,160 --> 00:19:15,160 وبالتالي فإن جدول آخر سوف يكون 1 نموذج آخر، 356 00:19:15,160 --> 00:19:18,230 والتي سيكون لها 1 تحكم آخر في المقابل الى ان، 357 00:19:18,230 --> 00:19:22,190 والشيء نفسه بالنسبة لتعليق، نفس الشيء بالنسبة للمستخدمين، وهلم جرا وهكذا دواليك. 358 00:19:22,190 --> 00:19:24,070 وهذا كقاعدة عامة من الإبهام. 359 00:19:24,070 --> 00:19:27,460 هناك ستكون حالات خاصة حيث قد تختلف عن ذلك، 360 00:19:27,460 --> 00:19:29,300 ولكن 90٪ من الوقت وهذا ما كنت تريد الذهاب الى ما تقوم به، 361 00:19:29,300 --> 00:19:32,810 وسأريكم هذا ما نحن ذاهبون الى ما تقوم به اليوم. 362 00:19:32,810 --> 00:19:35,490 1 أكثر مفهوم قبل أن يغوص مرة أخرى إلى رمز، 363 00:19:35,490 --> 00:19:37,710 هذه الفكرة من كائن تعيين العلائقية. 364 00:19:37,710 --> 00:19:41,200 >> يا رفاق قد فعلت بالفعل pset تطوير الشبكة، 365 00:19:41,200 --> 00:19:43,820 وكنت قد رأيت أن إجراء استعلام SQL، 366 00:19:43,820 --> 00:19:46,510 وأيا كان فإنه يعود إلى أنك الصفوف. 367 00:19:46,510 --> 00:19:50,040 تحصل هذه الصفوف، وكنت فهرستها من قبل بعض الاسم، 368 00:19:50,040 --> 00:19:55,480 اسم العمود والجدول، 369 00:19:55,480 --> 00:19:57,630 وهذه هي الطريقة التي كنت تعمل معها، 370 00:19:57,630 --> 00:19:59,290 ويمكن أن تكون مرهقة بعض الشيء. 371 00:19:59,290 --> 00:20:01,810 ولكن علاوة على ذلك، إذا كان لديك علاقات داخل قاعدة البيانات الخاصة بك، 372 00:20:01,810 --> 00:20:05,280 مثل على سبيل المثال إذا كان لدي تعليقات والمشاركات، 373 00:20:05,280 --> 00:20:11,240 ثم ربما أريد للاستيلاء على آخر الأم لتعليق. 374 00:20:11,240 --> 00:20:14,350 إذا كنت تستخدم فقط في الصفوف SQL، ثم كل ما يمكن أن تحصل عليه هو معرف 375 00:20:14,350 --> 00:20:19,310 وظيفة الأم وليس آخر الفعلية نفسها. 376 00:20:19,310 --> 00:20:21,680 ولكن عندما نقوم الترميز، ما نريد هو في الواقع للاستيلاء على الواقع 377 00:20:21,680 --> 00:20:23,550  الوالد إضافة نفسها في بعض الأحيان. 378 00:20:23,550 --> 00:20:25,730 ما يفعل كائن رسم الخرائط العلائقية و 379 00:20:25,730 --> 00:20:29,480 يستغرق نتائج استعلام قاعدة بيانات 380 00:20:29,480 --> 00:20:32,420 ويضعه في الأشياء بالنسبة لك، والتي هي أجمل بكثير للعمل مع 381 00:20:32,420 --> 00:20:34,770 من صفائف عادي والصفوف. 382 00:20:34,770 --> 00:20:37,550 >> على سبيل المثال، والآن عندما يكون لدي تعليق ربما، 383 00:20:37,550 --> 00:20:40,900 وأريد أن انتزاع آخر الأم، 384 00:20:40,900 --> 00:20:43,440 وأنا لا أعلق ربما السهم آخر، 385 00:20:43,440 --> 00:20:45,230 بعد ذلك سوف تعطيني الواقع الكائن آخر 386 00:20:45,230 --> 00:20:47,940 المقابلة لآخر الفعلي الأم، وليس فقط بعض ID، 387 00:20:47,940 --> 00:20:52,210 الذي أود أن يكون على خلاف ذلك لاستخدام وجعل الاستعلام SQL أخرى للاستيلاء على آخر، 388 00:20:52,210 --> 00:20:57,430 وهو مرهق وغير ضروري. 389 00:20:57,430 --> 00:21:01,840 وعلاوة على ذلك، عن طريق تعيين كل هذه البيانات في الصفوف الكائنات، 390 00:21:01,840 --> 00:21:03,760 يمكنك أيضا إرفاق المزيد من الوظائف إلى الكائنات، 391 00:21:03,760 --> 00:21:09,700 ذلك على سبيل المثال، تحدثت عن كيف الطبقات هي أساسا تجمعات من الوظائف. 392 00:21:09,700 --> 00:21:11,620 يمكنك التفكير في الأمر من هذا القبيل. 393 00:21:11,620 --> 00:21:15,290 على سبيل المثال، ربما لدي هذا الكائن آخر، 394 00:21:15,290 --> 00:21:17,830 وربما أود أن يكون نوعا من وظيفة مرفقة به 395 00:21:17,830 --> 00:21:20,300 أن يقول لي كان في الأساس أن سجلت في الآونة الأخيرة؟ 396 00:21:20,300 --> 00:21:23,570 وكان أن سجلت خلال الأسبوع الماضي، صحيحة أو خاطئة؟ 397 00:21:23,570 --> 00:21:27,320 وهذا هو وظيفة أستطيع أن نعلق على هذا الكائن، 398 00:21:27,320 --> 00:21:31,300 وانها مريحة حقا أن يكون ذلك في نفس المكان، 399 00:21:31,300 --> 00:21:33,820 وهناك مجموعة كبيرة من الوظائف المختلفة التي يمكن أن تخلق 400 00:21:33,820 --> 00:21:37,990 لهذه الكائنات، وأنه من الجيد حقا أن تكون قادرا على إرفاقه إلى فئة، 401 00:21:37,990 --> 00:21:41,700 إلى كائن، في حين إذا كان لديك فقط الصفوف قادمة من قاعدة البيانات الخاصة بك، 402 00:21:41,700 --> 00:21:43,790 ثم لا يمكن أن نعلق حقا أي وظيفة لذلك. 403 00:21:43,790 --> 00:21:47,850 انها حرفيا البيانات فقط. 404 00:21:47,850 --> 00:21:50,550 أي أسئلة حول ذلك على الإطلاق؟ 405 00:21:50,550 --> 00:21:52,710 ORMs هي تطوير الشبكة شائعة جدا، 406 00:21:52,710 --> 00:21:56,330 وهناك الكثير من أنواع مختلفة من ORMs، 407 00:21:56,330 --> 00:21:58,450 وKohana ديه مكتب إدارة السجلات الخاصة بها. 408 00:21:58,450 --> 00:22:05,050 أنها أساسية جدا، ولكن عليك الحصول على طعم ما يبدو. 409 00:22:05,050 --> 00:22:08,780 >> دعونا خلق نموذج لبلوق وظيفة لدينا، 410 00:22:08,780 --> 00:22:12,350 وأول شيء يتعين علينا القيام به هو الواضح لإنشاء جدول الفعلية 411 00:22:12,350 --> 00:22:16,680 ضمن قاعدة البيانات الخاصة بنا لتخزين البيانات في الواقع لدينا لتلك الوظائف. 412 00:22:16,680 --> 00:22:19,260 أول شيء أنا بصدد القيام به هو الذهاب الى بريس. 413 00:22:19,260 --> 00:22:21,410 هل الرجال تستخدم بريس من قبل؟ 414 00:22:21,410 --> 00:22:23,400 حسنا، رهيبة، لذلك يا رفاق نعرف ما هي، 415 00:22:23,400 --> 00:22:32,200 وانا ذاهب لإنشاء جدول جديد يسمى Kohana المشاركات، 416 00:22:32,200 --> 00:22:37,820 وانها سوف تكون بسيطة حقا. 417 00:22:37,820 --> 00:22:40,190 سآخذ لتسجيل الدخول تكبير الخريطة. 418 00:23:02,620 --> 00:23:04,640 كل ما كنت تنوي القيام به اليوم هو أن يكون مؤلف والجسم، 419 00:23:04,640 --> 00:23:11,930 فقط يبقيه بسيط. 420 00:23:11,930 --> 00:23:15,620 أنا ذاهب لخلق هذا الجدول، 421 00:23:15,620 --> 00:23:19,620 والآن لدينا فقط الجدول يمثل مراكزنا 422 00:23:19,620 --> 00:23:23,370 مع 2 المجالات لكاتبنا وجسمنا. 423 00:23:23,370 --> 00:23:26,290 الشيء الآخر وانا ذاهب الى القيام به الآن هو 424 00:23:26,290 --> 00:23:29,820 تكوين تطبيق الويب الخاص بي لذلك يعرف كيفية الاتصال إلى قاعدة البيانات، 425 00:23:29,820 --> 00:23:31,950 وهذا، مرة أخرى، هو الشيء الذي عليك أن تفعل مع جميع تطبيقات الويب. 426 00:23:31,950 --> 00:23:34,790 عليك أن أقول ذلك اسم المستخدم وكلمة المرور 427 00:23:34,790 --> 00:23:36,990 واسم قاعدة البيانات وهلم جرا وهكذا دواليك 428 00:23:36,990 --> 00:23:40,000 لمعرفة كيفية الاتصال فعليا إلى قاعدة البيانات الخاصة بك. 429 00:23:40,000 --> 00:23:58,710 وفي Kohana >>، لدينا ما يسمى وحدة قاعدة البيانات، 430 00:23:58,710 --> 00:24:02,690 وفي المجلد التكوين لدينا هذا مجلد يسمى قاعدة البيانات، 431 00:24:02,690 --> 00:24:07,330 وكما ترون، هناك مجموعة من الإعدادات لديك لتعيين هنا 432 00:24:07,330 --> 00:24:09,860 ليقولوا ذلك ما هو اسم المستخدم وكلمة المرور 433 00:24:09,860 --> 00:24:13,110 لقاعدة البيانات حتى أتمكن من الاتصال فعلا لذلك. 434 00:24:13,110 --> 00:24:15,010 ومنذ أن كنت لا تريد أن تعرف يا رفاق الواقع 435 00:24:15,010 --> 00:24:17,190 اسم المستخدم وكلمة المرور لقاعدة البيانات الخاصة بي، 436 00:24:17,190 --> 00:24:23,840 لدي ملف حيث كنت بالفعل تعيين كل شيء، وانا ذاهب لنسخ ولصق أكثر من ذلك. 437 00:24:33,080 --> 00:24:36,870 رهيبة. 438 00:24:36,870 --> 00:24:39,880 بخير. أعتقد أن كل التكوين يجب أن أفعل، 439 00:24:39,880 --> 00:24:41,070 ولكن دعونا نرى. 440 00:24:41,070 --> 00:24:43,720 سنستمر في العمل في ذلك، وإذا تعطل شيء ما، 441 00:24:43,720 --> 00:24:47,490 ثم سنقوم بإصلاحه. 442 00:24:47,490 --> 00:24:51,830 الآن ما أنا بصدد القيام به هو أنا ذاهب لإنشاء وحدة تحكم جديدة. 443 00:24:51,830 --> 00:24:53,190 أو في الواقع، آسف. 444 00:24:53,190 --> 00:24:55,080 أولا لا بد لي من خلق نموذج جديد. 445 00:24:55,080 --> 00:25:01,620 أنا خلق نموذج جديد يسمى التدوينة، 446 00:25:01,620 --> 00:25:12,440 وما نحن بصدد القيام به هو أننا ذاهبون إلى نسميها الطبقة Model_Post. 447 00:25:12,440 --> 00:25:15,390 الحصول على بعض على تسليط الضوء على تركيب، 448 00:25:15,390 --> 00:25:19,750 وحتى عندما أقول، "يمتد ORM،" هذا هو الأساس 449 00:25:19,750 --> 00:25:21,210 بعض وجوه المنحى البرمجة أكثر من ذلك، 450 00:25:21,210 --> 00:25:23,340 والتي للأسف لم يتعلموا يا رفاق في CS50 بعد، 451 00:25:23,340 --> 00:25:25,290 ولكن من السهل جدا لالتقاط. 452 00:25:25,290 --> 00:25:27,950 انه يعطيني كل هذه الوظيفة الإضافية التي تأتي في حزمة ORM هذا، 453 00:25:27,950 --> 00:25:31,120 وحتى أحصل على حفنة من وظائف اضافية وغيرها مجانا، 454 00:25:31,120 --> 00:25:34,810 التي سترى قليلا من في الثانية. 455 00:25:34,810 --> 00:25:37,670 الآن >> في الواقع كل ما عليك القيام به هو خلق هذه الفئة. 456 00:25:37,670 --> 00:25:39,160 أنا لا تحتاج حتى لجعل أي وظيفة أو أي شيء، 457 00:25:39,160 --> 00:25:41,770 ولكن لقد خلق فئة التي تمثل الجدول، 458 00:25:41,770 --> 00:25:44,140 ولأن لقد امتدت هذه الفئة ORM، 459 00:25:44,140 --> 00:25:51,080 أنا الحصول على حفنة من الأشياء مجانا، حتى الآن لم يكن لديك لوضع أي شيء أكثر حتى. 460 00:25:51,080 --> 00:25:53,530 والآن ما أنا بصدد القيام به هو أنا ذاهب لإنشاء وحدة تحكم جديدة، 461 00:25:53,530 --> 00:25:58,480 الذي أنا ذاهب لتسمية blog.php، 462 00:25:58,480 --> 00:26:04,350 وانا ذاهب لنسخ أكثر من وحدة تحكم أهلا 463 00:26:04,350 --> 00:26:11,950 لذلك أنا لم يكن لديك إلى إعادة كتابة بعض الاشياء، 464 00:26:11,950 --> 00:26:20,720 والآن لا بد لي من إعادة تسمية هذا. 465 00:26:20,720 --> 00:26:24,710 الآن ما أنا ذاهب الى القيام به لاختبار للتأكد من كل شيء يعمل بها، 466 00:26:24,710 --> 00:26:27,820 أنا ذاهب للاستيلاء على أول وظيفة من قاعدة البيانات الخاصة بي 467 00:26:27,820 --> 00:26:32,680 وطباعة نص آخر على الشاشة. 468 00:26:32,680 --> 00:26:37,920 للقيام بذلك ما انا ذاهب الى القيام به أولا وأنا ذاهب لإنقاذ المشاركات 469 00:26:37,920 --> 00:26:48,770 إلى متغير ما نحن ذاهبون للقيام بذلك هي - 470 00:26:48,770 --> 00:26:52,090 في Kohana ما عليك القيام به هو الاستيلاء على كائن آخر 471 00:26:52,090 --> 00:26:55,380 انها نوع من مرهقة، ولكن عليك أن تفعل هذا الشيء يسمى ORM :: المصنع، 472 00:26:55,380 --> 00:26:57,750 ثم قمت بتمرير في اسم النموذج الذي تريد، 473 00:26:57,750 --> 00:27:00,490 وتقوم بإرجاع كائن ORM الذي يمثل ذلك النموذج. 474 00:27:00,490 --> 00:27:04,860 وبعد ذلك، كما قلت، عندما نتقدم الكائن ORM، 475 00:27:04,860 --> 00:27:07,320 نحصل على جميع هذه الطرق مجانا، وذلك على سبيل المثال، 476 00:27:07,320 --> 00:27:09,200 نحصل على هذه الوظيفة جديدة تسمى "تجد كل شيء،" 477 00:27:09,200 --> 00:27:12,160 الذي تلقائيا بإرجاع كل واحد آخر في قاعدة البيانات، 478 00:27:12,160 --> 00:27:14,850 وهو مناسب جدا. 479 00:27:14,850 --> 00:27:17,480 والآن >> في الجسم أنا ذاهب إلى العودة 480 00:27:17,480 --> 00:27:24,860 أول وظيفة والعودة جسمها. 481 00:27:24,860 --> 00:27:27,930 وبطبيعة الحال، ولست بحاجة لخلق آخر، 482 00:27:27,930 --> 00:27:31,880 لذلك دعونا إدراج وظيفة جديدة. 483 00:27:31,880 --> 00:27:37,870 أنا أقول، "براندون، يا أول وظيفة للغاية." 484 00:27:37,870 --> 00:27:40,010 رهيبة. 485 00:27:40,010 --> 00:27:45,910 والآن ونحن في طريقنا للذهاب إلى بلوق 486 00:27:45,910 --> 00:27:50,960 وإذا كان كل يعمل بشكل جيد - أوه، هذا هو بعض الشيء الآخر إذن ملف البكم مرة أخرى. 487 00:27:50,960 --> 00:27:56,090 عقد في 1 ثانية. انها نوع من السخف. 488 00:28:06,700 --> 00:28:08,490 هناك نذهب. بخير. 489 00:28:08,490 --> 00:28:10,040 أنا ثابت أن المشكلة إذن. 490 00:28:10,040 --> 00:28:12,040 انها تحاول خلق بعض الملفات وبعض السجل، 491 00:28:12,040 --> 00:28:15,400 والأذونات، ومرة ​​أخرى، لم تحدد بشكل صحيح، لذلك أنا جعلت من 492 00:28:15,400 --> 00:28:18,320 لذلك كانت تلك الملفات قابلة للكتابة وقابل للتنفيذ 493 00:28:18,320 --> 00:28:21,090 لذلك يمكن تسجيل الواقع إلى الأشياء. 494 00:28:21,090 --> 00:28:24,220 الآن انها إعطائي القول استثناء آخر، "الطبقة ORM لم يتم العثور على" 495 00:28:24,220 --> 00:28:26,960 وهذا لأنني نسيت خطوة أخرى. 496 00:28:26,960 --> 00:28:37,010 فهذا أمر سيئ جدا. 497 00:28:37,010 --> 00:28:40,270 في ملف مجلد التمهيد، هناك هذه الوحدات هنا، 498 00:28:40,270 --> 00:28:42,480 والتي يمكنك اختيار تمكين أو تعطيل. 499 00:28:42,480 --> 00:28:44,340 هذه هي مجموعة من السمات المختلفة التي يمكنك اختيار استخدام 500 00:28:44,340 --> 00:28:46,180 ضمن Kohana، الذي هو نوع من لطيفة. 501 00:28:46,180 --> 00:28:49,090 >> على سبيل المثال، لديهم وحدة التوثيق 502 00:28:49,090 --> 00:28:51,170 والتي يمكنك استخدامها لمصادقة المستخدمين. 503 00:28:51,170 --> 00:28:53,390 لديهم وحدة التخزين المؤقت إذا كنت ترغب في تنفيذ 504 00:28:53,390 --> 00:28:57,870 نوعا من التخزين المؤقت الخلفي نهاية لجعل عمل التطبيق بشكل أسرع وغيرها. 505 00:28:57,870 --> 00:29:02,140 نحن بحاجة لتمكين قاعدة البيانات وحدة مكتب إدارة السجلات، 506 00:29:02,140 --> 00:29:04,280 لأن كما قلت، نحن باستخدام قاعدة البيانات، من الواضح، 507 00:29:04,280 --> 00:29:08,200 ونحن بحاجة أيضا إلى تمكين الوحدة النمطية ORM، 508 00:29:08,200 --> 00:29:12,220 لأننا نرغب في الحصول على وظائف إضافية، التي هي لطيفة لديهم. 509 00:29:12,220 --> 00:29:14,240 كل ما عليك القيام به هو حرر تلك الخطوط 2، 510 00:29:14,240 --> 00:29:18,760 والآن إذا كنت تحديث، أنه أعطاني خطأ آخر. 511 00:29:18,760 --> 00:29:22,100 تقول، "الفئة Model_Post غير موجود." 512 00:29:22,100 --> 00:29:30,210 الآن هذه مشكلة جيدة لديهم. 513 00:29:30,210 --> 00:29:37,660 دعونا نرى. 514 00:29:37,660 --> 00:29:42,200 جعله العامة. 515 00:29:42,200 --> 00:29:46,450 رقم يصمد. 516 00:30:11,610 --> 00:30:13,160 أوه، يا عزيزي. 517 00:30:13,160 --> 00:30:18,590 أنا لا أعرف لماذا انها ليست قادرة على العثور على ذلك. 518 00:30:18,590 --> 00:30:21,030 هذا غريب حقا. 519 00:30:21,030 --> 00:30:23,820 لدي هذه الفئة هنا. 520 00:30:23,820 --> 00:30:28,650 اعتقد انني قد تضطر الى - اه. 521 00:30:28,650 --> 00:30:32,010 أنا غبية جدا. لقد نسيت أن إضافة علامة PHP. 522 00:30:32,010 --> 00:30:34,670 هذا هو السبب. 523 00:30:34,670 --> 00:30:41,260 الآن لا بد لي من التراجع عن هذا التغيير 1 أنا فقط فعلت. 524 00:30:41,260 --> 00:30:44,270 حسنا >>. هناك نذهب. 525 00:30:44,270 --> 00:30:47,500 كان ذلك سخيفا حقا. لم يكن لدي علامة PHP الافتتاح. 526 00:30:47,500 --> 00:30:49,900 ولكن كما ترون، الآن انها تعمل بشكل صحيح، أليس كذلك؟ 527 00:30:49,900 --> 00:30:51,240 لدينا آخر 1. 528 00:30:51,240 --> 00:30:54,730 ونحن انتزع أول وظيفة، والآن نحن طباعتها جسمها. 529 00:30:54,730 --> 00:30:58,010 عظيم. رائعة. 530 00:30:58,010 --> 00:31:01,470 أي أسئلة حتى الآن؟ 531 00:31:01,470 --> 00:31:04,100 كلا؟ أي أسئلة؟ 532 00:31:04,100 --> 00:31:08,340 حسنا، لذلك أنشأنا مجرد نموذج آخر، أساسية جدا، 533 00:31:08,340 --> 00:31:10,930 ونحن في طريقنا لإضافة بعض الوظائف في وقت لاحق. 534 00:31:10,930 --> 00:31:13,600 ويمكننا أن نضيف التصديقات والتصفية. 535 00:31:13,600 --> 00:31:15,650 التصديقات هي واحدة من الأشياء 536 00:31:15,650 --> 00:31:18,150 أن الأطر يحل لك حقا، وبشكل جيد، 537 00:31:18,150 --> 00:31:21,310 وأنا لا أعتقد أن كان لديك الرجال للقيام بذلك لpset CS50 الخاص بك، 538 00:31:21,310 --> 00:31:24,000 لكن اذا كنت تفعل وتطوير الشبكة لمشروع النهائي الخاص بك، 539 00:31:24,000 --> 00:31:26,280 كنت على الأرجح تريد الذهاب الى القيام ببعض النوع من التحقق من صحة، 540 00:31:26,280 --> 00:31:28,290 مثل عدم وجود أسماء المستخدمين فارغة، 541 00:31:28,290 --> 00:31:31,950 ربما وجود كلمة على الأقل مع بعض طول، وأشياء من هذا القبيل. 542 00:31:31,950 --> 00:31:34,750 وانها مرهقة حقا لتنفيذ هذه الأمور من قبل أنفسنا، 543 00:31:34,750 --> 00:31:37,390 والى حد كبير كل إطار واحد على شبكة الإنترنت يفعل ذلك بالنسبة لك 544 00:31:37,390 --> 00:31:41,140 ويسمح لك أن تفعل ذلك بطريقة نظيفة جدا. 545 00:31:41,140 --> 00:31:44,340 وهذا النموذج هو المكان الذي يعبرون عموما تلك قواعد التحقق من الصحة، 546 00:31:44,340 --> 00:31:48,790 لأنه التحقق من صحة ما إذا كان النموذج هو صحيح أم لا. 547 00:31:48,790 --> 00:31:51,350 >> ولكن الآن، ونحن في طريقنا لوضع ذلك حتى وقت لاحق، 548 00:31:51,350 --> 00:31:53,520 والآن ونحن في طريقنا للعمل على جزء آخر، 549 00:31:53,520 --> 00:31:55,400 ونحن في طريقنا إلى محاولة لجعل طريقة عرض جديدة 550 00:31:55,400 --> 00:31:59,580 يسرد كافة الوظائف. 551 00:31:59,580 --> 00:32:02,490 الخطوات المتبعة في اتخاذ إجراءات جديدة لإدراج جميع الوظائف 552 00:32:02,490 --> 00:32:04,810 هو الاستيلاء على قائمة بجميع الوظائف 553 00:32:04,810 --> 00:32:11,990 ومن ثم تقديم قائمة بجميع الوظائف من خلال طريقة عرض. 554 00:32:11,990 --> 00:32:16,420 الحق هنا، لحسن الحظ ما يكفي، ونحن بالفعل أمسك كل المشاركات 555 00:32:16,420 --> 00:32:20,310 باستخدام هذا السطر الأول، وتجد كل وظيفة، 556 00:32:20,310 --> 00:32:22,520 والآن ما نحن بصدد القيام به حتى الآن 557 00:32:22,520 --> 00:32:25,350 لقد تم وضع مباشرة الجسم للاستجابة 558 00:32:25,350 --> 00:32:29,090 عن طريق تمرير السلسلة، ولكن الآن أريد أن استخدام طريقة عرض، 559 00:32:29,090 --> 00:32:31,870 والفرق بين الرأي والقيام فقط هذا 560 00:32:31,870 --> 00:32:35,330 وبهدف أستطيع أن يكون لطيفا، قالب HTML كبيرة، 561 00:32:35,330 --> 00:32:37,710 وما يمكنني فعله هو تمرير ذلك بعض المتغيرات 562 00:32:37,710 --> 00:32:42,200 ومن ثم فقد رأي ملء القالب به تلقائيا 563 00:32:42,200 --> 00:32:44,690 باستخدام هذه المتغيرات. 564 00:32:44,690 --> 00:32:50,780 ما سأفعل هو أنني سوف إنشاء طريقة عرض جديدة، 565 00:32:50,780 --> 00:32:55,940 وسوف تسمية شيء مثل عرض "بلوق / مؤشر" 566 00:32:55,940 --> 00:33:08,480 وانا ذاهب الى ربط هذا الأساس - أوه، ما أنا أكتب؟ 567 00:33:08,480 --> 00:33:12,910 ذهني هو في مكان آخر. 568 00:33:12,910 --> 00:33:16,600 أنا ذاهب لربط المشاركات متغير إلى طريقة العرض، 569 00:33:16,600 --> 00:33:19,950 ذلك أن الطريقة التي عرض لها الوصول إلى هذا المتغير آخر. 570 00:33:19,950 --> 00:33:26,140 وهكذا >> الان انا بحاجة لخلق وجهة النظر هذه، 571 00:33:26,140 --> 00:33:28,500 حتى هنا لدينا هذا مجلد يسمى "المشاهدات" 572 00:33:28,500 --> 00:33:32,150 وأول، وانا ذاهب لإنشاء مجلد جديد في إطار ذلك دعا "المدونة". 573 00:33:32,150 --> 00:33:35,810 هذا هو لطيف. بهذه الطريقة يمكننا الحصول على التسلسل الهرمي لطيفة لآرائنا. 574 00:33:35,810 --> 00:33:43,910 ثم أنا ذاهب لخلق ملف آخر في هناك يسمى "index.php". 575 00:33:43,910 --> 00:33:45,780 رهيبة. 576 00:33:45,780 --> 00:33:52,930 في الواقع، دعونا يكون لهم سواء هنا. 577 00:33:52,930 --> 00:33:56,760 جعل ملف الرأي هو الأرجح أبسط جزء من كل هذا، 578 00:33:56,760 --> 00:33:59,090 وهذه هي الأشياء ربما كنت بالفعل على دراية. 579 00:33:59,090 --> 00:34:01,240 ونحن في طريقنا للقيام بشيء بسيط حقا، 580 00:34:01,240 --> 00:34:05,360 بدء قائلا: "قائمة بلدي من بلوق وظائف." 581 00:34:05,360 --> 00:34:14,860 ثم يمكننا أن نذهب من خلال، 582 00:34:14,860 --> 00:34:17,920 ويمكننا أن يكرر من خلال المشاركات صفيف، 583 00:34:17,920 --> 00:34:21,760 الاستيلاء على كل وظيفة واحدة وتقول شيئا مثل - 584 00:34:21,760 --> 00:34:25,290 ربما إضافة سطر 585 00:34:25,290 --> 00:34:42,460 ومن ثم طباعة المؤلف والجسم. 586 00:34:42,460 --> 00:34:44,480 أن يكون له معنى حتى الآن؟ 587 00:34:44,480 --> 00:34:50,870 ودعونا نرى ما اذا كان يعمل. 588 00:34:50,870 --> 00:34:53,489 لم يحدث شيء. 589 00:34:53,489 --> 00:34:55,090 وأتساءل لماذا. 590 00:34:55,090 --> 00:34:58,760 أوه، فاتني 1 الخطوة. سخيفة جدا مني. 591 00:34:58,760 --> 00:35:01,640 أنا خلقت وجهة نظر، ولكن لم يتم تعيين طريقة العرض كما الاستجابة، 592 00:35:01,640 --> 00:35:03,190 ولذلك عليك أن تفعل أكثر شيء 1. 593 00:35:03,190 --> 00:35:12,610 ما عليك القيام به "هذا الجسم استجابة" وتعيينها لتكون طريقة العرض. 594 00:35:12,610 --> 00:35:14,760 هناك نذهب. 595 00:35:14,760 --> 00:35:17,200 لدينا عنوان لدينا، ومن ثم لدينا آخر، 596 00:35:17,200 --> 00:35:20,500 وفقط لركلات، دعونا إدراج وظيفة أخرى 597 00:35:20,500 --> 00:35:23,390 حتى يمكننا أن نرى قائمة. 598 00:35:31,800 --> 00:35:36,650 وإدراج هذه الوظائف 2، 599 00:35:36,650 --> 00:35:39,500 والآن إذا كنت بتحديث الصفحة، 600 00:35:39,500 --> 00:35:42,060 ونحن نرى كل هذه المشاركات هنا. 601 00:35:42,060 --> 00:35:44,250 >> هل هذا يعقل حتى الآن؟ 602 00:35:44,250 --> 00:35:46,400 نعم، سؤال؟ أوه، حسنا. 603 00:35:46,400 --> 00:35:51,440 كما ترون، لقد كان قادرا على فصل كل من هذه الرموز 604 00:35:51,440 --> 00:35:53,920 إلى أقسام مختلفة، ومن ثم يمكنك ان ترى انها الأكثر واضحة مع رمز الرأي. 605 00:35:53,920 --> 00:35:57,810 هذا الملف الذي يمثل هنا وجهة نظر، 606 00:35:57,810 --> 00:36:01,220 أنه يهتم فقط تمثيل البيانات، وعرض البيانات. 607 00:36:01,220 --> 00:36:04,310 يحصل مرت عليه نوعا من البيانات، وكل ما يفعله هو مجرد عرض لك. 608 00:36:04,310 --> 00:36:07,660 في جميع أجزاء أخرى من التعليمات البرمجية الخاصة بك، فإنك لا داعي للقلق حول أي من ذلك، 609 00:36:07,660 --> 00:36:10,480 وبالمثل، لا يملك مدونة وجهة نظركم ما يدعو للقلق حول أي شيء 610 00:36:10,480 --> 00:36:13,390 كيفية الوصول إلى قاعدة البيانات وهلم جرا وهكذا دواليك، 611 00:36:13,390 --> 00:36:19,950 وهو أمر جيد حقا، ويجعل التعليمات البرمجية الخاصة بك أكثر من ذلك بكثير للصيانة. 612 00:36:19,950 --> 00:36:23,390 كما قلت، وجهات النظر، وانهم ديناميكية في ذلك 613 00:36:23,390 --> 00:36:27,080 انها 1 ملف، ولكن من شأنه أن يولد وجهات نظر مختلفة 614 00:36:27,080 --> 00:36:29,940 بناء على المتغيرات التي يمر فعلا في، 615 00:36:29,940 --> 00:36:32,370 وعلاوة على ذلك، هناك الكثير من وظائف المساعد مختلفة 616 00:36:32,370 --> 00:36:34,230 التي يمكنك استخدامها لمساعدتك على كتابة التعليمات البرمجية بشكل أسرع، 617 00:36:34,230 --> 00:36:36,320 والتي سوف تظهر لك في ثانية واحدة. 618 00:36:36,320 --> 00:36:38,050 نعم. 619 00:36:38,050 --> 00:36:42,490 >> [طالب] لذا $ 0 وحدة تحكم، أليس كذلك؟ 620 00:36:42,490 --> 00:36:44,000 هذا الشيء الثاني. 621 00:36:44,000 --> 00:36:46,090 السؤال هو و$ 0 وحدة تحكم؟ 622 00:36:46,090 --> 00:36:48,610 $ 0 هو متغير أنا خلقت هنا. 623 00:36:48,610 --> 00:36:51,320 أنا خلقت القول الأول. أنا تعيينه لبعض متغير. 624 00:36:51,320 --> 00:36:54,960 ثم مررت عليه في هذه الوظيفة، تعيينه الجسم للاستجابة. 625 00:36:54,960 --> 00:36:57,260 فهل هذا يعقل؟ 626 00:36:57,260 --> 00:37:02,200 [طالب] لذلك هو رأي :: المصنع، وليس عرض مثل فئة 627 00:37:02,200 --> 00:37:06,610 أو مكتبة (غير مسموع) وظيفة المصنع؟ 628 00:37:06,610 --> 00:37:10,640 السؤال هو حول دالة الشخصي :: المصنع، 629 00:37:10,640 --> 00:37:14,020 وأساسا هذا هو بعض وجوه المنحى البرمجة أكثر أساسا. 630 00:37:14,020 --> 00:37:18,000 الرأي هو رأي فئة، ولها طريقة تسمى "مصنع" 631 00:37:18,000 --> 00:37:24,170 وهذا هو وسيلة للاستيلاء على الكائن الذي هو المسمى "بلوق / مؤشر." 632 00:37:24,170 --> 00:37:27,140 وهذا بعض أكثر وجوه المنحى البرمجة الاشياء 633 00:37:27,140 --> 00:37:33,010 أنني لن أذهب إلى هنا كثيرا. 634 00:37:33,010 --> 00:37:36,400 الآن من الواضح، ونحن نريد لخلق وظائف جديدة، 635 00:37:36,400 --> 00:37:38,790 لكننا لا نريد أن يكون القيام بذلك من خلال قاعدة بيانات، 636 00:37:38,790 --> 00:37:41,280 لذلك نحن ذاهبون الى خلق عمل جديدة لخلق وظيفة جديدة، 637 00:37:41,280 --> 00:37:43,050 وهناك الكثير من الاشياء يتعين علينا القيام به. 638 00:37:43,050 --> 00:37:45,910 >> أول شيء نحن في طريقنا للقيام - دعونا معالجة هذه الأشياء واحدا تلو الآخر. 639 00:37:45,910 --> 00:37:48,320 أول شيء سنقوم به هو أننا قد حصلت لإنشاء نموذج 640 00:37:48,320 --> 00:37:54,460 لإدراج وظيفة جديدة، 641 00:37:54,460 --> 00:37:57,360 ولكن انا ذاهب أيضا إلى إضافة إجراء جديد، 642 00:37:57,360 --> 00:38:01,050 ذلك إضافة إجراء جديد هو سهلة مثلما 643 00:38:01,050 --> 00:38:03,490 إضافة وظيفة جديدة مع جهاز تحكم، 644 00:38:03,490 --> 00:38:13,710 والآن انا ذاهب الى القيام بشيء أساسية جدا، 645 00:38:13,710 --> 00:38:20,850 مجرد الاستيلاء وجهة النظر هذه وبعد ذلك، مجرد عرض لانها لكم. 646 00:38:20,850 --> 00:38:26,220 ثم الآن أنا ذاهب لإنشاء ملف عرض جديدة، 647 00:38:26,220 --> 00:38:33,690 وانا ذاهب لبدء كتابة بعض الاشياء. 648 00:38:33,690 --> 00:38:36,540 ما هو لطيف حول Kohana هو أنها توفر الكثير من وظائف المساعد مختلفة 649 00:38:36,540 --> 00:38:38,790 بالنسبة لك لكتابة التعليمات البرمجية عرض أكثر سهولة، 650 00:38:38,790 --> 00:38:41,970 و1 من هذه الوظائف مساعد أو وحدات المساعد 651 00:38:41,970 --> 00:38:45,860 وحول أشكال الكتابة. 652 00:38:45,860 --> 00:38:49,460 لكتابة الأشكال، وأنا لم يكن لديك حقا أن الكتابة مباشرة أي HTML نفسي. 653 00:38:49,460 --> 00:38:51,100 وقد كتبت يا رفاق أشكال HTML. 654 00:38:51,100 --> 00:38:54,850 كنت أعرف كيف يمكن أن يكون حقا، ومؤلمة ومرهقة حقا لكتابة النماذج. 655 00:38:54,850 --> 00:38:59,970 انها ليست متعة، لذلك لحسن الحظ، 656 00:38:59,970 --> 00:39:04,860 يمكن أن نكتب في الأساس نموذج باستخدام لKohana 657 00:39:04,860 --> 00:39:11,190 تشكيل دالات مساعد للقيام بذلك بالنسبة لنا. 658 00:39:11,190 --> 00:39:17,340 ونحن في طريقنا ليكون أساسا لحقول كل شيء واحد لدينا، 659 00:39:17,340 --> 00:39:23,160 حتى واحد للمؤلفين واحدة للهيئات. 660 00:39:23,160 --> 00:39:27,090 ونحن في طريقنا لديك التسمية، ونحن في طريقنا لديك مدخلا. 661 00:39:37,450 --> 00:39:41,360 >> ثم أخيرا، ونحن في طريقنا لديك التقديم. 662 00:39:49,350 --> 00:39:52,230 وكما ترون، وهذا هو أنظف بكثير لكتابة 663 00:39:52,230 --> 00:39:58,150 من كل ما HTML فوضوي، والذي هو نوع من لطيفة. 664 00:39:58,150 --> 00:40:00,930 منحت، وهناك أطر الويب الأخرى التي لديها حتى أنه أنظف من ذلك، 665 00:40:00,930 --> 00:40:04,440 ولكن على الأقل هذا أفضل من كتابة HTML نفسك. 666 00:40:09,400 --> 00:40:11,130 رهيبة، لذلك هذا هو ما تراه. 667 00:40:11,130 --> 00:40:13,530 وهذا النوع من الفوضى، 668 00:40:13,530 --> 00:40:19,720 لذلك أنا ذاهب لإضافة خط فاصل هناك 669 00:40:19,720 --> 00:40:21,180 لجعل هذا تبدو أجمل قليلا. 670 00:40:21,180 --> 00:40:23,330 حسنا، بالطبع، فإنه لا تزال تبدو سيئة حقا، ولكننا نركز فقط 671 00:40:23,330 --> 00:40:26,050 على وظيفة في الوقت الراهن وليس على الجماليات. 672 00:40:26,050 --> 00:40:28,010 لا وقت للقيام بكل شيء. 673 00:40:28,010 --> 00:40:30,600 وكما ترون، والآن لدينا نموذج السوبر الأساسية، 674 00:40:30,600 --> 00:40:32,080 الذي هو نوع من لطيفة. 675 00:40:32,080 --> 00:40:36,730 هذا الرمز أود أن أقول أنظف من محاولة لكتابة HTML تشكيل نفسك، 676 00:40:36,730 --> 00:40:40,290 بحيث لطيف. 677 00:40:40,290 --> 00:40:42,030 ما هي الخطوة التالية؟ 678 00:40:42,030 --> 00:40:49,260 الآن نحن بحاجة إلى فعل الأشياء مع العمل. 679 00:40:49,260 --> 00:40:51,240 عادة عند الكتابة أشكال HTML، 680 00:40:51,240 --> 00:40:54,070 عليك أن يقولوا ذلك حيث انها سوف تقدم النموذج ل. 681 00:40:54,070 --> 00:40:56,050 بشكل افتراضي في معظم الأطر على شبكة الإنترنت، 682 00:40:56,050 --> 00:40:58,200 تقدمه إلى نفس عنوان URL المحدد، وبالتالي فإن الشيء هو، 683 00:40:58,200 --> 00:41:01,310 إذا قمت بإرسال طلب الحصول على / بلوق / جديدة، 684 00:41:01,310 --> 00:41:03,240 فإنه يجب أن يعرض لك شكل، 685 00:41:03,240 --> 00:41:06,810 ولكن إذا قمت بإرسال طلب آخر ل/ بلوق / جديد مع البيانات، 686 00:41:06,810 --> 00:41:10,000 ذلك أن تحاول في الواقع لإنقاذ هذا المنصب 687 00:41:10,000 --> 00:41:13,300 وتفعل شيئا معها. 688 00:41:20,630 --> 00:41:22,180 >> ما نحن بصدد القيام به هو 689 00:41:22,180 --> 00:41:25,320 أساسا كل ما عليك القيام به للتحقق ما اذا كان طلب آخر أو طلب الحصول على 690 00:41:25,320 --> 00:41:29,350 للتحقق ما هي المتغيرات آخر يمكنك تعيين. 691 00:41:29,350 --> 00:41:34,560 وإذا تم تعيين متغير آخر، ثم نحن ذاهبون لمحاولة خلق وظيفة جديدة. 692 00:41:34,560 --> 00:41:38,440 مرة أخرى، ونحن نفعل هذا فقط، 693 00:41:38,440 --> 00:41:41,090 والذي يخلق وظيفة جديدة، ونحن في طريقنا إلى حرفيا 694 00:41:41,090 --> 00:41:51,150 تعيين حقولها من هذا القبيل، 695 00:41:51,150 --> 00:41:55,640 ثم ونحن في طريقنا لحفظه. 696 00:41:55,640 --> 00:41:59,200 ثم أنا ذاهب إلى إعادة توجيه 697 00:41:59,200 --> 00:42:07,660 إلى صفحة الفهرس حتى يتمكنوا من رؤية لدينا قائمة من المشاركات مرة أخرى. 698 00:42:07,660 --> 00:42:09,620 دعونا نحاول ذلك. 699 00:42:09,620 --> 00:42:15,160 أنا أقول، "براندون" 700 00:42:15,160 --> 00:42:18,140 و من ثم النقر على آخر، وإذا سارت الامور بشكل جيد، 701 00:42:18,140 --> 00:42:21,390 كما ترون، فإنه توجيه لي أن صفحة الفهرس، 702 00:42:21,390 --> 00:42:24,140 وإذا كنت التمرير إلى أسفل، لدينا آخر المدرج حديثا. 703 00:42:24,140 --> 00:42:26,430 ياي! 704 00:42:26,430 --> 00:42:28,430 نعم، سؤال. 705 00:42:28,430 --> 00:42:31,760 >> [طالب] ماذا لو كنت قد دخلت نفس الشيء بالضبط 706 00:42:31,760 --> 00:42:33,380 التى شاركت بها؟ 707 00:42:33,380 --> 00:42:36,950 أنها لا تحقق للتأكد من أنك لم تتكرر 708 00:42:36,950 --> 00:42:38,810 نفس الطلب؟ 709 00:42:38,810 --> 00:42:41,660 يكون الافتراضي، لا، لأن افتراضيا - 710 00:42:41,660 --> 00:42:46,470 آسف، والسؤال هو إذا قمت بإدخال البيانات في نفس الدقيقة في شكل 711 00:42:46,470 --> 00:42:50,180 ويقدم ذلك، فإنه سوف يسمح لك لإدراج كائن مكررة، 712 00:42:50,180 --> 00:42:52,550 وتكرار دخول، أساسا؟ 713 00:42:52,550 --> 00:42:54,070 الحق الآن، نعم، وسوف تسمح لك أن تفعل ذلك، 714 00:42:54,070 --> 00:42:58,860 لأنه في قواعد البيانات انها صالحة تماما لصفوف مكررة تماما، 715 00:42:58,860 --> 00:43:02,260 ولكن إذا كان هذا هو مصدر قلق، ثم يمكنك إضافة التصديقات، على سبيل المثال، 716 00:43:02,260 --> 00:43:06,430 للتأكد من أنه إذا كان هذا هو بالضبط نفس شيء موجود بالفعل، 717 00:43:06,430 --> 00:43:08,720 ثم يقول أنه كائن غير صالحة، 718 00:43:08,720 --> 00:43:11,200 وبعد ذلك يمكنك حتى تحديد رسالة الخطأ الخاصة بك 719 00:43:11,200 --> 00:43:14,390 ويقول: "غير صحيح لأن هذا موجود بالفعل" أو شيء من هذا القبيل. 720 00:43:14,390 --> 00:43:22,420 ولكن في هذه الحالة، وأنا يمكن أن مجرد خلق شيء مكررة. 721 00:43:22,420 --> 00:43:26,010 الآن دعونا نحاول وإضافة بعض التصديقات. 722 00:43:26,010 --> 00:43:30,400 المشكلة مع هذا الحق الآن هو أن 723 00:43:30,400 --> 00:43:34,220 أنا حرفيا يمكن أن يقدم آخر فارغ تماما. 724 00:43:34,220 --> 00:43:37,500 استطيع ان اضغط على هذا الزر في الوقت الراهن، وهناك نذهب. 725 00:43:37,500 --> 00:43:40,290 لا يمكنك حقا رؤية ذلك، ولكن هذا الخط اضافية هنا 726 00:43:40,290 --> 00:43:43,830 يشير إلى أن أنا حرفيا ديك وظيفة جديدة. 727 00:43:43,830 --> 00:43:46,050 انها مجرد كاتب فارغة والجسم فارغة، 728 00:43:46,050 --> 00:43:48,630 ونحن لا نريد للسماح للناس للقيام بذلك. 729 00:43:48,630 --> 00:43:52,550 هذا هو المكان الذي يأتي التحقق من صحة فيه. 730 00:43:52,550 --> 00:43:57,540 >> أستطيع أن أذهب إلى كائن نموذج بلدي، 731 00:43:57,540 --> 00:43:59,530 والآن يمكنني أن أضيف وظيفة جديدة التي تحدد 732 00:43:59,530 --> 00:44:02,000 ما قواعد التحقق من صحة وأود أن أضيف إلى هذا النموذج 733 00:44:02,000 --> 00:44:06,840 للتأكد من أنه صالح أو لتحديد ما الذي يعنيه أن تكون مشاركة صالحة؟ 734 00:44:06,840 --> 00:44:10,210 وأريد أن أقول انها صالحة فقط آخر إذا كان كل من المؤلف والجسم 735 00:44:10,210 --> 00:44:15,150 ليست فارغة، وهذا هو كيف نفعل ذلك في Kohana. 736 00:44:15,150 --> 00:44:18,750 يمكنك إنشاء وظيفة جديدة تسمى "القواعد" 737 00:44:18,750 --> 00:44:20,210 ومن ثم يمكنك العودة في الأساس مجموعة النقابي 738 00:44:20,210 --> 00:44:24,230 الذي يحدد قواعد التحقق من الصحة لهذا الكائن. 739 00:44:24,230 --> 00:44:27,530 ونحن في طريقنا للعودة للمجموعة، ثم ما نحن بصدد القيام به هو 740 00:44:27,530 --> 00:44:32,820 ويقول "المؤلف"، فإنه يذهب إلى صفيف، 741 00:44:32,820 --> 00:44:37,720 الذي يذهب إلى مجموعة أخرى تسمى "ليس فارغا". 742 00:44:37,720 --> 00:44:41,480 ثم انا ذاهب الى القول "الجسم". 743 00:44:50,980 --> 00:44:54,120 حسنا، والجملة من أجل هذا وهيكل لهذا 744 00:44:54,120 --> 00:44:56,530 قد تبدو قليلا مرهقة ومعقدة بعض الشيء. 745 00:44:56,530 --> 00:44:59,330 إذا كنت تقرأ وثائق، انها جميلة واضحة لمعرفة، 746 00:44:59,330 --> 00:45:02,500 ولكن أساسا هذا هو ما تحتاج إلى القيام به لتحديد 747 00:45:02,500 --> 00:45:04,130 بعض قواعد التحقق من الصحة، وهناك الكثير من قواعد مختلفة 748 00:45:04,130 --> 00:45:06,810 أن Kohana سوف أعطيك مجانا، كما يمكنك إضافة قواعد ليقول 749 00:45:06,810 --> 00:45:08,410 يجب أن تكون على الأقل هذا الطول. 750 00:45:08,410 --> 00:45:11,800 وربما لديها أن تكون رقمية. وربما لديها لتكون رقمية ألفا. 751 00:45:11,800 --> 00:45:14,410 ربما كان يجب أن يكون هذا في معظم طول، وهلم جرا وهكذا دواليك. 752 00:45:14,410 --> 00:45:17,730 هناك الكثير من القواعد المختلفة التي توفر Kohana بالنسبة لك، 753 00:45:17,730 --> 00:45:19,610 ويمكنك الذهاب على موقعه على الانترنت، أن ننظر في الوثائق، 754 00:45:19,610 --> 00:45:23,150 ويمكنك أن ترى كل الأشياء المختلفة التي يمكنك القيام به. 755 00:45:23,150 --> 00:45:25,650 >> ولكن هذا هو كل ما عليك القيام به، 756 00:45:25,650 --> 00:45:30,490 والآن دعونا نرى ما سيحدث 757 00:45:30,490 --> 00:45:34,060 إذا أقدم وظيفة فارغة. 758 00:45:34,060 --> 00:45:36,960 ما الذي سيحدث؟ أوه، لا، أنا الحصول على خطأ. 759 00:45:36,960 --> 00:45:39,440 أحصل على استثناء التحقق من الصحة. 760 00:45:39,440 --> 00:45:41,070 حسنا، انها جيدة. 761 00:45:41,070 --> 00:45:43,200 أنه قال لي إن نموذج بلدي غير صالح، 762 00:45:43,200 --> 00:45:45,780 ولكن لا أريد لعرضه استثناء 763 00:45:45,780 --> 00:45:48,720 للمستخدمين بلدي عندما يحاولون تقديم شيء غير صالحة، أليس كذلك؟ 764 00:45:48,720 --> 00:45:51,560 أريد أن أعطي لهم نوعا من رسالة الخطأ ودا 765 00:45:51,560 --> 00:45:53,610 عندما يكون هناك شيء يذهب على نحو خاطئ. 766 00:45:53,610 --> 00:46:01,830 ما نحن بصدد القيام به هو أننا ذاهبون ل 767 00:46:01,830 --> 00:46:04,490 التفاف كل شيء في حلقة محاولة الصيد. 768 00:46:04,490 --> 00:46:06,750 في الواقع، وأعتقد أن هذا هو أيضا شيء كنت لم يتعلموا بعد 769 00:46:06,750 --> 00:46:10,820 في CS50، لأن C، لغة البرمجة C، 770 00:46:10,820 --> 00:46:14,000 لايوجد استثناءات، ولكن كل واحد تقريبا لغة أخرى 771 00:46:14,000 --> 00:46:16,700 لديه استثناءات، لذلك حقا، حقا لفترة وجيزة، 772 00:46:16,700 --> 00:46:19,430 استثناء شيء أن قطعة من التعليمات البرمجية يمكن 773 00:46:19,430 --> 00:46:21,430 بطرح استثناء عندما يكون هناك شيء يذهب على نحو خاطئ، 774 00:46:21,430 --> 00:46:23,410 ولكن بعد ذلك ربما بعض قطعة أخرى من التعليمات البرمجية على مستوى اعلى 775 00:46:23,410 --> 00:46:25,810 يمكن التقاط هذا الاستثناء وتفعل شيئا معها. 776 00:46:25,810 --> 00:46:27,710 >> على سبيل المثال، في هذه الحالة، 777 00:46:27,710 --> 00:46:29,940 قطعة من التعليمات البرمجية التي يحاول انقاذ نموذجا، 778 00:46:29,940 --> 00:46:33,170 ذلك بالتحقق من صحة النموذج، وإذا كان يقول: "حسنا، هذا النموذج غير صالح" 779 00:46:33,170 --> 00:46:36,150 انها تسير لرمي استثناء، وهذا هو نوع من تعادل 780 00:46:36,150 --> 00:46:39,870 في C قد ترجع -1 أو شيء من هذا القبيل. 781 00:46:39,870 --> 00:46:42,320 ثم بالنسبة لي، هذه الوظيفة، قانون بلدي 782 00:46:42,320 --> 00:46:46,310 على مستوى أعلى، يمكن أن أحاول اللحاق وهذا الاستثناء 783 00:46:46,310 --> 00:46:49,330 ويقول في الأساس، "حسنا، إذا كنت التقاط استثناء، ما أنا ذاهب الى القيام به؟" 784 00:46:49,330 --> 00:46:51,570 أو أنا لا يمكن أن يختار لالتقاط هذا الاستثناء والسماح لشخص على مستوى اعلى 785 00:46:51,570 --> 00:46:54,400 تصفية الاستثناء، أو إذا كان لا أحد أدرك أنه، 786 00:46:54,400 --> 00:46:56,820 ثم تعطل البرنامج بأكمله ويقول: 787 00:46:56,820 --> 00:46:59,170 "شيء ذهب على نحو خاطئ، وأنا لا يمكن التعامل معها." 788 00:46:59,170 --> 00:47:04,490 >> ولكن ما نقوم به هو التفاف لك قطعة من التعليمات البرمجية في كتلة المحاولة، 789 00:47:04,490 --> 00:47:09,030 ومن ثم يمكنك أيضا إضافة ما يسمى كتلة الصيد، 790 00:47:09,030 --> 00:47:17,300 وهو نوع من التعليمات البرمجية التي ستحاول اللحاق والاستثناءات التي قد تحدث. 791 00:47:17,300 --> 00:47:20,430 وحتى لو كنت التقاط هذا الاستثناء خاص 792 00:47:20,430 --> 00:47:23,110 أو إبطال استثناء، ثم ما أنا بصدد القيام به هو 793 00:47:23,110 --> 00:47:31,210 انا ذاهب الى تعيين الأخطاء - أعتقد أن هذا كيف أفعل ذلك - 794 00:47:31,210 --> 00:47:35,370 وانا ذاهب لضبط الأخطاء لبعض وجوه. 795 00:47:35,370 --> 00:47:40,920 ثم ما أنا بصدد القيام به هو إذا كان يضرب هذا الاستثناء، 796 00:47:40,920 --> 00:47:43,090 انها ليست الذهاب الى توجيه، وإذا كان لا توجيه، 797 00:47:43,090 --> 00:47:46,160 انها سوف تخرج من إذا بلوق 798 00:47:46,160 --> 00:47:49,920 وضرب هذا بلوق / الجديد الذي تريد أريد القيام به. 799 00:47:49,920 --> 00:47:53,190 إذا كان هناك خطأ، ثم أريد أن أعود إلى النموذج 800 00:47:53,190 --> 00:47:55,100 وعرض تلك الأخطاء. 801 00:47:55,100 --> 00:48:00,780 الآن ما أريد القيام به هو أريد لتمرير أخطاء في تلك 802 00:48:00,780 --> 00:48:07,010 إلى طريقة العرض. 803 00:48:07,010 --> 00:48:10,360 حسنا، أعتقد أن لدينا وجهة نظر هنا، 804 00:48:10,360 --> 00:48:14,660 وأساسا أريد أن عرض تلك الأخطاء إذا كانت موجودة. 805 00:48:14,660 --> 00:48:19,740 قبل أن تكتب HTML لذلك، انا ذاهب بسرعة حقا 806 00:48:19,740 --> 00:48:21,720 تظهر لك ما بنية هذه الأخطاء تبدو مثل متغير، 807 00:48:21,720 --> 00:48:23,080 وهذا هو ممارسة جيدة بشكل عام. 808 00:48:23,080 --> 00:48:25,070 هناك الكثير من الأوقات كنت الحصول على شيء يعود من بعض الطرق، 809 00:48:25,070 --> 00:48:27,250 بعض من وظيفة في إطار الشبكة، 810 00:48:27,250 --> 00:48:29,410 وكنت لا تعرف ما يشبه المتغير، 811 00:48:29,410 --> 00:48:31,210 لذلك كنت لا تعرف كيفية العمل معها. 812 00:48:31,210 --> 00:48:37,790 انا ذاهب الى استخدام أسلوب الطباعة r لطباعة أساسا بها. 813 00:48:37,790 --> 00:48:41,100 >> وكما ترون، فإنه يقول لي انها مجموعة الزميلة، 814 00:48:41,100 --> 00:48:44,880 وكان لديك مفتاح، والمؤلف، ونقاط لهذه السلسلة، 815 00:48:44,880 --> 00:48:47,050 يجب أن لا يكون المؤلف فارغة، ومفتاح آخر، والجسم، 816 00:48:47,050 --> 00:48:49,680 نقطة إلى أخرى سلسلة، والجسم لا يجب أن يكون فارغا. 817 00:48:49,680 --> 00:48:52,130 أنا مثل، حسنا، بارد. 818 00:48:52,130 --> 00:48:56,230 بعد ذلك يمكنني أن يكرر من خلال مجموعة وطباعة كل رسالة واحدة. 819 00:48:56,230 --> 00:49:02,150 انها في الاساس مثل مجموعة النقابي مع مجموعة من الرسائل. 820 00:49:02,150 --> 00:49:13,500 ما أنا بصدد القيام به هو "إذا أخطاء" 821 00:49:13,500 --> 00:49:17,140 وانا ذاهب لإنشاء قائمة غير مرتبة، 822 00:49:17,140 --> 00:49:20,860 وانا ذاهب الى تكرار خلال كافة الأخطاء. 823 00:49:33,730 --> 00:49:38,710 وهذا، والآن انا ذاهب الى محاولة تقديم هذا مرة أخرى، 824 00:49:38,710 --> 00:49:41,200 ودعونا نرى ما يمكننا الحصول عليها. 825 00:49:41,200 --> 00:49:45,370 الآن نحصل على هذه القائمة لطيفة من الأخطاء، 826 00:49:45,370 --> 00:49:48,630 وهذا لا يزال قبيحة جدا، ولكن من الواضح أن هذا يمكن أن يتم تنسيق لتبدو لطيفة، 827 00:49:48,630 --> 00:49:51,620 ولكن الفكرة الأساسية هي فقط في بضعة أسطر من التعليمات البرمجية، 828 00:49:51,620 --> 00:49:53,720 كنا قادرين على التحقق من صحة نموذجنا، 829 00:49:53,720 --> 00:49:56,510 تأكد من أن بعض المجالات لم تكن فارغة، 830 00:49:56,510 --> 00:49:59,740 وإذا حدث خطأ ما، ثم العودة نوعا من رسالة الخطأ 831 00:49:59,740 --> 00:50:01,760 وبعد ذلك يمكن أن يقدم إلى المستخدم. 832 00:50:01,760 --> 00:50:03,910 يمكنك أيضا تخصيص التحقق من الصحة 833 00:50:03,910 --> 00:50:07,590 حتى أنه يمكن أن يكون في الواقع رسالة خطأ 834 00:50:07,590 --> 00:50:09,620 وهذا هو أكثر تحديدا إلى التطبيق الخاص بك أو شيء من هذا القبيل. 835 00:50:09,620 --> 00:50:14,600 كل ما هو للتخصيص بشكل عام. 836 00:50:14,600 --> 00:50:17,150 >> للأسف، نحن نفاد الوقت، 837 00:50:17,150 --> 00:50:20,040 لذلك أنا ذاهب الى ان تقطع الدورة الترميز العيش هنا. 838 00:50:20,040 --> 00:50:22,980 هناك حفنة من الميزات الأخرى التي أريد أن تظهر لك 839 00:50:22,980 --> 00:50:25,650 في هذا المثال. 840 00:50:25,650 --> 00:50:27,620 على سبيل المثال، يمكنك إضافة قوالب لموقع الويب الخاص بك، 841 00:50:27,620 --> 00:50:31,110 ولذلك ربما يكون هناك نوع من التعليمات البرمجية HTML التي تريد تطبيق 842 00:50:31,110 --> 00:50:35,190 على كل صفحة واحدة في موقعك، وبدلا من أن يلصق 843 00:50:35,190 --> 00:50:40,630 في كل ملف عرض واحد لديك، والتي من الواضح سيكون ممارسة سيئة، 844 00:50:40,630 --> 00:50:43,020 يمكنك تحديد هذه القوالب في الأساس، 845 00:50:43,020 --> 00:50:46,660 ثم في وحدة التحكم الخاصة بك ويقول: "حسنا، أنا باستخدام هذا القالب." 846 00:50:46,660 --> 00:50:50,130 "هل كل وجهات نظري استخدام هذا القالب." 847 00:50:50,130 --> 00:50:52,470 وآخر شيء واحد أريد أن تظهر لك كذلك 848 00:50:52,470 --> 00:50:57,800 أننا لم يكن لديك الوقت لهو البرمجة عبر الموقع، 849 00:50:57,800 --> 00:51:01,430 وأساسا أعتقد أن ربما ينظر يا رفاق في CS50 - 850 00:51:01,430 --> 00:51:03,770 أعتقد ديفيد مالان ربما تحدث عن كيف يمكن حقن عادة 851 00:51:03,770 --> 00:51:08,040 شفرة جافا سكريبت في - هل تحدثنا عن ذلك؟ 852 00:51:08,040 --> 00:51:10,220 ربما؟ ربما لا؟ 853 00:51:10,220 --> 00:51:12,670 >> ولكن في الكثير من الأحيان يمكنك حقن الخبيثة شفرة جافا سكريبت 854 00:51:12,670 --> 00:51:15,630 في قاعدة بيانات لشخص ما، وإذا كانوا لا فرار من ذلك بشكل صحيح، 855 00:51:15,630 --> 00:51:18,280 ثم عندما يقدم تلك البيانات إلى المستخدم، 856 00:51:18,280 --> 00:51:21,310 ثم أنه قد يعمل نوعا من العشوائية شفرة جافا سكريبت كنت لا تريد أن يحدث، 857 00:51:21,310 --> 00:51:23,050 وكنت ذاهبا لشرح كيفية كنت تفعل ذلك في غضون Kohana. 858 00:51:23,050 --> 00:51:25,380 انها في الواقع حقا، من السهل حقا. 859 00:51:25,380 --> 00:51:31,920 أنا يمكن أن تفعل ذلك الآن في 2 ثانية حرفيا. 860 00:51:31,920 --> 00:51:34,560 كل ما عليك القيام به هو أساسا التفاف هذه الأشياء 861 00:51:34,560 --> 00:51:46,920 في هذا الشيء يسمى كيانات HTML. 862 00:51:46,920 --> 00:51:51,180 والتي من شأنها أن الهروب كافة الأحرف تلقائيا بشكل صحيح 863 00:51:51,180 --> 00:51:54,730 وتأكد من أنك لا تحصل على هذه المشكلة. 864 00:51:54,730 --> 00:51:57,220 [طالب] كنت قد كتبت أول اختبار بشكل غير صحيح. 865 00:51:57,220 --> 00:52:01,030 [براندون ليو] أوه، عفوا. 866 00:52:01,030 --> 00:52:06,420 حسنا >>، هذا كل ما كان لي أن أشاطركم لهذا اليوم. 867 00:52:06,420 --> 00:52:09,930 هذه الشرائح ستكون نشرها، ولكن هذه هي عموما 868 00:52:09,930 --> 00:52:13,900 الموارد فقط يجب عليك حقا بحاجة للبدء مع Kohana. 869 00:52:13,900 --> 00:52:16,770 يمكنك الذهاب إلى الموقع. لديهم دليل المستخدم، ولديهم أيضا API المستكشف. 870 00:52:16,770 --> 00:52:20,630 يمكننا استكشاف جميع وظائف مختلفة وظائف المساعد لديهم بالنسبة لك. 871 00:52:20,630 --> 00:52:22,070 عموما لديهم ما يكفي من المعلومات على الموقع الإلكتروني 872 00:52:22,070 --> 00:52:25,310 التي يمكنك استخدامها لبدء والحصول على الذهاب مع Kohana. 873 00:52:25,310 --> 00:52:30,840 ليست هناك أن العديد من الدروس، كما أعتقد، لKohana، خارج 874 00:52:30,840 --> 00:52:33,880 ما لديهم على الموقع هنا، لذلك هو على الارجح وهذا أفضل رهان. 875 00:52:33,880 --> 00:52:35,600 ولكن إذا كنت تريد أن تذهب مع إطار شبكة الإنترنت 876 00:52:35,600 --> 00:52:37,120 وكنت لا تريد أن يكون لالتقاط لغة جديدة، 877 00:52:37,120 --> 00:52:39,780 وإذا كنت تريد شيئا التي هي خفيفة نسبيا وله منحنى تعليمي سهل، 878 00:52:39,780 --> 00:52:41,570 أود أن أقترح بالتأكيد Kohana. 879 00:52:41,570 --> 00:52:44,040 هذا هو على الارجح أفضل والطرح لذلك. 880 00:52:44,040 --> 00:52:46,830 الطريف، رغم ذلك، هو إذا كنا باستخدام روبي على القضبان، 881 00:52:46,830 --> 00:52:48,550 أننا يمكن أن يكون لديك نسخ ما فعلناه فقط 882 00:52:48,550 --> 00:52:51,430 وربما أكثر في أقل من 3 دقائق. 883 00:52:51,430 --> 00:52:54,710 ليس مزحة، ولكن تعلم روبي على القضبان يأخذ وقتا أطول 884 00:52:54,710 --> 00:52:56,780 من الذي سيستغرقه لتعلم Kohana. 885 00:52:56,780 --> 00:52:58,840 انها في الاساس اختيارك على ما كنت ترغب في اختيار للتعلم، 886 00:52:58,840 --> 00:53:01,260 ولكن إذا كنت ترغب في الحصول على وتشغيلها بسرعة، 887 00:53:01,260 --> 00:53:03,870 Kohana هو بالتأكيد خيارا جيدا جدا. 888 00:53:03,870 --> 00:53:06,730 >> أي أسئلة الماضي قبل أن ينتهي؟ نعم. 889 00:53:06,730 --> 00:53:08,020 [طالب] كيف ندمج أن 890 00:53:08,020 --> 00:53:13,120 في إطار مثل CSS كنت تستخدم عندما كنت تعليمات؟ 891 00:53:13,120 --> 00:53:16,700 والسؤال هو كيف يمكننا أن دمج ذلك مع الإطار المغلق؟ 892 00:53:16,700 --> 00:53:18,740 ما نقوم به هو ربما أننا ربما ستشمل 893 00:53:18,740 --> 00:53:21,090 مجلد جديد حيث كنا تفريغ جميع الملفات CSS لدينا، 894 00:53:21,090 --> 00:53:23,010 ثم كنا أيضا إضافة قالب جديد. 895 00:53:23,010 --> 00:53:26,090 في قالب كنا تشمل تلك الملفات CSS 896 00:53:26,090 --> 00:53:28,410 للتأكد من انهم المشار إليه على كل صفحة واحدة، 897 00:53:28,410 --> 00:53:32,220 وبعد ذلك عندما كنت في الواقع يتم كتابة HTML، 898 00:53:32,220 --> 00:53:34,010 أنت فقط إضافة فئات المناسبة وغيرها، 899 00:53:34,010 --> 00:53:36,100 وعلى سبيل المثال، عندما كنت تستخدم شيئا مثل النموذج 900 00:53:36,100 --> 00:53:40,710 وظيفة مساعد، يمكنك إضافة المزيد من المعلمات بعد ذلك 901 00:53:40,710 --> 00:53:42,830 لتحديد ما الطبقات التي تريد أن تعلق على أشياء مختلفة 902 00:53:42,830 --> 00:53:47,820 حتى يتمكنوا من أسلوب بشكل صحيح، وهذا هو أساسا كيف لك أن تذهب. 903 00:53:47,820 --> 00:53:50,100 >> أي أسئلة أخرى؟ 904 00:53:50,100 --> 00:53:52,090 رهيبة. 905 00:53:52,090 --> 00:53:58,540 شكرا لك على وقتك، وأشكركم على حضوركم. 906 00:53:58,540 --> 00:54:05,170 لم أكن أريد أن أضيف كثيرا آخر، 907 00:54:05,170 --> 00:54:08,560 ولكن الشيء 1 سريع حقا هو أننا لم يكن لديك وصلة 908 00:54:08,560 --> 00:54:12,590 إلى النموذج. 909 00:54:12,590 --> 00:54:14,310 غبية حقا. 910 00:54:14,310 --> 00:54:20,110 دعونا نضيف - في الواقع في طريقة العرض، بلوق، مؤشر، 911 00:54:20,110 --> 00:54:23,890 دعونا بسرعة حقا إضافة ارتباط الذي يذهب إلى صفحة جديدة، 912 00:54:23,890 --> 00:54:26,770 الصفحة حيث يمكننا إدراج وظيفة جديدة. 913 00:54:26,770 --> 00:54:29,950 ونحن في طريقنا للقيام بذلك. 914 00:54:29,950 --> 00:54:34,020 ما هو لطيف وهناك هذه المجموعة كاملة من وظائف مساعد HTML 915 00:54:34,020 --> 00:54:37,090 التي تفعل أشياء مختلفة بالنسبة لك، لذلك رأيت بالفعل الكيانات 916 00:54:37,090 --> 00:54:41,980 تعمل هنا، ولكن لديهم أيضا وظيفة تسمى "مرساة" 917 00:54:41,980 --> 00:54:45,400 حيث يمكنك كتابة في بلوق / جديدة 918 00:54:45,400 --> 00:54:49,550 ويقول: "وظيفة جديدة بلوق." 919 00:54:49,550 --> 00:54:51,850 وذلك من شأنه أن يخلق هذا الارتباط بالنسبة لك، 920 00:54:51,850 --> 00:54:54,120 وهذا يبدو تافها حقا أن تفعل، ولكن هذا هو لطيف، 921 00:54:54,120 --> 00:54:58,720 لنفترض أنك تتحرك من موقع الويب الخاص بك 1 من النطاقات إلى آخر. 922 00:54:58,720 --> 00:55:01,390 وإذا كنت كتبت للتو عناوين URL نفسك، 923 00:55:01,390 --> 00:55:04,350 ثم سيكون لديك لتغيير كل عناوين المواقع. 924 00:55:04,350 --> 00:55:06,850 أو ربما كنت نقله من 1 فرعي إلى مجلد فرعي آخر. 925 00:55:06,850 --> 00:55:08,790 قد تضطر إلى تغيير كل تلك عناوين نفسك، 926 00:55:08,790 --> 00:55:12,180 وهذا ليس متعة. 927 00:55:12,180 --> 00:55:14,510 يمكنك استخدام هذه المرساة هنا، 928 00:55:14,510 --> 00:55:18,950 ويمكنك تغيير المجال أو البادئة فرعي 929 00:55:18,950 --> 00:55:20,640 في ملف التكوين مرة واحدة، 930 00:55:20,640 --> 00:55:22,980 وبعد ذلك سيتم تطبيق ذلك في كل مكان، وهذا هو، مرة أخرى، 931 00:55:22,980 --> 00:55:26,930 مثال عظيم على عدم تكرار نفسك، والتجفيف كود الخاص بها. 932 00:55:26,930 --> 00:55:30,370 أينما كنت تكرر نفسك، ومحاولة استخراج في نوع من ملف التكوين 933 00:55:30,370 --> 00:55:34,160 أو إلى وظيفة مختلفة، وأنها تعامل مع ذلك لك. 934 00:55:34,160 --> 00:55:42,930 وكان >> الأخيرة جدا الشيء الذي أردت أن تظهر لك 935 00:55:42,930 --> 00:55:50,250 لنفترض أننا نعود في هذا المنصب، وكنت قد تتكون بعض مقال طويل حقا، 936 00:55:50,250 --> 00:55:52,670 لكني نسيت أن تشمل البلاغ بلدي. 937 00:55:52,670 --> 00:55:55,210 الآن عند النقر فوق "إرسال بوست" 938 00:55:55,210 --> 00:55:57,270 لقد فقدت للتو كل شيء. 939 00:55:57,270 --> 00:56:00,000 لا! المحزن حقا. 940 00:56:00,000 --> 00:56:03,870 فكيف تتعاملون مع ذلك؟ 941 00:56:03,870 --> 00:56:06,070 هذا هو ما نقوم به. 942 00:56:06,070 --> 00:56:09,340 ما نقوم به هو هنا لهذه الوظائف المدخلات ومساحة النص، 943 00:56:09,340 --> 00:56:12,700 إذا كان لنا أن تشمل المعلمة الثانية، ثم قيمة تلك المعلمة الثانية 944 00:56:12,700 --> 00:56:16,620 سيكون مجال ما يجري ليتم ملؤها في البداية مع. 945 00:56:16,620 --> 00:56:23,570 ما يمكننا القيام به هو في تحكم بلوق لدينا، 946 00:56:23,570 --> 00:56:25,360 نحن يمكن ربط متغير آخر. 947 00:56:25,360 --> 00:56:27,050 نسميها "القيم" ربما. 948 00:56:27,050 --> 00:56:30,620 ويمر في مجموعة آخر، حرفيا. 949 00:56:30,620 --> 00:56:32,620 وهذا يعني أنه إذا فشل التحقق من الصحة، 950 00:56:32,620 --> 00:56:36,570 تمرير لي مجموعة آخر أن قدمت من الطلب الأخير، 951 00:56:36,570 --> 00:56:38,420 وبهذه الطريقة يمكنني استخدام القيم من تقريري الأخير تقديم 952 00:56:38,420 --> 00:56:44,540 لإعادة ملء الحقول. 953 00:56:44,540 --> 00:56:49,600 الآن أستطيع أن أفعل شيئا مثل القيم المؤلف 954 00:56:49,600 --> 00:56:55,180 وتقدر الجسم، وبهذه الطريقة الآن إذا كنت تفعل بعض الاشياء عشوائي 955 00:56:55,180 --> 00:57:01,490 وانقر على زر "إرسال بوست"، فإنه يبقى هناك. 956 00:57:01,490 --> 00:57:03,830 ولكن نحن ذاهبون لتشغيل إلى مشكلة أخرى. 957 00:57:03,830 --> 00:57:07,670 أن يعمل، ولكن إذا ذهبت إلى الصفحة مرة الأولى، 958 00:57:07,670 --> 00:57:09,720 انها سوف تحطم الطائرة، وذلك لأن أول مرة 959 00:57:09,720 --> 00:57:13,730 نذهب إلى الصفحة، لم يتم تعريف هذا المتغير آخر حتى الآن. 960 00:57:13,730 --> 00:57:18,170 انها فارغة. فإنه لا وجود لها. 961 00:57:18,170 --> 00:57:21,630 و>> ما نريد قوله هو في حالة وجود هذا المفتاح، 962 00:57:21,630 --> 00:57:27,750 ثم إرجاع قيمة هذه المجموعة، 963 00:57:27,750 --> 00:57:30,450 ولكن إذا لا وجود المفتاح، ثم إرجاع سلسلة فارغة. 964 00:57:30,450 --> 00:57:32,150 هذا هو وظيفة نريد هنا. 965 00:57:32,150 --> 00:57:34,690 نحن نريد للتحقق مما إذا كان المفتاح موجودا قبل محاولة للوصول إلى مجموعة، 966 00:57:34,690 --> 00:57:36,580 ولحسن الحظ بما فيه الكفاية، 967 00:57:36,580 --> 00:57:38,570 Kohana يعطينا أيضا وظيفة مساعد لذلك. 968 00:57:38,570 --> 00:57:41,040 لديهم هذه مجموعة كاملة من وظائف 969 00:57:41,040 --> 00:57:43,660 تحت اسم ARR، قصيرة لمجموعة، 970 00:57:43,660 --> 00:57:45,800 ولديهم 1 وظيفة تسمى "الحصول على" 971 00:57:45,800 --> 00:57:48,690 ويمكنك تمرير في صفيف، 972 00:57:48,690 --> 00:57:50,740 ويمكنك تمرير في اسم المفتاح. 973 00:57:50,740 --> 00:57:54,330 ثم أساسا ما سوف تفعله هو انها ستحاول الحصول على هذا المفتاح، 974 00:57:54,330 --> 00:57:56,470 ولكن إذا لم يكن موجودا هذا المفتاح في مجموعة، 975 00:57:56,470 --> 00:58:00,900 ثم فإنه سيعود فارغا، أو يمكننا أيضا تحديد الافتراضي، في اعتقادي، 976 00:58:00,900 --> 00:58:03,500 التي هي لطيفة. 977 00:58:09,740 --> 00:58:13,150 الآن اذا لم نفعل الشيء نفسه مرة أخرى، 978 00:58:13,150 --> 00:58:15,970 ثم تشاهد الآن يعمل في المرة الاولى، 979 00:58:15,970 --> 00:58:18,080 ومرة أخرى، إذا كان لنا أن اكتب في بعض الاشياء عشوائي 980 00:58:18,080 --> 00:58:23,210 ومحاولة تقديم، ثم يبقى هناك. 981 00:58:23,210 --> 00:58:31,640 >> واعتقد انني يمكن أيضا أن تظهر لك كيفية إضافة قالب بسرعة حقا. 982 00:58:31,640 --> 00:58:36,140 ما يمكننا القيام به أولا هو أننا يمكن أن تضيف طريقة عرض جديدة تسمى "template.php" 983 00:58:36,140 --> 00:58:38,890 ضمن المجلد المشاهدات، 984 00:58:38,890 --> 00:58:44,730 وما أنا بصدد القيام به هو أنا ذاهب لطباعة ما يسمى "المحتوى" 985 00:58:44,730 --> 00:58:49,130 وهو ذاهب الى ان يكون لي المحتوى الرئيسي. 986 00:58:49,130 --> 00:58:51,380 وربما في الجزء السفلي جدا انا ذاهب لإضافة، على سبيل المثال، 987 00:58:51,380 --> 00:58:53,340 حقوق التأليف والنشر. 988 00:58:53,340 --> 00:58:56,150 [سؤال الطالب غير مسموع] 989 00:58:56,150 --> 00:58:58,050 [براندون ليو] ربما هذا هو قالب السوبر الأساسية أريد استخدام. 990 00:58:58,050 --> 00:59:02,840 أريد أن يكون لديك مجلد مع المؤلف على كل صفحة واحدة، 991 00:59:02,840 --> 00:59:05,560 والآن ما أنا ذاهب الى القيام به في غضون تحكم بلدي 992 00:59:05,560 --> 00:59:07,740 الآن بدلا من أن تقول، "تمتد وحدة تحكم" 993 00:59:07,740 --> 00:59:11,870 انا ذاهب الى القول، "يمتد Controller_Template" 994 00:59:11,870 --> 00:59:15,890 والآن بدلا من أن تقول، "استجابة الجسم يساوي هذا الرأي،" 995 00:59:15,890 --> 00:59:24,110 انا ذاهب الى القول، "هذا المحتوى القالب -" 996 00:59:24,110 --> 00:59:27,690 وأعتقد - أقوم بوضع علامة المساواة؟ 997 00:59:27,690 --> 00:59:32,710 أنسى. نعم، اعتقد ذلك. 998 00:59:32,710 --> 00:59:37,710 والآن أنا وضعت هذا المتغير المحتويات يساوي الرأي. 999 00:59:37,710 --> 00:59:40,960 أستطيع أن تفعل الشيء نفسه هنا. 1000 00:59:49,620 --> 00:59:57,170 والآن إذا كنت تحديث، يمكنك أن ترى الآن يضاف هذا المؤلف هناك، 1001 00:59:57,170 --> 01:00:00,350 ومجرد جعل بعض آخر عشوائي، 1002 01:00:00,350 --> 01:00:06,760 ثم، مرة أخرى، يجب أن نرى أن المؤلف هو في أسفل جدا من الصفحة. 1003 01:00:06,760 --> 01:00:10,730 >> العظمى. هذا كل ما أردت أن أبين يا رفاق. 1004 01:00:10,730 --> 01:00:14,970 [تصفيق] 1005 01:00:14,970 --> 01:00:18,950 أي أسئلة؟ 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]