الأربعاء، 16 أبريل 2014

دورة Laravel4: الدرس الثاني: كل ما يخص المسارات Routes


فى الدرس السابق، تحدثنا عن كل ما يخص قواعد البيانات فى Laravel4، اما الآن إن شاء الله سنتحدث عن المسارات، وهي واحدة من أهم المواضيع الأساسية فى Laravel، الآن لنبدأ!
عند دخولك إلى مجلد app ، ستجد ملف يسمى routes.php، قم بفتحه، ستجد الشيفرة التالية:

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/
Route::get('/', function()
{
return View::make('hello');
});
حسنًا، فلنفهم تلك الشيفرة أولاً، ستجد أنه يوجد كلمة Route،، ((لاحظ أن أول حرف كبير))،، ومن ثم :: ومن ثم get، فإذا إعتبرنا get عبارة عن دالة، فهي تأخذ بارامترين، البارامتر الأول وهو العنوان او الرابط، والبارامتر الثاني وهو عبارة عن دالة لعرض ما نُريد فى هذا العنوان أو هذا الرابط.
وعند وضع / في البارامتر الأول، هذا يعنى أنه سيتم تنفيذ ما بداخل الدالة الموجودة فى البارامتر الثاني فى الرئيسية، وتلك الرئيسية كما قمنا بالتطبيق فى هذا الدرس فإنها على الرابط التالي: localhost/laravel-master/public
دورة Laravel4: الدرس الثاني: كل ما يخص المسارات Routes

ولكن كيف تم عرض هذه الصفحة عبر هذا السطر فقط؟!
return View::make('hello');
هذا السطر ببساطة قام بإستدعاء ملف hello.php الموجود بداخل مجلد views، لذا إذا قمت بفتح هذا الملف ستجد الشيفرات المخصصة لعرض صفحة الرئيسية تلك.
الآن ماذا إذا قمنا بتغيير قيمة البارامتر الأول فى get، وقمنا بجعلها مثلاً profile، وقمنا فى البارامتر الثاني بوضع شيفرة لطباعة Hello World؟! ... ستصبح الشيفرة كالتالي:
Route::get('profile',function(){
echo "Hello World";
});
الآن عبر المتصفح قم بالدخول إلى localhost/laravel-master/public/profile، ستجد كلمة Hello World وذلك لأن الشيفرة التي قمنا بكتابتها بداخل الدالة الموجودة فى البارامتر الثاني تم تنفيذها.
ماذا إذا أردنا أن نقوم بتمرير متغير فى الصفحة؟!
تستطيع ذالك عبر إضافة اسم المتغير بين قوسين {} في أ ى مكان فى البارامتر الأول، ومن ثم تمرير هذا المتغير كـArgument فى دالة البارامتر الثاني، ومن ثم تنفيذ عمليات على هذا المتغير فى الصفحة. كالمثال التالي:
Route::get('profile/{name}',function($name){
echo "Hello World".$name;
});
الآن عبر المتصفح قم بالدخول إلى localhost/laravel-master/public/profile/YourName، ستجد أنه تم طباعة Hello World YourName، حيث أنه يمكنك فى الرابط كتابة أى اسم تريده وسيتم عرضه فى الصفحة !
الآن ماذا إذا كنا نُريد أن نقوم بكتابة ملف منفصل فيه شيفرة لعرض ما نُريد كما الحال فى الصفحة الرئيسية؟!
ببساطة سنقوم بالدخول إلى مجلد  views ثم إنشاء مجلد جديد بداخله مثلاًُ  بإسم profile ومن ثم نقوم بإنشاء ملف بداخله يسمى name.php، وبداخل ملف name.php، سنقوم بكتابة Hello World، أما بداخل ملف Routes.php سنقوم بكتابة الشيفرة التالية:
Route::get('profile', function()
{
return View::make('profile.name');
});
لاحظ أننا قمنا بوضع نقطة . بعد كلمة profile لأننا نريد ملف name الموجود بداخل مجلد profile.
هكذا سيتم عرض كلمة Hello World فى الرابط localhost/laravel-master/public/profile
فى الدرس القادم بإذن الله سنتعرف على كيفية تمرير المتغيرات إلى الملفات الموجودة بداخل مجلد views :)

ليست هناك تعليقات:

إرسال تعليق