Skip to main content

الدرس الثاني: مقدمة بسيطة للتعرف على التوجيهات والواجهات والمتحكمات في الLaravel

الجزء الثاني: مقدمة بسيطة عن الRouting, Controllers, Views


في الحلقة الأولى من دورة Laravel 5 تعلمنا كيفية تحميل وتنصيب Laravel 5 في انظمة الويندوز بدون أخطاء, وقٌمت بتشغيل السيرفر الخاص بالمشروع في Laravel  عن طريق ملف اسمه artisan من خلال سطر الأوامر Command Prompt , وكان الأمر كالأتي: php artisan serve , اليوم سنتكلم حول اساسيات التوجيه Routing وماعمل ال Controllers  والViews بتطبيق عملي:


ماهيَ التوجيهات Routing ؟ واين نجدها ؟ وماعملها؟
التوجيهات Routing عبارة عن ملف php, تجدها في ملف المشروع {App_Name}\app\Http  واسمها routes
عملها: من أسمها تعرف عملها! J التوجيهات! توجيه ماذا؟ توجيه الطلب Request (GET, POST) من المستخدم الى السيرفر, وتحديد من متلقي هذا التوجيه؟ كل هذا يتم داخل هذا الملف!

كما تلاحظ في الصورة ادناه المسار لملف routes.php مع محتوى ملف routes.php

لنأخذ مثال بسيط: عند تشغيل السيرفر Artisan و زيارة الصفحة الرئيسية للموقع  والذي هو http://localhost:8000 اي نوع من الطلبات يتم في هذا الموقف؟ طبعاً نطلب صفحة اي GET لكن السؤال هنا؟ كيف نطبق ذلك بأستخدام الكود؟!
نكتب الكود ادناه:
Route::get('/', 'WelcomeController@index');
ولكن ما الذي يعنيه؟ لاحظ طلب الصفحة الرئيسية للموقع GET  اي اننا نريد الRoot او مايرمز له ب(/) , لقد حددنا ذلكَ ماالتالي؟ الى اين سيتم توجيهنا؟ تم تحديد التوجيه الى استخدام الController الذي اسمه WelcomeController طبعاً الController ملف php ايضاً  , ورمز ال@ يشير الى اي دالة داخل الController يتم استخدامها.

الناتج:
ذلك كان ابسط مثال للتوجيه, والأن اريد عمل توجيه للصفحة التي تتحدث عني؟! اي اذا كتبنا
http://localhost:8000/about
يجب توجيهنا الى صفحة التي تتكلم عني! سيتم انشاء ذلك عند شرح الControllers والViews


ماهي الControllers؟ واين نجدها ؟ وماعملها ؟ وكيفية انشاءها بأستخدام الArtisan؟
الControllers هي ملف php اذ يعمل على استرجاع الأستجابة Response عن طريق الViews او يمكن استرجاع البيانات بصورة مباشرة,
 يمكن ايجاد هذا الملف بهذا المسار: {App_Name}\app\Http\Controllers
عملها: تعمل على استرجاع استجابه للمستخدم بأستخدام احد دوالها اما بأستدعاء View او بأسترجاع بيانات بصورة مباشرة
يمكن انشاء Controller عن طريق Artisan بكتابة الأمر التالي:
C:\first_app>php artisan make:controller myFirst_Controller --plain
في الصورة التالية توضح المسار للControllers والذي تم انشاءه في الأمر اعلاه:
ملاحظة: انشاء الControllers يجب ان يكون عن طريق الArtisan بعكس الViews  والroutes حيث يتم انشاءهما مباشرة كملفات php عادية.


الViews؟ ماهي ؟ اين نجدها؟ وماعملها؟
الViews هي عبارة عن ملفات الphp التي ستحدد ماسيظهر للمستخدم,اي هي التي ستحتوي على الHTML  والCSS والJavaScript ,من اسمها يعني الواجهة View اي مايتم اظهاره بعكس الroutes والcontrollers حيث يقتصر عملها على ادارة العمليات الداخلة والخارجة, اما فيما يخص مايتم اظهاره للمستخدم سيكون عن طريق الViews.
تجد هذه الملفات بمعزل عن الControllers  والroutes في المسار التالي:{App_Name}\resources\views  
ملاحظة:تسمية ملفات الViews يجب ان تكون ملحقة بكلمة blade اي اذا كانت واجهة الAbout ستكون تسميتها كالأتي: about.blade.php
الصورة التالية ستظهر مسار الViews مع الView للصفحة الرئيسية للLaravel:


