تالار گفتمان nCIS.ir

نسخه‌ی کامل: منظور از view composer چیست
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان. میشه یه توضیحی در این مورد بدید که بفهمم منظور چیه هستش؟ ممنون
Don’t Repeat Yourself
بسیاری از تکرارها باید یک لایه انتزاع بین کنترلر و ویو باشد.

به احتمال زیاد شما  در هر صفحه داده های مشابه  خواهید داشت.
فرض کنید تو کنترلرهای متعدد، پرس و جو های یکسانی رو برای تولید داده واستفاده در چند ویو رو تکرار میکنید.
حالا به هردلیلی تصمیم میگیرید برای بروزرسانی و یاتفییر برای داده تولید شده دست به تغییر بزنید.

حالا چیز بیار چیز بار کن.
باید تغییرات جدید رو تموم ویو ها اعمال کرد.

ویو کامپوز به کمک شما میاد برای سازماندهی کردن منطق تولید کد تو یه محل خاص و قرارد دادن اون تو N تا ویو....

<?php

namespace AppProviders;

use IlluminateSupportServiceProvider;
use IlluminateUsersRepository as UserRepository;

class ComposerServiceProvider extends ServiceProvider
{
   public function boot()
   {
       // Using Closure based composers...
       view()->composer('dashboard', function ($view) { 
$view->with('count', $this->users->count());
       });
   }

   public function register()
   {
      
   }
}





<?php

namespace AppHttpViewComposers;

use IlluminateContractsViewView;

class ProfileComposer
{
   protected $users;

   public function __construct(UserRepository $users)
   {
// Dependencies automatically resolved by service container...
       $this->users = $users;
   }
   
}


<?php

namespace AppProviders;

use IlluminateSupportServiceProvider;
use IlluminateUsersRepository as UserRepository;

class ComposerServiceProvider extends ServiceProvider
{
   public function boot()
   {
       // Using class based composers...
       view()->composer(
           'profile', 'AppHttpViewComposersProfileComposer'
       );
   }

   public function register()
   {
      
   }
}