15-08-1394، 01:10 ب.ظ
15-08-1394، 06:49 ب.ظ
Don’t Repeat Yourself
بسیاری از تکرارها باید یک لایه انتزاع بین کنترلر و ویو باشد.
به احتمال زیاد شما در هر صفحه داده های مشابه خواهید داشت.
فرض کنید تو کنترلرهای متعدد، پرس و جو های یکسانی رو برای تولید داده واستفاده در چند ویو رو تکرار میکنید.
حالا به هردلیلی تصمیم میگیرید برای بروزرسانی و یاتفییر برای داده تولید شده دست به تغییر بزنید.
حالا چیز بیار چیز بار کن.
باید تغییرات جدید رو تموم ویو ها اعمال کرد.
ویو کامپوز به کمک شما میاد برای سازماندهی کردن منطق تولید کد تو یه محل خاص و قرارد دادن اون تو N تا ویو....
بسیاری از تکرارها باید یک لایه انتزاع بین کنترلر و ویو باشد.
به احتمال زیاد شما در هر صفحه داده های مشابه خواهید داشت.
فرض کنید تو کنترلرهای متعدد، پرس و جو های یکسانی رو برای تولید داده واستفاده در چند ویو رو تکرار میکنید.
حالا به هردلیلی تصمیم میگیرید برای بروزرسانی و یاتفییر برای داده تولید شده دست به تغییر بزنید.
حالا چیز بیار چیز بار کن.
باید تغییرات جدید رو تموم ویو ها اعمال کرد.
ویو کامپوز به کمک شما میاد برای سازماندهی کردن منطق تولید کد تو یه محل خاص و قرارد دادن اون تو 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() { } }