الجزء الثاني: مقدمة بسيطة عن ال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
Post a Comment