ساخت دستور artisan در لاراول 5.8

امید کیانی 525 بازدید 1398/05/14
ساخت دستور artisan در لاراول 5.8

فریموورک لاراول شامل دستورات زیادی است که علاوه بر آسان تر شدن روند توسعه،باعث سرعت بخشیدن به آن نیز می شود.

بعضی از این دستورات در زیر آمده است.

//create Model
php artisan make:model <model name>

//create Controller
php artisan make:controller <controller name>

//...

در پروژه های لاراول،ما از ساختاری استفاده می کنیم که کمک می کند لایه ها و منطق برنامه را از هم جدا کنیم.به طوری که کنترلر ما باید شامل حجم کمتری از کد باشد که اصطلاحا می گوییم: "Your controller should do as little as possible"

در این قسمت ما یک لایه برای کلاس های service ها که منطق برنامه را در خود جای می دهد و یک لایه برای کلاس های repository ها که برای ارتباط با دیتابیس است، در نظر می گیریم.

کنترلر ما در صورت نیاز کلاس های Serviceها را صدا زده و سرویس ها نیز در صورت ارتباط با دیتابیس، Repository مورد نظر را فراخوانی می کنند.

اکنون ما می خواهیم دستوری ایجاد کنیم که به ما کمک می کند کلاس های Serviceها و Repositoryها را با سرعت بیشتری ایجاد کنیم.

ساخت یک دستور

برای ساخت یک دستور مانند زیر عمل می کنیم:

php artisan make:command <command name>

دستور AddService را ایجاد می کنیم:

php artisan make:command AddService

این دستور AddService.php را در مسیر app\Console\Commands برای ما ایجاد می کند.

اکنون یک فایل با نام services.stub را در مسیر app/Console/Commands/Stubs/service.stub ایجاد می کنیم.

 

در فایل services.stub، کلاسی با نام DummyClass مانند زیر ایجاد می کنیم.

<?php

namespace DummyNamespace;


class DummyClass 
{

}

 فایل AddService.php را باز کرده و کد زیر را درون آن کپی می کنیم.

<?php

namespace App\Console\Commands;


use Illuminate\Console\GeneratorCommand;
class AddServices extends GeneratorCommand
{
    /**
     * The console command name.
     *
     * @var string
     */
    protected $name = 'make:service';
    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Create a new service  class';
    /**
     * The type of class being generated.
     *
     * @var string
     */
    protected $type = 'Services';
    /**
     * Get the stub file for the generator.
     *
     * @return string
     */
    protected function getStub()
    {
        return __DIR__.'/stubs/services.stub';
    }
    /**
     * Get the default namespace for the class.
     *
     * @param  string  $rootNamespace
     * @return string
     */

    protected function getDefaultNamespace($rootNamespace)
    {
        return $rootNamespace.'\Services';
    }
}

حال با دستور زیر Service ی با نام TeacherSevice ایجاد می کنیم:

php artisan make:service TeachersService

این دستور کلاس TeacherService.php را درون پوشه ی services برای ما ایجاد می کند.

 

شما همچنین می توانید با دستور زیر لیستی از دستورات Artisan را درون لاراول مشاهده کنید.

php artisan list

 

دیگر مقالات
امید کیانی 790 بازدید 1398/06/18
امید کیانی 545 بازدید 1398/06/17
امید کیانی 837 بازدید 1398/06/07
امید کیانی 624 بازدید 1398/06/11
امید کیانی 1293 بازدید 1398/06/15


نظرات (0)
هنوز نظری ثبت نشده است
برای ثبت نظر ابتدا وارد سایت شوید