تعداد بازدید: 752

Basic MVC Object

لاراول شئ گرا و بر اساس معماری سه لایه MVC کار می کند.ORM با نام Eloquent دارد و همچنین از ابزارهایی نظیر MiddleWare و Request و Routing و Migration در اون استفاده میشه.

معماری سه لایه MVC در لاراول – Basic MVC

سه لایه اصلی در نرم افزار لاراول به شرح زیر است :

  • Model : کار با پایگاه داده و در ارتباط با controller و جزو لایه های پردازشی اپلیکیشن.
  • View : لایه نمایش که خروجی نهایی را به کاربر نمایش می دهد.
  • Controller : لایه واسط میان view و controller در اپلیکیشن.

اشیا در دنیای برنامه نویسی شامل عملگر (Action) و صفت (Attribute) هستند. مثلا شئ Product دارای صفاتی مانند name , price است و عملگر هایی مانند save , new است.

به ازای هر شئ ممکن است که هر یک از لایه های model , view , controller را داشته باشید. تفکر شئ گرایی (object oriented) در نهایت به ازای اجرای هر بار برنامه تعدادی شی ساخته می شود که هر شی مجموعه ای از صفات و عملگر هایی است که در طول برنامه استفاده می شود.

ما در طول برنامه بنا به نیاز خودمون به هر یک از اشیا دسترسی داریم و از صفات و عملگر های اون استفاده می کنیم.

الگوی تفکر شئ گرایی در لاراول یا همان ORM که با نام Eloquent شناخته می شود این امکان را برای ما فراهم می کند تا اگر از این الگو برای ساخت و ارتباطات میان اشیا و جداول پایگاه داده استفاده کنیم می توانیم از امکانات برنامه نویسی لاراول استفاده کنیم که هم object oriented تر هست و هم خوانا تر و ساده تر و کدنویسی ما را هم سریعتر می کند.

ماژول های مورد نیاز برای هر شی در لاراول

برای هر شی ما ماژول های زیر را نیاز داریم :

  • Migration : ساخت جدول در پایگاه داده .
  • Route : لینک ها که هر کدام یک عملگر می تواند باشد.
  • Request : یک شئ درخواست که با استفاده از اون می شه validation های مورد نظر رو پیاده سازی کرد و با MiddleWare ها و sesseion ها ارتباط برقرار کنید (در صورت این که این ماژول رو براش پیاده سازی نکنید به صورت پیش فرض ای شی از کلاس دیگری در لاراول موجود است).
  • Controller : لایه واسط میان model و controller
  • Model : لایه ارتباط با پایگاه داده
  • View : لایه نمایش به کاربر

نکته : هر زمان قصد ساخت یک شئ برای اپلیکیشن خودتون داشتید موارد بالا رو براش در نظر بگیرید برخی از اون ها ممکنه که بسته به نیاز اختیاری یا اجباری باشه.

برای ساخت یک شی (Resource) در لاراول می توان با فرمان زیر یک model , migrate , controller رو بسازید :

php artisan make:model -c -m Order
#migration,controller,model,factory
#php artisan make:model -mfc Order

با فرمان بالا OrderController و Order و create_order_table ساخته می شود که مربوط به controller , model , migration می شود.

نکته : در زمان اجرای فرمان make:model نام را مفرد انتخاب می کنیم و با پارامتر های -m نام جدول پایگاه داده و migration جمع پارامتر ما خواهد بود. به طور مثال product = products , category = categories . پس مهم است که نام مدل ها را با معنی انتخاب کنیم.

نکته : هر مدل می تواند کنترلر های زیادی به تفکیک داشته باشد. در راستای احقاق single responsibility principle باید منطق های متفاوت در کلاس های متفاوت باشند. به طور مثال ما یک مدل user داریم و به ازای آن می توان LoginController , RegisterController , ResetPasswordController , … داشته باشیم.

با توجه به نیاز های خود Route های لازم را بسازید. view های لازم جهت نمایش را بسازید و در صورت لزوم Request لازم را بسازید یا از اشیا موجود در قبل استفاده کنید.

ماژول controller برای شئ order :

namespace App\Http\Controllers;
use Illuminate\Http\Request;
class OrderController extends Controller{}

ماژول model برای شئ order :

namespace App;
use Illuminate\Database\Eloquent\Model;
class order extends Model{}

ماژول migration برای شئ order :

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateOrdersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('orders', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

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

روال کار اپلیکیشن لاراول از Request تا Response

با درخواست کاربر از طریق لینک route مورد نظر را فراخوانی می کند و شئ request ساخته می شود و middleware ها فیلتر های لازم را بر روی درخواست انجام میدهند که نمونه ای از آن validate می باشد. در route نیز callback به فراخور route استارت می خورد که معادل است با controller (متدی از یک کلاس controller) و controller با ارتباط با model و request (که باید namespace های آن ها نیز در controller فراخوانی گردد) و پردازش لازم را انجام می دهد تا جایی که خروجی ها را در قالب پارامتر هایی به view ارسال کند و view نیز برای کاربر نمایش داده شود.

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای Basic MVC Object

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *