ဆောင်းပါးများ

Laravel ရှိ ဝန်ဆောင်မှုပေးသူများ- ၎င်းတို့သည် အဘယ်နည်းနှင့် Laravel ရှိ ဝန်ဆောင်မှုပေးသူများကို အသုံးပြုနည်း

Laravel ဝန်ဆောင်မှုပေးသူများသည် အပလီကေးရှင်းကို စတင်သည့် အဓိကနေရာဖြစ်သည်။ ဆိုလိုသည်မှာ၊ အဓိက Laravel ဝန်ဆောင်မှုများနှင့် အပလီကေးရှင်းဝန်ဆောင်မှုများ၊ အတန်းများနှင့် ၎င်းတို့၏မှီခိုမှုများကို ဝန်ဆောင်မှုပေးသူများမှတစ်ဆင့် ဝန်ဆောင်မှုကွန်တိန်နာတွင် ထည့်သွင်းထားသည်။ 

တစ်နည်းဆိုရသော် ဝန်ဆောင်မှုပေးသူများသည် Laravel ဟုခေါ်သော အင်ဂျင်၏ "service container" ဟုခေါ်သော တိုင်ကီထဲသို့ "အတန်းအစား" လောင်စာဆီ လောင်းထည့်သည့် လမ်းကြောင်းတစ်ခုနှင့်တူသည်။

နမူနာ

config/app.php ကိုဖွင့်ပါက "provider" အမည်ဖြင့် array တစ်ခုကိုတွေ့ရပါမည်။

'providers' => [

        /*
        * Laravel Framework Service Providers...
        */
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
        Illuminate\Bus\BusServiceProvider::class,
        Illuminate\Cache\CacheServiceProvider::class,
        Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
        Illuminate\Cookie\CookieServiceProvider::class,
        .
        .
        .
],

၎င်းတို့သည် ဝန်ဆောင်မှု ကွန်တိန်နာတွင် ထည့်သွင်းထားသော အခြေခံဝန်ဆောင်မှုများဖြစ်သည့် laravel နှင့် တွဲပေးထားသည့် ဝန်ဆောင်မှုပေးသူ အချို့ဖြစ်သည်။

ငါဘယ်တော့လဲ service provider ဖျော်ဖြေကြပါသလား။

စာရွက်စာတမ်းတွေကို ကြည့်မယ်ဆိုရင် တောင်းဆိုမှုအပေါ် ဘဝသံသရာ စတင်ချိန်တွင် အောက်ပါဖိုင်များကို လုပ်ဆောင်သည်-

  • public/index.php
  • bootstrap/app.php
  • app/Http/Kernel.php နှင့်သူ၏ Middlewares
  • Service Providers: ဤဆောင်းပါး၏အကြောင်းအရာ

ဘယ် service provider တင်နေကြပြီလား? 

သူတို့က အဲဒါတွေ defiarray တွင် nites config/app.php:

return [
 
    // ... other configuration values
 
    'providers' => [
 
        /*
         * Laravel Framework Service Providers...
         */
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
 
        // ... other framework providers from /vendor
        Illuminate\Validation\ValidationServiceProvider::class,
        Illuminate\View\ViewServiceProvider::class,
 
        /*
         * PUBLIC Service Providers - the ones we mentioned above
         */
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        // App\Providers\BroadcastServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,
 
    ],
 
];

ငါတို့မြင်နိုင်သည်အတိုင်း, စာရင်းတစ်ခုရှိပါတယ်။ service provider ဖိုဒါတွင် အများသူငှာ မဟုတ်ပါ။ /vendor၎င်းတို့ကို မထိရ၊ မပြင်ဆင်သင့်ပါ။ စိတ်ပါဝင်စားသူတွေကတော့ အောက်မှာဖော်ပြထားပါတယ်။ BroadcastServicerProvider အသုံးနည်းသောကြောင့် ဖြစ်နိုင်သည်။

ဤဝန်ဆောင်မှုပေးသူအားလုံးသည် စာရင်းကို ထပ်ခါတလဲလဲလုပ်ကာ အပေါ်မှအောက်ခြေသို့လည်ပတ်သည်။ နှစ်ကြိမ်:

  • ပထမအကြိမ်ပြန်ဆိုခြင်းသည် ရွေးချယ်နိုင်သောနည်းလမ်းကို ရှာဖွေနေသည်။ register()နည်းလမ်းမစမီ configure လုပ်ထားသည့်အရာများကို (နောက်ဆုံးတွင်) လုပ်ဆောင်ရန်အတွက် အသုံးဝင်သည်။ boot().
  • ဒုတိယအထပ်ထပ်သည် method ကိုလုပ်ဆောင်သည်။ boot() ပံ့ပိုးသူအားလုံး၏ တဖန်၊ တစ်ခုပြီးတစ်ခု၊ အပေါ်မှအောက်ခြေ၊ array ၏ 'providers'.
  • နောက်ဆုံးတွင်၊ ဝန်ဆောင်မှုပေးသူအားလုံးကို လုပ်ဆောင်ပြီးသောအခါ၊ Laravel သည် လမ်းကြောင်း (လမ်းကြောင်း) ကို ပိုင်းခြားရန်၊ controller ကိုလည်ပတ်ရန်၊ templates စသည်တို့ကို အသုံးပြု၍ ဆက်လက်လုပ်ဆောင်သည်။

ဝန်ဆောင်မှုပေးသူများ Laravel ကြိုdefiniti

I Service Providers Laravel တွင် ပါဝင်သော၊ ဖိုဒါထဲတွင် ရှိနေသော အရာများ အားလုံး ဖြစ်ကြသည် app/Providers:

  • AppServiceProvider
  • AuthServiceProvider
  • BroadcastServiceProvider
  • EventServiceProvider
  • RouteServiceProvider

၎င်းတို့သည် PHP အတန်းများအားလုံးဖြစ်ပြီး၊ တစ်ခုစီသည် ၎င်း၏ကိုယ်ပိုင်အကြောင်းအရာနှင့်သက်ဆိုင်သည်- App, Auth, Broadcasting, Events e Routes. ဒါပေမယ့် သူတို့အားလုံးမှာ တူညီတဲ့အရာတစ်ခုရှိတယ်၊ နည်းလမ်း boot().

ထိုနည်းလမ်းအတွင်းတွင်၊ ထိုကဏ္ဍများနှင့်သက်ဆိုင်သည့် မည်သည့်ကုဒ်ကိုမဆို ရေးသားနိုင်သည်- auth, events, routeစသည်တို့ တစ်နည်းဆိုရသော် ဝန်ဆောင်မှုပေးသူများသည် ကမ္ဘာလုံးဆိုင်ရာလုပ်ဆောင်ချက်အချို့ကို စာရင်းသွင်းရန် အတန်းများသာဖြစ်သည်။

၎င်းတို့သည် အပလီကေးရှင်းဘဝစက်ဝန်းတွင် အလွန်စောစီးစွာ အလုပ်လုပ်သောကြောင့် ၎င်းတို့သည် "ပံ့ပိုးပေးသူများ" အဖြစ် သီးခြားဖြစ်သောကြောင့်၊ လုပ်ဆောင်ချက် script သည် Models သို့မဟုတ် Controllers သို့မရောက်ရှိမီ တစ်ကမ္ဘာလုံးအတိုင်းအတာဖြင့် အဆင်ပြေပါသည်။

လုပ်ဆောင်နိုင်စွမ်းအများစုသည် RouteServiceProvider တွင်ဖြစ်သည်၊ ဤတွင်ကုဒ်ဖြစ်သည်-

class RouteServiceProvider extends ServiceProvider
{
    public const HOME = '/dashboard';
 
    public function boot()
    {
        $this->configureRateLimiting();
 
        $this->routes(function () {
            Route::prefix('api')
                ->middleware('api')
                ->group(base_path('routes/api.php'));
 
            Route::middleware('web')
                ->group(base_path('routes/web.php'));
        });
    }
 
    protected function configureRateLimiting()
    {
        RateLimiter::for('api', function (Request $request) {
            return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
        });
    }
}

ဤသည်မှာ ဖိုင်များကို စီစဉ်သတ်မှတ်ထားသည့် အတန်းဖြစ်သည်။ routeနှင့် routes/web.phproutes/api.php မူရင်းအတိုင်း ပါဝင်သည်။defiနီတာ API အတွက် မတူညီသောဖွဲ့စည်းပုံများပါရှိသည်- Endpoint prefix ကိုသတိပြုပါ။ /api နှင့် အလယ်အလတ်ပစ္စည်းများ api အားလုံးအတွက် routes.

ကျွန်ုပ်တို့ တည်းဖြတ်နိုင်ပါသည်။ service providersဖိုလ်၌မရှိသော၊ /vendor. သင့်တွင် လမ်းကြောင်းများစွာရှိပြီး ၎င်းတို့ကို သီးခြားဖိုင်များအဖြစ် ခွဲထုတ်လိုသောအခါတွင် ဤဖိုင်များကို စိတ်ကြိုက်ပြင်ဆင်ခြင်း လုပ်ဆောင်ပါသည်။ မင်းဖန်တီးတယ်။ routes/auth.php လမ်းကြောင်းများကို ထိုနေရာတွင် ထားကာ၊ ထို့နောက် ၎င်းဖိုင်ကို နည်းလမ်းတွင် "ဖွင့်ရန်" ပြုလုပ်ပါ။ boot() di RouteServiceProviderတတိယဝါကျကို ထည့်လိုက်ရုံပါပဲ။

`Route::middleware('web') // or maybe you want another middleware?
    ->group(base_path('routes/auth.php'));

AppServiceProvider ဗလာ။ ကုဒ်ထည့်ခြင်း၏ ပုံမှန်ဥပမာ AppServiceProvider၊ Eloquent တွင် ပျင်းရိသော loading ကို disable လုပ်ခြင်းအကြောင်းဖြစ်သည်။ ဒီလိုလုပ်ဖို့၊ သင်ပဲလိုအပ်ပါတယ်။ စာကြောင်းနှစ်ကြောင်းထည့်ပါ။ နည်းလမ်းထဲမှာ boot():

ဆန်းသစ်တီထွင်မှုသတင်းလွှာ
ဆန်းသစ်တီထွင်မှုဆိုင်ရာ အရေးကြီးဆုံးသတင်းများကို လက်လွတ်မခံပါနဲ့။ ၎င်းတို့ကို အီးမေးလ်ဖြင့် လက်ခံရန် စာရင်းသွင်းပါ။
// app/Providers/AppServiceProvider.php
use Illuminate\Database\Eloquent\Model;
 
public function boot()
{
    Model::preventLazyLoading(! $this->app->isProduction());
}

ဆက်ဆံရေးပုံစံကို မတင်ပါက ခြွင်းချက်တစ်ခု ဖြစ်လာမည်ဖြစ်သည်။

သင့်ကိုယ်ပိုင်ကိုဖန်တီးပါ service provider စိတ်ကြိုက်

အကြို အပြင် ဟီးဟီးdefinites၊ ကျွန်ုပ်တို့သည် အသစ်တစ်ခုကို အလွယ်တကူ ဖန်တီးနိုင်သည်။ Service Providerအကြိုအကြောင်းအရာများထက် အခြားအကြောင်းအရာများနှင့် သက်ဆိုင်သည်။defiပြီးသွားပြီ auth/event/routes.

မျှမျှတတ သာမာန် ဥပမာတစ်ခုသည် အမြင်ဖွဲ့စည်းမှုပုံစံဖြစ်သည်။ Blade. လမ်းညွှန်ချက်တစ်ခု ဖန်တီးနိုင်ပါတယ်။ Bladeပြီးနောက် ထိုကုဒ်ကို နည်းလမ်းထဲသို့ ထည့်ပါ။ boot() တစ်ခုခု service providerပုံသေ အပါအဝင် AppServiceProvider. အခုပဲ ဖန်တီးလိုက်ရအောင် ViewServiceProvider သီးခြား

ဤအမိန့်ဖြင့် ကျွန်ုပ်တို့ ၎င်းကို ဖန်တီးနိုင်သည်-

php artisan make:provider ViewServiceProvider

ဘယ် class က ထုတ်ပေးမှာမို့လို့ ကြိုမှာလဲ။defiည-

namespace App\Providers;
 
use Illuminate\Support\ServiceProvider;
 
class ViewServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
 
    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }
}

အထဲမှာတွေ့နိုင်သလို နည်းလမ်းနှစ်ခုရှိပါတယ်။

register() နည်းလမ်း

register() method က ကျွန်တော်တို့ကို ခွင့်ပြုပါတယ်။ defiကျွန်ုပ်တို့၏ဝန်ဆောင်မှုကွန်တိန်နာသို့ nish လင့်ခ်များ။ ဥပမာအားဖြင့်၊ အောက်ပါကုဒ်တွင်၊

public function register()
{
    $this->app->singleton(my_class, function($app){
        return new MyClass($app);
    });
}

$this->app သည် singleton class သည် app မှတဆင့်ဝင်ရောက်နိုင်သော laravel ရှိ global variable တစ်ခုဖြစ်သည်။

Singleton သည်အင်္ဂါရပ်တစ်ခုဖြစ်သည်။ ဤအင်္ဂါရပ်ကိုအသုံးပြုသောအခါတွင် မည်သည့်အတန်းကိုမဆို အက်ပ်အတွင်းရှိ ကန့်သတ်ချက်တစ်ခုအဖြစ် ဖြတ်သွားပါက အပလီကေးရှင်းတစ်ခုလုံးတွင် သာဓကတစ်ခုသာရှိသင့်ကြောင်း ကျွန်ုပ်တို့အား အသိပေးအပ်ပါသည်။ ဆိုလိုသည်မှာ MyClass သည် တစ်ကြိမ်ဖြေရှင်းပြီးဖြစ်ကာ my_class variable ကို အသုံးပြု၍ ဝင်ရောက်နိုင်သည့် ဥပမာတစ်ခုသာရှိမည်ဖြစ်သည်။

boot() နည်းလမ်း

boot() နည်းလမ်းသည် သင့်အား မှတ်ပုံတင်သည့်နည်းလမ်းကို အသုံးပြု၍ ယခင်က စာရင်းသွင်းထားသော ဝန်ဆောင်မှုအားလုံးကို ဝင်ရောက်ခွင့်ပြုသည်။ ထို့နောက် ဤနည်းလမ်းကို အသုံးပြု၍ သင့်အပလီကေးရှင်းတွင် ဝန်ဆောင်မှုတစ်ခုလုံးကို ထည့်သွင်းနိုင်သည်။

ယခင်နမူနာသို့ ပြန်သွားကာ နည်းလမ်းကို ဖယ်ရှားလိုက်ကြပါစို့ register() အတွင်း boot() Blade ညွှန်ကြားချက်ကုဒ်ကို ထည့်ပါ။

use Illuminate\Support\Facades\Blade;
 
public function boot()
{
    Blade::directive('datetime', function ($expression) {
        return "<?php echo ($expression)->format('m/d/Y H:i'); ?>";
    });
}

နောက်ထပ်ဥပမာ ViewServiceProvider ငဲ့ View Composersဤတွင် အတိုအထွာ တရားဝင် Laravel ဆိုက်မှ :

use App\View\Composers\ProfileComposer;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
 
class ViewServiceProvider extends ServiceProvider
{
    public function boot()
    {
        // Using class based composers...
        View::composer('profile', ProfileComposer::class);
 
        // Using closure based composers...
        View::composer('dashboard', function ($view) {
            //
        });
    }
}

လုပ်ဆောင်ရန်၊ ဤဝန်ဆောင်မှုပေးသူအသစ်ကို ဝန်ဆောင်မှုပေးသူခင်းကျင်းတွင် ပေါင်းထည့်/မှတ်ပုံတင်ရပါမည်။ config/app.php:

return [
    // ... other configuration values
 
    'providers' => [
 
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        // App\Providers\BroadcastServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,
 
        // Add your provider here
        App\Providers\ViewServiceProvider::class,
    ],
];

Ercole Palmeri

သင်လည်း စိတ်ဝင်စားနိုင်သည်-

ဆန်းသစ်တီထွင်မှုသတင်းလွှာ
ဆန်းသစ်တီထွင်မှုဆိုင်ရာ အရေးကြီးဆုံးသတင်းများကို လက်လွတ်မခံပါနဲ့။ ၎င်းတို့ကို အီးမေးလ်ဖြင့် လက်ခံရန် စာရင်းသွင်းပါ။

မကြာသေးမီဆောင်းပါးများ

အနာဂတ်သည် ဤနေရာတွင်- သင်္ဘောလုပ်ငန်းသည် ကမ္ဘာလုံးဆိုင်ရာစီးပွားရေးကို တော်လှန်နေပုံ

ရေတပ်ကဏ္ဍသည် ကမ္ဘာလုံးဆိုင်ရာ စီးပွားရေးအင်အားကြီးဖြစ်ပြီး၊ ဘီလီယံ ၁၅၀ ရှိသော စျေးကွက်ဆီသို့ လျှောက်လှမ်းနေသော...

1 မေလ 2024

ထုတ်ဝေသူများနှင့် OpenAI တို့သည် Artificial Intelligence ဖြင့် လုပ်ဆောင်သော သတင်းအချက်အလက်စီးဆင်းမှုကို ထိန်းညှိရန် သဘောတူညီချက်များကို လက်မှတ်ရေးထိုးကြသည်။

ပြီးခဲ့သည့်တနင်္လာနေ့တွင် Financial Times သည် OpenAI နှင့်သဘောတူညီချက်တစ်ခုကြေငြာခဲ့သည်။ FT သည် ၎င်း၏ ကမ္ဘာ့အဆင့်မီ သတင်းစာပညာကို လိုင်စင်ထုတ်ပေးသည်...

ဧပြီလ 30 2024

အွန်လိုင်းငွေပေးချေမှုများ- ဤတွင် Streaming ဝန်ဆောင်မှုများသည် သင့်အား ထာဝစဉ်ပေးဆောင်စေသည်

သန်းပေါင်းများစွာသောလူများသည် streaming ဝန်ဆောင်မှုများအတွက်ပေးဆောင်ပြီးလစဉ်စာရင်းသွင်းမှုအခကြေးငွေပေးဆောင်သည်။ အများအမြင်မှာ သင်...

ဧပြီလ 29 2024

Veeam သည် ကာကွယ်မှုမှ တုံ့ပြန်မှုနှင့် ပြန်လည်ရယူခြင်းအထိ ransomware အတွက် အပြည့်စုံဆုံးပံ့ပိုးမှုပါရှိသည်။

Veeam မှ Coveware သည် ဆိုက်ဘာငွေညှစ်မှု ဖြစ်ရပ်ကို တုံ့ပြန်သည့် ဝန်ဆောင်မှုများကို ဆက်လက်ပံ့ပိုးပေးပါမည်။ Coveware သည် မှုခင်းဆေးပညာနှင့် ပြန်လည်ပြင်ဆင်ခြင်းစွမ်းရည်များကို ပေးဆောင်လိမ့်မည်...

ဧပြီလ 23 2024

သင့်ဘာသာစကားဖြင့် ဆန်းသစ်တီထွင်မှုကို ဖတ်ပါ။

ဆန်းသစ်တီထွင်မှုသတင်းလွှာ
ဆန်းသစ်တီထွင်မှုဆိုင်ရာ အရေးကြီးဆုံးသတင်းများကို လက်လွတ်မခံပါနဲ့။ ၎င်းတို့ကို အီးမေးလ်ဖြင့် လက်ခံရန် စာရင်းသွင်းပါ။

နောက်ဆက်တွဲကျွန်တော်တို့ကို

မကြာသေးမီဆောင်းပါးများ

tag ကို

ကလေးစရိတ် ဆိုက်ဘာတိုက်ခိုက်မှု blockchain chatbot ချတ် gpt မိုဃ်းတိမ်ကို cloud computing အကြောင်းအရာစျေးကွက် ဆိုက်ဘာတိုက်ခိုက်မှု ဆိုက်ဘာလုံခြုံရေး စားသုံးသူမှန်တယ်။ အီလက်ထရောနစ်ကူးသန်းရောင်း နေပြည်တော် ဆန်းသစ်တီထွင်မှုဖြစ်ရပ် gianfranco fedele google သြဇာလွှမ်းမိုးမှု သစ်လွင်မှု ငွေကြေးဆိုင်ရာ ဆန်းသစ်တီထွင်မှု incremental ဆန်းသစ်တီထွင်မှု ဆေးဘက်ဆိုင်ရာဆန်းသစ်တီထွင်မှု ဆန်းသစ်တီထွင်မှု ရေရှည်တည်တံ့ရေး နည်းပညာဆန်းသစ်တီထွင်မှု အတုထောက်လှမ်းရေး IOT စက်သင်ယူ metaverse microsoft nft ကွင်းထဲတွင် လူသားမရှိပါ။ php ပြန်ကြားချက် စက်ရုပ် seo SERP ဆော့ဖျဝဲ software ဒီဇိုင်း software development Software များအင်ဂျင်နီယာ ရေရှည်တည်တံ့မှု startup Thales သင်ခန်းစာ VPN web3