آموزش لاراول قسمت ۱

مقایسه php7 و php5

برنامه‌های لاراول از الگوی طراحی MVC یا همان Model-View-Controller استفاده می‌کنند که موارد زیر را شامل می‌شود:
Controller: مدیریت درخواست‌های کاربر و بازیابی داده‌ها توسط مدل‌ها
Models: ارتباط با پایگاه داده و بازیابی اطلاعات اشیاء
Views: رندر صفحات
علاوه بر این‌ها، مسیرها (routes) برای map کردن URLها به اکشن‌های کنترلر مورد استفاده قرار می‌گیرند.

همانطور که در شکل بالا مشاهده می‌کنید، مراحل کار به صورت زیر است:

– یک کاربر وارد URL مربوط به برنامه شما می‌شود.
– یک مسیر مرتبط با آن URL به اکشن‌‌های کنترلر map می‌شود.
– این اکشن کنترلر، مدل یا مدل‌های موردنیاز پایگاه داده را برای بازیابی اطلاعات در اختیار شما قرار می‌دهد و سپس داده‌ها را به یک view منتقل می‌کند.
– این view آخرین صفحه را به کاربر نمایش می‌دهد.

ساخت یک پروژه MVC در لاراول

در این مقاله، قصد داریم شما را با فرایند ساخت یک نمونه پروژه در لاراول با الگوی MVC اشنا کنیم. فرض کنید، برنامه ما درباره معامله خودرو (car) است.
اولین کاری که باید انجام دهیم، ایجاد یک مدل برای نمایش خودروها است. لاراول به همراه خود یک خط فرمان به اسم Artisan CLI دارد که با مجموعه‌ای از دستورات مفید به شما در ساخت پروژه لاراول کمک می‌کند.

ساخت یک مدل (model) در لاراول

این دستور آرتیسان را برای ساخت مدل Car اجرا کنید:

$ php artisan make:model Car --migration

تمام مدل‌ها در دایرکتوری app برنامه ذخیره می‌شوند، این دستور فایل مدل app/Car.php با کدهای زیر را تولید می‌کند:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Car extends Model
{
    //
}

با توجه به قابلیت پیاده سازی مدل‌ها در لاراول، پس از ایجاد یک کلاس مدل خالی، لاراول در نظر می‌گیرد که این مدل با یک جدول در پایگاه داده به نام cars ترکیب شده است.

همچنین، با گزینه --migration در زمان تولید مدل، لاراول یک فایل مایگریشن در پایگاه داده جهت ایجاد جدول cars ایجاد می‌کند. فایل مایگریشن در [timestamp]_create_cars_table.php قرار دارد و دارای کدهای زیر است:

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateCarsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('cars', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

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

اکنون، کاری که باید انجام دهید، این است که فایل migration را تکمیل کنید. بنابراین، می‌توانید چند ستون اضافی برای جدول cars به صورت زیر تعریف کنید:

.
.
.
  Schema::create('cars', function (Blueprint $table) {
    $table->increments('id');
    $table->string('make');
    $table->string('model');
    $table->date('produced_on');
    $table->timestamps();
  });
.
.
.

سپس، می‌توانید migration را برای ایجاد جدول cars با استفاده از دستور آرتیسان زیر اجرا کنید:

$ php artisan migrate

اکنون می توانیم یک کنترلر ایجاد کنیم. توجه کنید که در این مرحله جهت تست، یک مقدار را به صورت دستی به جدول پایگاه داده cars اضافه کردیم.

ساخت کنترلرها در لاراول

در لاراول، نمونه‌ای از یک شئ مانند car به یک منبع یا resource اشاره می‌کند. می‌توانید یک کنترلر منابع یا resource controller ایجاد کنید. این کنترلر تمام درخواست‌های مربوط به آن منبع را مدیریت می‌کند، با استفاده از دستور آرتیسان زیر می‌توانید یک کنترلر ایجاد کنید:

$ php artisan make:controller CarController --resource

این دستور یک فایل کنترلر app/Http/Controllers/CarController.php را با کدهای زیر ایجاد می‌کند:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class CarController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @return Response
     */
    public function store()
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  int  $id
     * @return Response
     */
    public function update($id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return Response
     */
    public function destroy($id)
    {
        //
    }
}

توجه داشته باشید که این کنترلر به صورت خودکار، تمام اکشن‌های مربوط به عملیات CRUD معمول را ایجاد می‌کند. حالا مسیرها یا routes را برای ارتباط دادن URLها با اکشن‌های کنترلر منابع تعریف می‌کنیم.

بازدید: 6

نظر خودتون رو بنویسید.

avatar
  اشتراک  
به من وقتی خبر بده که: