Laravel Interview

Laravel Inerview

سلسلة كيف تجتاز مقابلة عمل لارافيل الجزء الأول؟

Laravel Inerview

مقدمة

Laravel Interview

سوف نتعرف في هذه السلسلة عن مفاهيم أساسية عادة يتم سؤالك عنها عند اجراء مقابلة عمل معك كمبرمج أو مطور باستخدام laravel framework ويجب أن تكون ملماً بهذه المفاهيم سواء من الناحية النظرية أو من الناحية العملية وهذا ماسوف نتعلمه في هذه السلسة من خلال إلقاء الضوء على هذه المفاهيم نظرياً وعملياً وسوف يتناول الجزء الأول توضيح للمفاهيم وعناوين الموضوعات الآتية:

  • ما المقوصود بـ OOP؟
  • ما الفرق بين Class – Object؟
  • مكونات إطار العمل لارافيل الأساسية؟
  • ما هي وحدات التحكم Controller في إطار العمل لارافيل؟
  • ما المقصود بالتوجيه Routing في إطار العمل لارافيل؟
  • ما المقصود بـ Eloquent Model في إطار العمل لارافيل؟
  • كيف يتم إنشاء Migration في إطار العمل لارافيل؟

العنوان الأول: ما المقصود بـ OOP:

OOP هي اختصار لجملة Object-Oriented Programming  ويعني البرمجة كائنية التوجه وهو نموذج برمجي تم ابتكاره منذ الستينيات ويعتمد على الفئات Classes والكائنات Objects حيث يتم تقسيم البرنامج إلى وحدات أو كائنات Objects وكل كائن عبارة عن حزمة البيانات.

العنوان الثاني:ما الفرق بين Class – Object :

الفئة class والكائن object هما من أساسيات البرمجة كائنية التوجه OOP

  • الفئة Class يحتوي على الخصائص والمتغيرات والدوال والكائنات

مثال على الفئة Class باستخدام لغة php

				
					
class Courses{
    public $course1 = "php";
    public $course2 = "javascript";
   
}

				
			

وهنا تم إنشاء class يسمى Courses يحتوي على Properties لها خاصية Public

  • الكائنات Objects وهي الكائنات التي سوف ننشأها من الفئة Class ويمكن إنشاء اكثر من كائن من الفئة Class

مثال على الكائنات Objects

				
					<?php
class Courses{
    public $course1 = "php";
    public $course2 = "javascript";
   
}

$obj = new Courses();

echo "Learn ".$obj -> course1." now";

				
			

  سوف يتم طباعة Learn php now عند تنفيذ الكود

العنوان الثالث:مكونات إطار العمل لارافيل الأساسية:

من اهم الاسئلة في Laravel Inerview يستخدم لارافيل  النمط المعماري  البرمجي (MVC) Architectural design pattern  وهو من اشهر أنماط  Software design  pattern في إنشاء البرمجيات

وتتكون MVC من:

  • التعامل مع الواجهات Views
  • وحدات التحكم Controllers
  • التعامل مع قواعد البيانات من خلال النماذج Model

وتعبتر هذه هي المكونات الأساسية لمشروع تم برمجته بإطار Laravel

العنوان الرابع:ماهي وحدات التحكم Controller  في إطارالعمل لارافيل :

هي وحدات وظيفتها استقبال طلبات المستخدم من خلال التوجيه Route والتعامل مع البيانات من خلال النماذج Models وعرض هذه البيانات للمستخدم بواسطة Views

مثال على طريقة إنشاء controller

من خلال كتابة الأمر التالي

				
					php artisan make:controller TestController
				
			

العنوان الخامس:ما المقصود بالتوجيه Routing في إطار العمل لارافيل :

التوجيه Routing  مسئول عن مسارات عناوين URL من خلال التحكم في سلوك هذه المسارات من خلال إنشاء هذه المسارات وتوجيهها لمكان ما ويتم كتابة هذه الأوامر الخاصة بتوجيه المسارات داخل ملف

Laravel Inerview

أنواع التوجيه Route في إطار العمل لارافيل :

  • المسارات الأساسية Basic Route: وهي المسارات التي تتعامل مع مع HTTP Requests مثل GET POST PUT DELETE