لنأخذ مثال على ماتم دراسته, ولنقم بعمل الصفحة الشخصية التي تتكلم عني:
اول شيء نقم بعمل الHTML  للصفحة التي ستتكلم عني, كالأتي:
<!doctype html>
<html>
<head><meta charset="utf-8">
<title>About</title>
</head>
<body>
<h1>About Safaa:</h1>
<p>My Name is Safaa Alaa AL-Hayali, I'm 23 years old, From IRAQ, currently I'm working as an engineer at university of koya, web programming, programming generally, it's my interested! </p>
<address>
Written by <a href="mailto:safaa.00165257@gmail.com">Safaa Al-Hayali</a>.<br>
Visit us at:<br>
<a href="http://www.safaaalhayali.com">Safaa Al-Hayali</a><br>
Erbil, 60 Meter Road<br>
IRAQ
</address>
</body>
</html>



هذه الصفحة ستكون الواجهة View للAbout اذ يجب تخزينها في مجلد الViews الذي مساره :
 {App_Name}\resources\views
ملاحظة: اسم الView يجب ان يكون ملحق بكلمة blade , ستكون تسمية الملف كالتالي: about.blade.php

الصورة التالية توضح العملية:


الشيء الثاني الذي يتوجب عمله هو الController ولكن سبق وتعلمنا كيفية انشاء الController بأستخدام الArtisan وانشأت الController الذي اسمه myFirst_Controller في المسار التالي: {App_Name}\app\Http\Controllers
ولكن ينبغي ان نعمل دالة التي ستستدعي تلك الوجهة View about.blade.php :
ملاحظة: عند استدعاء view لا يجب ان نذكر كلمة blade او  .php فقط اكتب اسم الview
public function about()
   {
        return view('about');
   }
الصورة التالية توضح الController مع الدالة:

الشيء الأخير الذي يجب عملة هو التوجيه Routing اي عندما يزور المستخدم هذا الرابط
http://localhost:8000/about
من اين يتم جلب البيانات؟
الحل: عن طريق اضافة الكود ادناه في ملف الroutes.php :
Route::get('about', 'myFirst_Controller@about');
مايعنيه هذا الكود انه عندما يقوم المستخدم بكتابة about سيتوجه للController : myFirst_Controller ويستخدم الدالة about , والدالة about بدورها تستدعي الview التي أسمها about, واخيراً يرجع الHTML للمستخدم


الصورة التالية توضح ملف الroutes.php والكود الذي يجب اضافته:

النتيجة النهائية:


Comments

Popular posts from this blog

PART #2: Registration and Login System Tutorial Using PHP and MYSQL

PART #2: Registration and Login System Tutorial Using PHP and MYSQL Registration and login system using PHP and MySQL database, in this part you will do the following: 1- Creating the registration page. 2- Validating the registration form. 3- Sending the activation link on successful registration. note: you can find the mailserver tool here: [MailServerTool] Good luck. PHP,Mysql,Programming,web development,How to,Technology,web programming,web project ideas,safaa al-hayali,saf3al2a,Registration and login,Registration and login in php,php and mysql login system,registration system using php and mysql,login and register php,login and register php with database,database,php tutorial,learn php,tutorial

How To Play .srt Subtitles File in Windows Media Player

How To Play .srt Subtitles File in Windows Media Player links: https://sourceforge.net/projects/wmpsub/ wmp,.srt Subtitles File in Windows Media Player,How To Play .srt Subtitles File in Windows Media Player,How To,Safaa Al-Hayali,saf3al2a,srt subtitle in WMP,Windows,Windows Media Player,media,.ass,local subtitles

Virtual Box : How to Increase Disk Size - Windows

How to increase disk size or disk storage in oracle virtual box the command you have to use: vboxmanage.exe modifymedium "[YourPathToVdiFileOfYourVirtualMachine]" --resize [NUMBER] virtual,box,vbox,oracle,partition,size,disk,increase,resize,windows,10,microsoft,vdi,vboxmanage,configuration,Safaa AL-Hayali,saf3al2a,Oracle,VirtualBox,How to,windows 10