hosseinsheikh / smart-view-model
smart view model
v3.0.0
2023-05-30 08:20 UTC
Requires
- php: ^8.0.2
- illuminate/contracts: ^10.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.5
README
Smart View Model
- To use this pattern, you can do the following
-
Make controller and view model:
php artisan vm:make-controller {controller name} php artisan vm:make-controller {controller name} --namespace={defin special namespace for viewmodel} php artisan vm:make-viewmodel {view model name} --controller={controller name} php artisan vm:make-viewmodel {view model name} --controller={controller name} --namespace={defin special namespace for viewmodel}
-
Controller method structure:
// view model puts in ViewModel/Hossein namespace // view model name is IndexViewModel public function index() { return \SmartViewModel::addItems([]) ->throughViewModel('hossein.index') ->thenReturn(); } // view model puts in Malekkhatoon/Ahmad/ViewModel/Hossein namespace // view model name is IndexViewModel public function index() { return \SmartViewModel::addItems([]) ->throughViewModel('hossein.index') ->setNameSpace('malekhatoon.ahmad') ->thenReturn(); } // You can use this instead of the top public function index() { return \SmartViewModel::addItems([]) ->through(Malekkhatoon\Ahmad\ViewModel\Hossein\IndexViewModel::class) ->thenReturn(); }
-