مثال:

				
					Route::get('/test', [TestController::class,'index']);
				
			
  • معلمات المسار Route Parameters : وهي عبارة عن المعلمات Parameters التي يتم تمريرها بواسطة المسارات URL

مثال:

				
					Route::get('/test/{id}', [TestController::class,'show']);
				
			
  • المسارات ذات الأسماء Named Route :

مثال:

				
					Route::get('/posts/create', [PostController::class,'create'])->name('add_new_post');
				
			
  • مجموعة المسارات Routes Group :

تجميع المسارات ذات الصفات المشتركة لسهولة التعامل معها من حيث التعديل وإصلاح الأخطاء ويساعد ذلك في تنظيم المسارات داخل مشروعك

مثال:

				
					Route::group(['prefix'=>'posts'], function(){
    Route::get('/', [PostController::class,'index']);
    Route::get('/{id}', [PostController::class,'show']);
    Route::get('/create', [PostController::class,'create'])->name('add_new_post');
    Route::post('/store', [PostController::class,'store'])->name('store');
});

				
			
  • مسارات ذات الموارد Resource Route :

وهي المسارات التي تنشيء تلقائياً العمليات المسماه بـ CRUD (create , read , update , delete)

مثال:

				
					Route::resource('test', TestController::class);
				
			
  • مسارات موارد واجهة برمجة التطبيقات API Resource Routes :

مثال:

				
					Route::apiResource('test',TestController::class);
				
			
  • مسارات العودة للوراء Fallback Route :

تحديد مسار يتم تنفيذه عندما لايتطابق أي مسار مع الطلب الوارد  ويجب أن يكون الكود في اخر الملف

مثال:

				
					Route::fallback(function(){
  return abort(404);
});

				
			

العنوان السادس: ما المقصود بـ Eloquent Model  في إطارالعمل لارافيل :

النماذج Models هي جزء من بنية MVC وهي التي تتيح لنا التعامل مع قاعدة البيانات بشكل سهل وفعال

مثال على إنشاء نموذج Model في إطار العمل لارافيل :

من خلال الأمر التالي سوف ننشيء نموذج يسمى Post ومن خلاله سوف نتعامل مع جدول posts الموجود في قاعدة البيانات

				
					php artisan make:model Post
				
			

والكود التالي من داخل ملف النموذج Post.php

				
					class Post extends Model
{
    use HasFactory;
    protected $table_name = "posts";
    protected $primary_key = "id";
    protected $fillable = ['title','details'];
}

				
			

وكما ترى فإنه يتعامل مع جدول posts الموجود في قاعدة البيانات من حيث حماية الحقول مثل حقل المفتاح الأساسي وإتاحة تعبئة بعض الحقول الأخرى مثل حقلي العنوان والتفاصيل title, details

العنوان السابع: كيف يتم إنشاء Migration في إطار العمل لارافيل :

من خلال الأمر التالي سوف ننشيء جدول داخل قاعدة البيانات وسوف نقوم بتسمية الجدول posts

مثال:

				
					php artisan make:migration  create_posts_table
				
			

وسوف يتم تخزين ملف خاص بالجدول داخل مجلد migrations ، وهذا الكود من داخل الملف الذي تم إنشاءه بالفعل

				
					return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->string('details');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('posts');
    }
};

				
			

وكما يتضح أمامك الجدول يحتوي على حقول id,title,details بالاضافة timestamps التي سوف تنشيء تلقائياً حقلي created_at, updated_at

ولإدراج هذا الجدول داخل قاعدة البيانات الموجودة في مشروعك عليك كتابة الأمر التالي

				
					php artisan migrate
				
			

وبهذا يكون قد انتهى الجزء الأول من سلسلة كيف تجتاز مقابلة عمل خاصة بإطار لارافيل وسوف نتحدث إن شاء الله في الجزء الثاني عن موضوعات أخرى مهمة لا تخلو منها الأسئلة التي سوف توجه إليك أثناء إجراء مقابلات العمل الخاصة بإطار لارافيل

المراجع

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Scroll to Top