[عزف الموسيقى] ERIC اويانغ: مهلا، الجميع. مرحبا بكم. هذا هو مبنى الديناميكي تطبيقات الويب مع لارافل. اسمي اريك اويانغ. أنا طالبة أدرس الدراسات الاجتماعية مع الثانوي في علوم الكمبيوتر، وأنا أعيش في آدامز منزل هنا في جامعة هارفارد. لذلك لارافل، في معظم جوهرها، هو إطار التطبيق على شبكة الإنترنت MVC. لذلك أحب ما يكون يا رفاق تم القيام مع CS50 المالية، لارافل هو الإطار الذي يسمح لك لبناء تطبيقات الويب الديناميكية. حتى تتمكن من التفكير في الأمر في بعض الحواس امتدادا لنوع من الاشياء كنت قد تم القيام في CS50 المالية، ولكن النظام هذا الكثير أكثر قوة، والكثير أكثر أناقة في بعض الحواس، ويوفر الكثير من وظائف لك لبناء مجمع إلى حد ما تطبيقات الويب. لذلك دعونا نذهب من خلال بعض من السمات الرئيسية، وبعد ذلك سنقوم الغوص إلى مثال على بناء بلوق التطبيق مع لارافل. حتى واحد من أول الأشياء التي يميزه من نوع MVC العمل بعد أن كنت قد تم القيام مع CS50 هو يتضمن محرك ORM. حتى ORM لتقف على وجوه رسم الخرائط العلائقية. لذلك هذا يسمح لك لبناء طبقة من التجريد بين قاعدة البيانات وحدات التحكم الخاصة بك. على عكس ذلك في CS50 المالية حيث جعل لكم مباشرة استفسارات، طبقة ORM يسمح لك الملخص أن بعيدا، وخلق النماذج التي هي أقوى من يمكنك مباشرة مع الاستعلامات SQL. وشيء آخر أن حقا غير مفيدة القوالب القابلة للتوريث. لذلك عليك أن تلاحظ في CS50 المالية، كنت في نهاية المطاف إعادة كتابة الكثير من الأشياء، حيث يضع لكم يمكن إعادة استخدام الأشياء، وكنت غير قادرة على. حتى هنا في لارافل، يمكنك استخدام ما المعروفة باسم محرك قالب شفرة لإنشاء تخطيط الرئيسي. ومن هناك، يمكنك ترث لذلك يمكن أن القوالب الفرعية الواقع وتشمل عناصر داخل ذلك القالب قاعدة أكبر. الهجرة. لذلك هذا هو الميزات القياسية إلى حد ما على معظم الأطر تطبيق الويب الحديثة. لذلك هذا يسمح لك لتمثيل تغييرات مخطط قاعدة البيانات في التعليمات البرمجية. حتى من دون الذهاب الى القول، بريس، يمكنك فعلا إنشاء هذه الهجرات حيث انكم تمثلون قاعدة البيانات التغييرات المخطط في التعليمات البرمجية مباشرة. وهذا يسمح لك علي: خاصة إذا كان لديك عدة أشخاص العمل على نفس application-- على شبكة الإنترنت تتبع هذه التغييرات، يقول في جيثب، أو بعض مستودع آخر. لذلك هذا هو حقا مفيدة ويخفف من الحاجة ، ويقول، تمرير حولها الكثير من SQL مقالب. وأخيرا، الملحن هو شيء حقا، حقا مفيدة التي تسمح لك لاستخدام الآخرين كود الناس أن تفعل أشياء رهيبة. حتى في لارافل منظم على النحو عدة مجموعات الملحن. لذلك نقول إذا أردت جلب في حزمة المصادقة أو إذا كنت تريد جلب بعض نوع من مولد النصي أو المسير واجهة، يمكنك التوصيل والتشغيل تلك المكونات مع الملحن. لذلك دعونا نبدأ. أي أسئلة من أنت تبدأ الرجال قبل أن؟ أي الأسئلة؟ باردة. لذلك فإن الخطوة الأولى هي تركيب الملحن. لذلك الملحن يسمح لك ل إدارة هذه التبعيات، سواء كان ذلك في إطار لارافل أو بعض تمديد طرف آخر. يسمح الأمر الأول لك بتحميل الملحن، والأمر الثاني يسمح لك ل تحريكه في مجلد بن المحلي بحيث يمكنك تشغيل الملحن مباشرة من خلال محطة. بعد ذلك، والمضي قدما إنشاء مشروع لارافل الجديد. ونحن في طريقنا إلى الواقع استخدام بعض رمز المثال أنني قد وضعت معا لإنشاء هذا بلوق. ولكن إذا كنت تريد ان تبدأ من الصفر، يمكنك استخدام هذا الأمر هنا، الملحن خلق المشروع، لارافل خفض لارافل، ومن ثم اسم المشروع الخاص بك. والتي ستشمل كافة التعليمات البرمجية التوزيع لبدء مشروع جديد لارافل. حتى لمشاريع النهائية CS50 الخاص بك، عليك ربما تريد استخدام هذا الأمر. ولكن نحن في طريقنا للبدء مع هذا. ذلك مرة واحدة كنت قد فعلت ذلك، وأنت تسير في الحصول على عدد واسع إلى حد ما الملفات في blog50. لذلك دعونا اذهبوا من خلال بعض من هذه المكونات. ستلاحظ في هذا الطريق دليل، وهناك مجلد التطبيق. داخل مجلد التطبيق، هناك بضعة مجلدات مفيدة. وتجدر الإشارة أن تبدأ مع هو هذا المجلد التكوين. ولذلك فإن هذا يضع كيف تطبيق الويب الخاص بك هو الذهاب، ويقول، مصادقة الناس أو أشياء النقدية أو قم بتوصيل إلى قاعدة البيانات. وما هو حقا مفيدة هو أن لارافل يسمح لك لوضع مختلف بيئات التطوير. وذلك ما فعلناه هنا هو ما إذا نذهب ضمن المجلد المحلي، هناك ملف database.php. وستلاحظ هنا أننا إعداد اتصال الخلية التي يسمح للأفراد للاتصال إلى خادم MySQL هذا مباشرة على الأجهزة CS50. ونحن ربط قاعدة بيانات أن أقوم بإعداد دعا Blog50. لذلك دعونا الواقع والمضي قدما في تشغيل نسخة عمل من هذا، فقط للحصول على شعور ما التطبيق الذي نحن بناء يبدو. لذلك ليس لدي نسخة من الانتهاء من هذه Blog50. لذلك لارافل الواقع وقد بنيت في الخادم التي يمكن تشغيلها مباشرة من سطر الأوامر. لذلك هذا هو مماثل ل PSET قبل عندما كنت في الواقع بناء الخادم الخاص بك في C. حتى أنها قد بنيت واحدة في ذلك أنه يمكنك تشغيل تطبيقات لارافل الخاص بك مباشرة من سطر الأوامر. لذلك اذا لم نفعل فب الحرفيين خدمة، وهذا ستطلق الملقم التطوير على المنفذ 8،000. حتى إذا ذهبنا إلى المضيف المحلي 8،000، ستلاحظ أن، مهلا. لدينا بلوق وتشغيلها. لذلك لارافل هنا هو توليد الصفحة الأولى من بلوق. تطبيق بسيط للغاية. ولكن هناك زوجين ميزات أنيق حقا أنه يقدم تحت غطاء محرك السيارة. بالتالي فإن تطبيق بلوق ' مباشرة. إذا أردنا أن إنشاء وظيفة، نحن يمكن النقر على هذا الزر. يمكننا القول، "يا الجميع. هذا هو حقا متعة ندوة: "على سبيل المثال. ويدون شيئا ما هنا. النص هنا. إذا كنا انقر فوق إرسال، عليك لاحظت أن لدينا بلوق جديدة تمت إضافة وظيفة ل الصفحة الأولى من بلوق. وإذا عدنا هنا، ستلاحظ أن كانت هناك بعض التعليقات بالفعل على بلوق. لذلك إذا أردنا انتقل لأسفل، عليك لاحظت أن جوناثان تان يقول انه مفتون جدا من هذا المنصب. لذلك سنذهب إلى كيف الكائن يسمح رسم الخرائط العلائقية لك أن تفعل هذه العلاقات في بطريقة سلسة إلى حد ما كذلك. باردة. أي أسئلة حول الوظيفة ما نحن في طريقنا لبناء؟ باردة. لذلك دعونا تبدأ مع الواقع خلق جداول قاعدة البيانات. لذلك أذكر أنه في CS50 المالية، وكنت تشكيل طاولة للمستخدمين وكذلك ل الاسهم في محفظتك. لذلك كما ذكرنا سابقا، ما نستخدمها في لارافل هو ما يعرف باسم الهجرات. حتى إذا رجعنا إلى كود التوزيع هنا، الأمر الأول هو أن مفيدة لارافل أن يوفر لك هذا الأمر هو الهجرة. حتى نتمكن من القيام php المبرمجون الحرفيين يهاجر: جعل. ولذلك فإن هذا يسمح لنا لخلق الهجرة. وبعد ذلك سنقوم تريد لخلق الهجرة دعا create_posts_table، الذي يجري أن يكون حيث نحن ذاهبون الى يكون تخزين بلوق وظائف لدينا. وستلاحظ هنا يتم تشغيله من خلال بعض التعليمات البرمجية التي في الواقع بإنشاء ملف مع طابع زمني على ذلك. حتى إذا نذهب وننظر في قاعدة البيانات، نحن ستلاحظ تحت الهجرة أنه من خلق ملف فارغ بالنسبة لنا والتي يحتوي على رمز المتداول مع اسم أننا محددة، خلق وظائف الجدول. وفقد اثنين من وظائف في ذلك. حتى هو ما نريد لتشغيل عندما يتم تطبيق الهجرة إلى قاعدة البيانات. وهبوطا هو ما نحن في طريقنا للقيام عندما نريد لعكس اتجاه الهجرة. حتى هنا لنبدأ بها مع كتابة هذه الهجرة. لذلك هناك فئة مفيدة في لارافل يسمى مخطط. لذلك نحن ذاهبون لتشغيل مخطط :: خلق. ونحن في طريقنا لخلق يسمى الجدول المشاركات. وهنا نطبق ذلك باستخدام وظيفة. وضمن هنا، نحن ذاهبون الى الواقع تحديد محتويات طاولتنا. ونحن في طريقنا إلى إنشاء ID، وهي لصناعة السيارات في تزايد. وبالإضافة إلى ذلك، نحن ذاهبون لإنشاء حقل يمثل عنوان بلوق وظيفة لدينا. ونحن في طريقنا أيضا لإنشاء حقل لتخزين نص بلوق وظيفة لدينا. وأخيرا، نحن ذاهبون لتخزين بعض الطوابع الزمنية لأنه عندما تم إنشاء آخر لدينا وعندما تم تحديثه. وللأسفل، انها بسيطة إلى حد ما. كل ما تريد القيام به هو قطرة الجدول الذي قمنا بإنشائه. عظيم. أي أسئلة؟ حتى الآن إذا كان لنا المضي قدما and-- في الواقع، المضيف المحلي، اسمحوا لي أن حذف ما كان لدينا وقت سابق. الذهاب إلى قواعد البيانات. انا ذاهب الى حذف ما كان لدينا وقت سابق. إسقاط هذا وخلق قاعدة بيانات جديدة Blog50. وحتى الآن ما السحري جزء هو هنا أننا يمكن تطبيق هذه الهجرات مباشرة إلى قاعدة البيانات باستخدام سطر الأوامر الأداة. لذلك اذا لم نفعل فب الحرفيين الهجرة، ستلاحظ أن، مهلا. لقد إنشاؤه الجدول الهجرة، ونحن سوف نلقي نظرة على في بعض الشيء، وانها تطبق هذه الهجرة الأولى. لذلك نحن ننظر Blog50، ستلاحظ انه خلق جدولين بالنسبة لنا. الأول هو هذا الجدول الهجرات. لذلك إذا أردنا تصفح هذا، ستلاحظ أن هذا الجدول هو اضحة إلى حد ما. ويقال مجرد أنه، مهلا. لقد طبقت هذه الهجرة. نعود وننظر في المشاركات. ستلاحظ أن هيكل هو بالضبط ما كنا قد طلبنا ذلك. لدينا ID-تزايد السيارات. لدينا سلسلة لتخزين العنوان، وحقل النص لتخزين المحتوى. عظيم. باردة. أي أسئلة حول الهجرات العمل، وكيف نستطيع تطبيقها؟ لا؟ باردة. حتى الآن نحن ذاهبون الى المضي قدما وفعلا خلق النموذج. لذلك نحن نريد لخلق المشاركات النموذج الذي يخزن فكرة مجردة من قاعدة البيانات. وذلك بدلا من القيام الاستفسارات الخلية مباشرة، ونحن في طريقنا لخلق. لذلك لدينا لخلق المجلد يسمى هنا النماذج. وداخل هنا، نحن في طريقنا لل إنشاء ملف يسمى post.php. داخل هذا الملف PHP، ونحن في طريقنا لخلق وظيفة الطبقة التي تمتد بليغ. بليغ هو اسم ORM المحرك الذي يوفر لارافل. وهنا، يمكننا أن نتوقع أن كنت في الواقع بحاجة لكتابة بعض التعليمات البرمجية. ونحن في طريقنا لكتابة بعض دالات مساعد في وقت لاحق. ولكن من خارج منطقة الجزاء، وهذا سوف بالفعل ندرك ما هو في قاعدة البيانات ويمكننا الوصول، ويقول، فإن النص من بلوق وظيفة لدينا أو العنوان، وخلق الاشياء مباشرة مع الى حد كبير أي رمز على الإطلاق. ذلك أن أحد المكونات السحرية. والرياح مرة واحدة هذه الفئة ونبت ريشها بشكل كامل، سنقوم تتضمن معلومات حول ما انها تتعلق، وبالتالي فإن التعليقات. أيضا إنشاء وظيفة حتى نتمكن من الواقع الحصول مباشرة على URL صفحة بلوق وظيفة. باردة. أي أسئلة حول هذا الموضوع؟ لا. باردة. وحتى الآن مرة واحدة لدينا نموذج دينا، ونحن تريد إنشاء وحدة تحكم هذا قادرة على التفاعل مع هذه النماذج، وبعد ذلك قاعدة البيانات. لذلك إذا أردنا أن نلقي نظرة على BlogController، عليك لاحظت أن ليس هناك كثيرا هنا الآن. كل ما هناك هو وظيفة مؤشر الذي يولد الصفحة الرئيسية، ولكن من دون أي شيء هناك لعرضه بعد. ولذلك فإن الوظيفة الأولى أننا ذاهبون الى خلق واحد هو أن يسمح لنا لخلق بلوق وظيفة. لذلك نحن ذاهبون لاعلان وظيفة جديدة تسمى newPost. وداخل هنا ببساطة، نحن ذاهبون لضبط تخطيط هذه الصفحة أن يكون تقديم نسخة، إذا كنت تذكر من CS50، من هذا القالب دعا blog.new، التي نحن ذاهبون الى خلق في قليلا. ستلاحظ هنا على خط الستة التي حددنا هذا المتغير، والتخطيط. وإذا كان لنا أن نلقي نظرة في المجلد المشاهدات، هناك مجلد تخطيطات، والتي يتضمن ملف HTML الأساسي للغاية. وتجدر الإشارة، ستلاحظ أن لدينا هذه الحاوية هنا يمكن أن ينتج المحتوى. حتى داخل القالب لدينا ما نحن في طريقنا للقيام وخلق ما سيكون استبدال مباشرة ضمن هذا التخطيط. لذلك قلنا اننا نريد لتقديم قالب يسمى blog.new. ولكن في الداخل من مدونة، هناك ليس بعد هذا القالب الجديد. لذلك نحن ذاهبون الى خلق ملف يسمى new.blade.php. هذا يقول لارافل أن هذا الملف يجب PHP يتم تقديمها مع شفرة قالب المحرك. لذلك هذا هو إلى حد ما ملف مباشر. انها سوف تكون على شكل التي ونحن في الواقع إضافة في بلوق وظيفة. حتى السحر من هنا الميراث هو أنه، مهلا. نحن نريد أن تحديد أن القسم، قسم المحتوى هنا، والذي يرسم بواسطةsection وstop. ذلك ما بين هنا هو الذهاب الى أن تكون بديلا في التخطيط الرئيسي. وهنا ما نريد القيام به هو ببساطة شديدة إنشاء ملف HTML جديد. دعونا فقط إضافة عنوان سريع. إضافة بلوق وظيفة. وداخله، ونحن الذهاب لإنشاء نموذج. يجري هذا النموذج ليكون هذا العمل. وهذا سيكون شيئا أننا بديلا في وقت لاحق، وسنرى كيف التوجيه يلائم هنا. ولكن نحن مجرد الذهاب لتحديد الوقت الراهن أن هذا يذهب إلى URL مع الطريق من createPost. ثم هذا هو الذهاب لديك أسلوب آخر. داخل هنا، نحن ذاهبون لدينا اثنين من المجالات. الدرجة الدرجة = "شكل فريق". نستخدمه المكتبة التمهيد CSS قدمت تكرمت تويتر. لذلك نحن ذاهبون لإنشاء اثنين من هذه. لذلك هذا الإدخال الأول هو سيكون العنوان. اسم الإدخال بحيث = "عنوان". الطبقة = "formcontrol". نوع = "النص". انا ذاهب لإضافة عنصر نائب = "العنوان". ثم والثاني هو ستكون منطقة النص. اسم = "المحتوى". الطبقة = "formcontrol". ونائبا = "كتابة هنا". هناك نذهب. وأخيرا، نحن في طريقنا لل إضافة زر سريع تقدم. نوع = "تقديم" الطبقة = "BTN BTN الابتدائي". لذلك فان هذه كلها ملامح التمهيد لذلك أن هذا يمكن أن تكون وضعت في هذه الطريقة التي ل فريسة للمستخدم، بدلا من HTML المجردة. لذلك قمنا تعريف وحدة تحكم هنا. لقد تعريف رأي بسيط جدا. ولكن ما هو مفقود هو النسيج الضام. حتى في هذه النقطة، لارافل لا يوجد لديه فكرة عن كيفية ونحن في طريقنا إلى الواقع الوصول إلى وحدة التحكم هذه. لذلك هذا هو تعريفها في ملف يسمى routes.php. والآن، لدينا طريق واحد. وهو عندما نذهب إلى المسار الصفحة الرئيسة لهذا الموقع، انها سوف تجعل وحدة تحكم المؤشر. حتى هنا ما نحتاج القيام به هو تنفيذ طريقا جديدا بالنسبة لنا لخلق آخر. لذلك نستخدم هذه الطريقة الحصول عليها، والتي تحدد أنه عندما يحاول مستخدم الحصول على هذا page-- على وجه التحديد وآخر مائل page-- جديدة ما نحن في طريقنا للقيام واستخدام وحدة تحكم يسمى BlogController مشاركة جديدة. واحد أننا بإنشائها. وبعد ذلك نحن ذاهبون لاسم مستعار أنها newPost. ونحن في طريقنا لخلق آخر وظيفة في قليلا. ولكن ما هو هنا تحت المفتاح "ك" هو ما نحن يمكن أن تكون بديلا داخل قوالب بليد لدينا. حتى الآن، دعونا الواقع يقول أيضا الطريق. لذلك نحن ذاهبون أيضا لإنشاء وحدة تحكم حتى نتمكن من خلق هذه الوظائف. حتى إذا كان المستخدم المشاركات إلى آخر الصفحة خفض جديد، ما نحن في طريقنا للقيام هو يستخدم وحدة تحكم التي ونحن في طريقنا لخلق قريبا دعا BlogController في createPost. ونحن في طريقنا إلى الاسم المستعار هذا مع كما createPost. باردة. أي أسئلة؟ باردة. لذلك دعونا تشغيل ما لدينا حتى الآن. لذلك اذا لم نفعل فب الحرفيين خدمة، سوف نرى الكثير من الأخطاء. لذلك يبدو وكأنه لدينا خطأ في بناء جملة على الطرق خط 27. آه. في عداد المفقودين فاصلة منقوطة. حتى إذا ذهبنا إلى 8،000، سترى شيئا هنا حتى الان. لذلك هذا هو الصفحة الرئيسية الافتراضية. ولكن إذا ذهبنا إلى الرد على خفض جديد، مهلا. أنه سوف يكون النموذج الذي خلقنا فقط. الآن، ليس لدينا تنفذ وظيفة من عندما نضغط على زر إرسال. لذلك إذا أردنا انقر على إرسال زر، انها تسير لتشغيل خطأ. ولكن ونحن في طريقنا إلى التعليمات البرمجية التي في الوقت الحالي، وتحديدا ما كنا تريد أن تفعل عندما يقوم المستخدم يقدم هذا النموذج. لذلك دعونا نفعل ذلك. العودة الى ملف تحكم. ما نحن ذاهبون الى القيام به هو تنفيذ هذه المهمة الجديدة التي تسمح لنا لخلق وظيفة. إعلان وظيفة جديدة. وظيفة الجمهور createPost. وهذه الوظيفة ستكون ل قليلا أكثر تعقيدا من ما كان لدينا من قبل. ولكن سترى هنا أننا لسنا الذهاب فعلا إلى كتابة أي SQL. وORM، والفصيح ORM، هو الذهاب الى السماح لل منا أن نفعل هذا في بعض طرق طريقة أكثر أناقة. لذلك نحن في طريقنا لإنشاء وظيفة جديدة. وهنا نحن instantiating كائن جديد من النموذج الذي نحن فقط خلق، ونموذج آخر. وماذا نحن في طريقنا للقيام يتم تعيين السمة عنوان هذا باستخدام شيء التي نحصل عليها من الخادم. لذلك هذا هو على غرار ما كان لدينا من قبل في CS50 المالية حيث كنا نفعل، وذلك باستخدام سوبر العالمية آخر ويبحث عن لقبه. حتى يوفر لارافل بعض المرافق الصحية وهتنوت باستخدام هذه الدالة المساعد. لذلك نحن نفضل استخدام هذا بدلا من ذلك هذا شكل مواد خام أساسية جدا من PHP. ثم ماذا نحن في طريقنا للقيام تعيين محتوى منه للمساهمة الحصول على المحتوى. ونحن في طريقنا في الواقع التفاف هذا في وظيفة مفيدة أن يوفر PHP دعا nl2br، التي يتحول جديدة خطوط، NLS، إلى BRS، فواصل، حتى نتمكن من فعلا الفقرات المختلفة داخلها. وأخيرا ما نحن ذاهبون القيام به هو حفظ هذا المنصب. لذلك نحن ندعو وظيفة انقاذ على هذا النموذج. ونحن في طريقنا لإنقاذ هذا المنصب. وأخيرا ما نحن في طريقنا للقيام وإعادة توجيه المستخدم على وجه التحديد إلى الطريق الذي نحن في طريقنا ل خلق قريبا، الملقب من قبل viewPost. ونحن في طريقنا للتمرير في الحجج معرف، ويجري هوية هذا المنصب جديدة. عظيم. حتى الآن إذا ذهبنا في الواقع وتشغيل هذا. ونحن في طريقنا لإضافة وظيفة جديدة. دعنا نقول هذا هو الندوة 50. ويقول: بالتأكيد. ASDL. ما من أي وقت مضى. نوعا من المحتوى. وإرسال ذلك. ونحن سوف تلاحظ أن، مهلا. طرق غير معرفة. ولكن إذا كان لنا أن نلقي نظرة على بريس و بحث عن وجود أو عدم وظيفتنا فعل أي شيء. انظروا المشاركات Blog50. ونحن سوف تلاحظ أن، مهلا. في الواقع، لم نحن فقط خلق هذا بلوق الرد مع الطوابع الزمنية المحددة. حتى الآن دعونا نعود وخلق الواقع هذه وظيفة أخرى في حدة تحكم لدينا، على وجه التحديد وحدة تحكم viewPost. وظيفة viewPost الجمهور بذلك. حتى هنا ما سنقوم به، بدلا من ذلك وجود أقواس فارغة، سنقوم تريد تمرير في معرف منصب أننا خلق. ومن هنا ما نحن في طريقنا للقيام هو في الواقع الاستعلام عن قاعدة بيانات لذلك. لذلك إذا كنا لا الرد، هناك وظيفة تسمى تجد أن يسمح لنا الاستعلام من قبل ID. على وجه التحديد، في الواقع، نحن في طريقنا لل استخدام صيغة بديلة من هذا يسمى بحث أو فشل، والذي يسمح لنا بتقديم استقالته لهذه الوظيفة، رمي استثناء إذا كان معرف نحن نمر في لا وجود لها. وبعد ذلك نحن ذاهبون للقيام بشيء على غرار ما فعلنا سابقا حيث وضعنا المحتوى هذه الصفحة لتكون النسخة المقدمة من هذه النظرة الجديدة ونحن في طريقنا للخلق، blog.view. ونحن في طريقنا لتنتقل إلى it-- تماما كما في CS50 تقديم function-- قاموس من المتغيرات. مفاتيح هذه مجموعة النقابي تصبح المتغيرات داخل القالب. لذلك نحن في طريقنا للقيام آخر بعد. حتى تمر بشكل غير مباشر على أن آخر قمنا الاستعلام من قاعدة البيانات. . الآن ما نحن في طريقنا ل القيام به هو خلق هذا الرأي حتى نتمكن من عرض الواقع بلوق وظائف أننا قد بنيت. لذلك نحن ذاهبون الى خلق ملف يسمى view.blade.php. حتى داخل هذا النموذج، ما نحن في طريقنا للقيام يتم وضع معا صفحة البسيطة التي يسمح لنا لعرض المحتوى. لذلك نحن القيام القسم، وهذا قبل المحتوى. توقف. وما نحن ذاهبون للقيام داخل هنا كتابة بعض HTML لعرض هذه الصفحة. لذلك نحن في طريقنا للالتفاف عليه مع الهوى دعا عنصر HTML5 الجديد المادة. وهنا، ونحن في طريقنا أن يكون رأس حيث ونحن في طريقنا لمجرد H1، والذي يتضمن عنوان آخر. حتى هنا، إذا نظرنا إلى هذا مزدوج تدوين متعرج، وهذا سوف تفعل أساسا PHP صدى عنوان آخر. لذلك هو اختزال مفيدة أن لارافل يوفر لنا. لذلك نحن في طريقنا للاستخدام هذه الرموز بدلا من ذلك. وهنا، نحن ذاهبون إليها أيضا طباعة المحتوى منه. وهنا، ونحن في طريقنا للقيام المحتوى آخر. وفي أسفل ما نحن تنوي القيام به هو خلق تذييل الصفحة. وفي تذييل الصفحة، نحن في طريقنا لل أول عرض عندما تم نشر هذا. لذلك هذا وقد نشرت في، التي أنشئت في. ويستخدم لارافل لطيفة حقا مكتبة تاريخ تسمى الكربون. حتى نتمكن من القيام به في الواقع ما يسمى difforHumans، والتي شهدت في وقت سابق. عندما نشرنا. انها سوف أقول، مثل، لمدة خمس ثوان قبل. لذلك هذا هو لطيف وظائف لارافل. وأخيرا، نحن ذاهبون لإغلاق هذا التذييل. حتى الآن إذا عدنا إلى الصفحة الرئيسية نحن في طريقنا لرؤية شيء هنا بعد، لأن نحن لم مشفرة تصل في الصفحة الرئيسية. ولكن إذا ذهبنا إلى إضافة مائل واحد، ونحن في طريقنا لرؤية استثناء. لا أحد يعرف لماذا نرى استثناء؟ ما نحن في عداد المفقودين؟ أي أفكار؟ وذلك ما لم نفعله في وقت سابق بالنسبة لنا في الواقع لتحديد كيف نصل الى التحكم معينة؟ SPEAKER 1: الطريق؟ ERIC اويانغ: نعم. لذلك لا يزال يتعين علينا تحديد الطريق. حتى نعود هنا لroutes.php. ستلاحظ أن نحن لم يعرف في الواقع كيف ونحن في طريقنا للحصول على إلى وحدة التحكم هذه. وحتى الآن ونحن في طريقنا لتحديد هذا الطريق. انها واضحة إلى حد ما، على غرار ما فعلنا سابقا. ولكن ما نحن في طريقنا لاحظت هنا أننا ذاهبون الى نائب. لذلك اذا لم نفعل route.get آخر مائل ID. حتى ID الآن هو ما يحدث ل تمريرها إلى وحدة تحكم. هذا هو الذهاب الى استخدام تحكم أننا فقط خلق، BlogController في viewPost. ونحن في طريقنا ل الاسم المستعار هذا كما viewPost. عظيم. وحتى الآن ونحن في طريقنا لإنشاء هذا الطريق. حتى الآن إذا ذهبنا هنا وتحديث هذه الصفحة، نحن في الواقع لا يكون لدينا بلوق وظيفة جديدة. لذلك هذا هو ما نقوم بإنشائها سابقا. الصفحة جدا بسيطة، ولكن يعرض بلوق وظيفة أننا بإنشائها. باردة. وإذا كنا في الواقع تذهب من خلال كله عملية إنشاء بلوق وظيفة جديدة، نحن ستلاحظ أن كل شيء الموجهات بشكل صحيح. إذا قلت: "مرحبا. أنا جوناثان تان ". يقول: "هذا هو بلدي بلوق وظيفة". وإرسال ذلك، وهذا سيخلق هذا بلوق وظيفة جديدة مع ID 2، التي الزيادات من ما كان لدينا سابقا ويعرض بشكل صحيح. رائع. أي أسئلة؟ نعم؟ المتحدث 2: هل لارافل مقبض الإبراء وكل شيء بالنسبة لك؟ ERIC اويانغ: نعم. لذلك عندما رأينا سابقا عندما فعلنا المدخلات القولون القولون تحصل، أن sanitates أي SQL الحقن وهتنوت أننا قد ترغب في إجراء إذا نحن لمستخدم ضار للموقع. لذلك لارافل يعالج الكثير من أن وراء الكواليس. سؤال جيد. لذلك دعونا نلقي نظرة على الصفحة الرئيسية. حتى إذا كان علينا أولا العودة إلى تحكم عن الصفحة الرئيسية، ستلاحظ أنه لا يفعل الكثير هنا. ستلاحظ أن نحن لسنا يمر في وحدة تحكم أي شيء مفيد بشكل خاص. انها مجرد هذا الملف مؤشر. لذلك دعونا تنتقل إلى هذا شيء مفيد. وعلى وجه التحديد، ونحن الذهاب لتمرير في المشاركات. ويسمح لنا لارافل للقيام آخر كل شيء، والتي سوف تسمح لنا للحصول على جميع الوظائف. الآن إذا عدنا إلى index.php، سترى، مهلا. لا شيء هنا حتى الآن. ولكن ما نريد أن نفعله هنا هو في الواقع تكرار خلال، القيام حلقة foreach على الوظائف التي يسمح لنا لطباعة الوظائف. المشاركات foreach ذلك آخر ما نريد القيام به وطباعة محتوى من بلوق وظيفة. ولكن شيء واحد ستلاحظ أن كتبنا في الواقع أكثر من ذلك القانون بالفعل، في view.blade.php. فما نحن في طريقنا للقيام في الواقع هو استخدام ميزة مفيدة لطيفة من بليد وعامل من هذا الرمز المشترك. لذلك نحن نذهب هنا. ونحن في طريقنا لاتخاذ هذا المحتوى هنا، وماذا نحن في طريقنا للقيام هو إنشاء مجلد جديد. دعونا ندعو فقط لأنها جزئيات. وهنا، ونحن في طريقنا لخلق post.blade.php. حتى هنا، فإننا عوامل خارج الطريق في الذي نريد أن عرض هذه المشاركات. وهنا ما سنقوم به بدلا من وجود في الواقع أن HTML مباشرة، ونحن في طريقنا لاستخدام هذا التوجيه دعا تشمل blog.partials.post. وماذا نحن في طريقنا للقيام هنا هو تمرير في آخر الصفحة. حتى الآن إذا عدنا هنا، وسوف نقوم لاحظت أن وظيفة لا تزال نفس الشيء. ولكن الآن لدينا هذا يؤخذ خارج رمز، وهذا HTML. حتى نتمكن من استخدامها في الفهرس. حتى هنا، وهذا هو بسيط جدا. كل ما نفعله هو تضمين blog.partials.post وصفيف. ومكان لل قبل، ونحن نفعل بعد مشاركة. حتى الآن إذا عدنا إلى الصفحة الرئيسية، سنرى ذلك، مهلا. لدينا قائمة من جميع بلوق وظيفة التي كانت لدينا من قبل. ونحن قد ترغب في إضافة بعض "لو" الشروط والظروف "آخر" بحيث إذا لم يكن لدينا أي شيء على بلوق، نحن نريد لعرضه شيئا مفيدا. مثل، مهلا. هناك أي محتوى حتى الآن على بلوق. وإذا كنت الرجال تبدو فعلا في رمز التوزيع على جيثب، سترى مثال على كيف نفعل ذلك. باردة. أي أسئلة؟ نعم. المتحدث 2: أعتقد فقط سؤال أساسي. مرة أخرى في الطريق. ERIC اويانغ: نعم. إذا كان لنا أن نلقي نظرة على الطرق. المتحدث 2: أين يفعل uses.blogcontroller في خلق آخر، ماذا أن يوجهنا إلى؟ ERIC اويانغ: نعم. نعم. المتحدث 2: أو ما هو that-- ERIC اويانغ: لذا، نلقي نظرة، ويقول على سبيل المثال، هذا الطريق الحق هنا. الجزء الأول هو الفعلية URL أن المستخدم سوف تذهب إلى. وهذه المجموعة هنا، مجموعة النقابي، ويحدد كيف نريد أن يكون عمل تطبيق ردا عليها. لذلك يستخدم هو وحدة تحكم، وظيفة أننا تريد الاتصال به عندما يذهب المستخدم إلى هذا URL. حتى viewPost هنا كان الوظيفة التي حددنا داخل من BlogController-- المتحدث 2: فهمت. ERIC اويانغ: --so أننا يمكن في الواقع تقديم وجهة نظر، أداء بعض الحسابات، التفاعل مع قاعدة البيانات SQL. المتحدث 2: OK. ERIC اويانغ: وثم من جهة أخرى جزء "، كما" هو اسم مستعار التي نستخدمها. لذلك اذا لاحظنا عندما أنشأنا النموذج، ستلاحظ أن URL :: routecreatePost. لذلك بدائل في الفعلية URL بحيث أننا لسنا الصعب الترميز هذه في حتى نتمكن من تغييره مرة واحدة، ويقول إذا أردنا إعادة تسميته. بدلا من مائل بعد جديد، ونحن نريد أن نفعل مثل، ص خفض جديد فقط لتنظيف حتى عناوين المواقع لدينا قليلا. ونود أن تغييره في بقعة واحدة بدلا من بين جميع الملفات المختلفة. باردة. هذا امر جيد. حتى الآن لدينا جدا منصة بلوق الأساسية. أننا ربما ترغب في إضافة زر في ذلك يمكننا أن الواقع خلق وظائف جديدة. لذلك إذا أردنا أن نلقي نظرة في تخطيط رئيسي، لدينا قسم يسمى رأس الحق التي حددناها للتو في الأعلى. حتى نتمكن من إضافة أزرار ل الجزء العلوي من الرأس. حتى إذا ذهبنا إلى index.blade.php، في الواقع القيام به هو تحديد ما يدور داخل هنا. لذلك هذا المقطع رأس الحق، ما نحن في طريقنا للقيام وتضيف في زر للذهاب إلى URL يحددها مسار مشاركة جديدة. فقط لتنظيفه وجعل انها جميلة وجميع التمهيد، ونحن في طريقنا لجعل هذا الزر الافتراضي. دعونا فقط جعله كبيرة من أجل المتعة. وداخله، يمكننا أن نضع بعض النص. ولكن ما التمهيد يوفر غير glyphicons. حتى نتمكن من إضافة فعلا في ذلك قلم رصاص لطيفة التي رأيناها في وقت سابق. Glyphicon. Glyphicon-قلم رصاص. ولذلك فإن هذا سوف تسمح لنا لوضع في رمز بدلا من النص. الآن إذا كنا لا تتوقف، وهذا سيحدد هذا القسم. و، مهلا. لدينا زر لطيف الذي يربطنا مباشرة إلى إضافة صفحة بلوق وظيفة. لذلك لدينا بلوق بسيطة إلى حد ما. ويمكننا أن نضيف الاشياء لذلك. ولكن ماذا نتوقع عموما من بلوق والتعليق. لذلك فمن المهم حقا بالنسبة لنا أن يكون، أقول، إذا كان شخص آخر يزور موقع على شبكة الانترنت وحقا يحب أن آخر يمكنهم الانخراط في النقاش مع الناس الآخرين الذين يقومون بزيارة الصفحة. لذلك نحن ذاهبون للذهاب وإنشاء جدول قاعدة بيانات جديدة ونموذج جديد حتى نتمكن من المنتسبين تعليقات على مشاركات. وبالتالي فإن الخطوة الأولى، تماما مثل من قبل، هو أننا بحاجة لتشغيل الهجرة. لذلك مثل قبل، ونحن نفعل فب الحرفيين يهاجر: جعل. ونحن في طريقنا لإنشاء واحد دعا create_comments_table. وهذا إنشاء ملف الذي لديه الهجرة الجديدة. ونحن في طريقنا ل، مثل قبل، وتحديد جدول جديد. لذلك مخطط :: إنشاء دعا الجدول تعليقات. هذه وظيفة هنا. وداخل هذا الجدول ما نحن ذاهبون الى القيام به هو أولا، قبل مثل، تعيين ID. زيادات ID. ونحن في طريقنا للسماح للمستخدمين المنتسبين اسمهم مع تعليق معين. ونحن في طريقنا لديك بعض المحتويات التي يسير جنبا إلى جنب مع هذا، ومحتوى النص. وهنا ما نحن في طريقنا ل القيام به هو شيء مختلف. ونحن في طريقنا لإنشاء عدد صحيح وهذا ما يسمى post_id التي يجري للدلالة على ما وظيفة تعليق معين يذهب مع. وبالإضافة إلى ذلك، نحن ذاهبون فعلا ل وضع قيد مفتاح خارجي في هذا الشأن. حتى الخلية وفرض ذلك. نحن لا نسعى ل تعيين عدد تعليق 5 لإضافة 5،000 اذا كان لدينا لا كان 5،000 المشاركات على ذلك. لذلك ما نقوم به هنا، نقوم به post_id الأجانب سوف يتم المرتبطة حقل معرف من المشاركات الجدول. ونحن سوف تفعل في الواقع شيئا مفيدة آخر، هو onDelete. لذلك إذا أردنا حذف بعض الرد على من قاعدة البيانات، أننا نريد أن تتالي حذف للتعليق أيضا. لأنها ليست مفيدة جدا ان يكون لدينا تعليقات على المشاركات التي لم تكن موجودة. وأخيرا، مثل قبل، ونحن الذهاب لضبط الوقت الطوابع على هذا. ومثل قبل، ونحن في طريقنا لل لديك الهجرة العكسية تكون إسقاط الجدول تعليقات. حتى الآن إذا عدنا إلى هنا، ونحن في طريقنا لتشغيل هذه الهجرة، الحرفيين الهجرة. والآن انها تطبق هذا الهجرة التي خلقنا فقط. حتى إذا كان لدينا نظرة على بريس، نقوم به، في الواقع، الآن لديك جدول الذي يحتوي على تعليقات هيكل أننا محددة فقط. مثل ذلك من قبل، نحن الذهاب الى خلق نموذج جديد إلى المجرد جدول SQL أننا بإنشائها. لذلك دعونا إضافة ملف جديد. ونحن في طريقنا إلى نسميها comment.php. وهذا هو في الواقع سيكون إلى حد ما مباشرة مع تغيير طفيف من ما كان لدينا من قبل. حتى الطبقة تعليق يمتد الفصيح. وما نحن ذاهبون القيام به هنا هو تعريف وظيفة هذا هو العلاقة مع نماذج أخرى. لذلك نحن في طريقنا لديك وظيفة وظيفة هنا وترجع هذه العلاقة. لذلك نحن تحديد أن هذا ينتمي للنشر، قائلا أن هناك وظيفة واحدة أن هذا التعليق ينتمي إليها. وهذا له فعلا أن تكون P عاصمة للنموذج. والآن فقط على الوجه الآخر الجانب، علينا أن نقول ذلك، مهلا. المشاركات ديهم تعليقات. وذلك ما نحن بصدد القيام به هو تعريف تعليقات ظيفة عمومية. وهنا يتم إرجاعها وهذا له العديد من تعليق. وحتى الآن بطريقة سحرية عندما يكون لدينا وظيفة، يمكننا الحصول على تعليقات السمة وانها سوف ملء ذلك مع المعلومات من قاعدة البيانات. لذلك دعونا في الواقع تذهب من خلال و إضافة ميزة جديدة إلى ملف وجهة نظرنا لذلك ما في وسعنا كلا عرض وخلق التعليقات. لذلك نحن ذاهبون لتحديد القسم الجديد. دعونا فقط تفصلها مع قاعدة أفقية. القسم معرف = "التعليقات". ما نحن في طريقنا للقيام هنا هو، مثل قبل، تكرار خلال كل التعليقات. حتى في الواقع كيف نفعل هذا هو، كما ذكرت، السحرية إلى حد ما. ونحن نفعل إضافة التعليقات. ومن ثم يمكننا أن نفعل هذا لكل حلقة على كل من التعليقات. وما نحن في طريقنا ل القيام به هو الطبقة شعبة تعليق، ونحن في طريقنا إلى الواقع طباعة هذا التعليق. ذلك أن عرض مهلا، التعليق name-- الشخص الذي نشر هذا comment-- وتقول نقطة نقطة نقطة. ونحن في طريقنا لوضع هذا في كتلة الاقتباس، فقط لجعلها تبدو لطيفة. ومن ثم التعليق المحتوى كتلة الاقتباس. وforeach. وحتى الآن هذا هو الذهاب الى حلقة من خلال جميع التعليقات مقترن مع كل من الوظائف وعرض كل من تلك التعليقات. انا ذاهب لإضافة قسم آخر أسفل هنا، والذي يسمح لنا لإضافة تعليق. الطبقة H3 ذلك. ضع عنوانا هنا. إضافة تعليق. ونحن في طريقنا لتحديد نموذج جديد. مثل ذلك من قبل، نحن تنوي القيام به عمل النموذج. وهنا، فإن العمل الجديد هو نحن الذهاب لتعريف وحدة تحكم جديد يسمح لنا الاستجابة للنشر طلبات لإنشاء التعليقات. لذلك URL :: الطريق createComment. انا ذاهب الى تمرير في المعلمة هنا. معرف آخر أن نحن بصدد إنشاء تعليق على. ومن ثم طريقة هذا يسير النموذج ليكون آخر. الآن ونحن في طريقنا لإضافة في في حقلين، مجموعة النموذج. هذا سيكون مدخلا ل اسم "اسم" والطبقة = "تحكم النموذج"، اكتب = "النص"، ومع نائب = "اسمك". ونحن في طريقنا أيضا لتحديد حقل نموذج آخر، والذي وسيكون النص منطقة كما كنا من قبل. تماما مثل قبل، الذي يطلق عليه المحتوى. الطبقة = "تحكم النموذج". نائب = "كتابة هنا." وفقط حتى يتسنى لنا يمكن تقديم فعلا، تقديم نوع والطبقة = "BTN BTN الابتدائي". إغلاق النموذج. إغلاق هذا الإجراء. حتى الآن إذا كنا تحديث هذه الصفحة حيث لدينا، على سبيل المثال، وهي وظيفة معينة. لدينا لإعادة تشغيل الخادم. PHP الحرفيين خدمتها. إعادة تشغيل هذا. لدينا لتحديد الطريق. لكنه الآن، دعونا نلقي فقط هذا من ذلك أننا يمكن أن تظهر في الواقع كنت ما تبدو مثل صفحة، ثم سنقوم في الواقع خلق هذا الطريق. لذلك، مهلا. لدينا هذا الشكل الجديد أسفل هنا حتى نتمكن من خلق التعليقات. لذلك دعونا فعلا تحديد وظيفة ضمن وحدة تحكم حتى نتمكن من إضافة تعليقات. دعونا نعود. وضمن blogcontroller.php، ما نحن في طريقنا للقيام هو خلق وظيفة جديدة ودعا خلق تعليق. وظيفة العام createComment. هذا وستكون لدينا واحدة المعلمة، ID للوظائف اننا تعليقا على. ومثل قبل، ونحن الذهاب إلى أول الحصول على وظيفة. إضافة لذلك، findOrfail الهوية. بعد ذلك، نحن ذاهبون لخلق تعليق جديد. حتى التعليق = تعليق جديد. التعليق اسم = الإدخال :: الحصول على اسم. تعليق المحتوى = نفس الخط الجديد في فواصل من المدخلات :: الحصول على المحتوى. وأخيرا، نحن ذاهبون لدينا ل ربط هذا التعليق مع هذا المنصب. لذلك نحن في طريقنا للاستخدام هذه الوظيفة، والتعليقات، التي تسمح لنا لانقاذ هذه العلاقة. وحتى الآن هذا التعليق سيكون لها تلقائيا ID آخر. نحن يمكن أيضا تعيين يدويا، ولكن هذا هو أكثر سهلة القراءة بقدر ما يذهب الدالة. وبعد أن نفذ هذا ما نريد أن نفعله هو إعادة توجيه المستخدم إلى الطريق المحدد من قبل viewPost مع مجموعة مع المعلمة معرف آخر. والآن حتى أن هذا الواقع وظائف، ونحن بحاجة لتعريف هذا الطريق. الطريق :: آخر. والآن ونحن في طريقنا لهذه الكلمة آخر خفض مائل ID تعليق. مجموعة يستخدم الدالة جديدة أننا بإنشائها. BlogController. CreateComment كما createComment. عظيم. وحتى الآن ونأمل إذا كنا تحديث هذه الصفحة وإضافة في تعليق، مثلا، ديفيد مالان. "نأمل أن هذا يعمل." إرسال. نحن لا، في الواقع، لديها التعليق على هذا بلوق وظيفة. باردة. حتى الآن لدينا إلى حد ما بلوق وظيفة وظيفية. نحن مجرد الذهاب ل إضافة بتعديل زوجين حتى أن لدينا بعض أكثر فائدة معلومات عن هذه الوظائف. حتى إذا رجعنا إلى الصفحة الأولى، ليس لدينا إحساس من كم هي تعليقات على كل من هذه الوظائف. وذلك ما نحن ذاهبون فعلا القيام به هو، داخل نموذجنا، تعريف دالة المساعد الذي يسمح لنا لتحديد عدد من التعليقات التي تذهب مع وظيفة معينة. لذلك نحن ذاهبون الى خلق وظيفة مساعد. وظيفة عامة. GetNumCommentsStr. لذلك سلسلة تحدد عدد من التعليقات التي تتماشى معها. وما نحن بصدد القيام به هو القول أن الأسطوانات = هذا عدد التعليقات. لذلك نحن ذاهبون الى الاعتماد عدد التعليقات. وإذا كان هذا الرقم يساوي 1، ونحن مجرد الذهاب الى العودة 1 تعليق. ثم خلاف ذلك، ونحن نريد للعودة في سلسلة من الأسطوانات والتعليقات، حتى نحصل على صيغة الجمع صحيحة. مجرد جعل هذا الاقتباس واحد. تعليق واحد. والآن يمكننا استخدام هذه الوظيفة مباشرة من داخل وجهة نظرنا. حتى إذا رجعنا إلى المشاركات الجزئية التي خلقنا، الآن نريد أن الواقع عرض عدد من التعليقات. وذلك ما يمكننا القيام به هو آخر، استخدام هذه الوظيفة أن خلقنا فقط ل عرض عدد من التعليقات. لذلك إذا أردنا تحديث، عليه الآن لا، في الواقع، عرض التعليقات عدد التي تتماشى معها. إذا أردنا أن تكون نزوة إذا كنت في الواقع ننظر إلى رمز التوزيع، يمكننا ربط الواقع هذا على التعليقات. إذا كنت تذكر، حددنا داخل عرض أن هذا له تعليقات القسم ID. لذلك إذا أردنا فعلا أن تصل مباشرة إلى قسم التعليقات، ما كنا نفعله هنا هو أ href URL من viewPost الطريق. تمر في معرف مجموعة من معرف آخر. ثم نريد أن نذهب إلى وتحديدا قسم التعليقات. هنا دعونا إغلاق علامة. حتى الآن إذا كنا تحديث هذه الصفحة، نحن انقر على هذا. سنذهب مباشرة إلى قسم التعليقات. لو كان لدينا وظيفة أطول، يمكنك نرى في الواقع هذا ترتد إلى أسفل. ولكن ستلاحظ أنه لا في الجزء العلوي من الصفحة. باردة. عظيم. لذلك هذا هو واضحة إلى حد ما مثال على شيء بسيط التي يمكنك القيام به مع لارافل. ولكن يمكنك أن تلاحظ هنا أن لقد فعلت الكثير من الأشياء مع كمية قليلة نسبيا من التعليمات البرمجية. لارافل يسمح لنا للقيام استفسارات SQL وراء الكواليس. أنه لا والصرف الصحي بالنسبة لنا وراء الكواليس. يسمح لنا أن نفعل هذه العلاقات بسهولة جدا دون الحاجة لنا للقيام بأي SQL الانضمام تصريحات ل الجمع بين التعليقات مع ما الوظائف. يسمح لنا للقيام بذلك الميراث من القوالب حتى نتمكن من تحديد هذه التعشيش الملفات لذلك نحن لا يعيد أنفسنا، تماما مثل عندما كان لدينا أن العرض من بلوق وظائف أننا لم يكن لديك ل نسخ ولصق التعليمات البرمجية. ومن هنا يمكنك بناء التطبيقات المعقدة على نحو متزايد. يمكنك أن تتخيل إذا كنا أراد لتنفيذ الدخول إلى الموقع، يمكننا القول، وجلب طرف ثالث الإطار الذي يسمح لنا أن نفعل ذلك. هناك حفنة منهم التي هي حقا، حقا عظيم التي يمكن أن تفعل مثل، استعادة كلمة السر. وسوف نرسل لك إعادة تعيين كلمة المرور البريد الإلكتروني. يمكننا تنفيذ إذن حتى أستطيع أن إنشاء وظيفة، ولكن شخص آخر لا يمكن تحريره. يمكننا تنفيذ وظائف لحذف المشاركات. لكن يمكنك أن ترى هنا ان لدينا جميلة الكثير من جميع مكونات بدائية لبناء بعض حقا، حقا، تطبيقات الويب الديناميكية ومثيرة. حتى مع ذلك، أعتقد نحن في حالة جيدة. لا يا رفاق لديك أي أسئلة؟ نعم؟ SPEAKER 3: كيف لك الحصول على محتوى ثابت؟ ERIC اويانغ: محتوى ثابت. لذلك رأيت قبل ذلك عندما كان لدينا هذا الحق هنا، هذا المحتوى التخطيط، عرض جعل، وكان هذا نحن من دون هذه المجموعة بعد ذلك. Blog.index، وكان هذا نحن كما مجرد ملف ثابت. لذلك إذا كنا لا تمر أي شيء على طول لذلك، انها سوف فقط جعل HTML مباشرة. ولكن إذا كنا تمرير في هذا النقابي مجموعة من الوظائف، والذي هو حيوي سحبت من قاعدة البيانات، ونحن يمكن أن تجعل من الصفحة الديناميكية. باردة. أي أسئلة أخرى؟ SPEAKER 3: كيف تقارن لارافل لربما بعض الخيارات الأخرى؟ ERIC اويانغ: بالتأكيد. نعم. لذلك لارافل is-- هذا وquestion-- كبيرة واحدة من العديد من الخيارات للأطر الويب. لذا روبي على القضبان هو واحد هذا هو شعبية. أعتقد تويتر اعتادت ان تكون نفذت مع روبي على القضبان. أعتقد أنهم قد تحولت منذ. هناك واحد آخر يسمى FuelPHP. لذا روبي على القضبان يستخدم لغة روبي وينفذ الكثير من الاشياء MVC الذي نراه هنا. FuelPHP هو إطار PHP آخر. جانغو هي واحدة من المفضلة. إنها إطار الشبكة لبيثون. حتى تتمكن من كتابة التطبيق الويب الخاص بك في بيثون. لذلك هناك طن من هذه الخيارات. لارافل، كما أعتقد، من قبل و كبير هو حقي المفضل الآن لPHP لمجرد من مكونات التي تحدثنا عنها في وقت سابق. مكنها من الملحن. ويتضمن حقا، حقا نظام ORM معبرة. لديها أيضا النموذجيه رائع حقا اللغة التي بعض من الآخرين فقط لا تقدم. والهجرات. الهجرات مروعة كذلك. بارد؟ رائع. حسنا، شكرا جزيلا ل مشاهدة هذه الندوة، وحظا سعيدا على المشاريع النهائية الخاصة بك.