salipropham / laravel-mvcsp
Implement MVC + Service + Presenter layer to Laravel 5
Installs: 1 517
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Requires
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~3.0
- phpunit/phpunit: ~7.0
- sempro/phpunit-pretty-print: ^1.0
This package is not auto-updated.
Last update: 2024-03-23 10:14:06 UTC
README
Implement MVC + Service + Presenter layer to Laravel 5
Installation
Via Composer
$ composer require salipropham/laravel-mvcsp
Usage
Service Layer
Create new service via artisan command. The service stored in app/Services
folder.
$ php artisan make:service ServiceName
In controller, you can use service
helper function to use it like a singleton.
public function index(Request $request) { $srvDummy = service(DummyService::class); if($request->get('key')){ $srvDummy->loveU(); } else { $srvDummy->willLoveU; } // something or nothing... }
Presenter Layer
The Presenter stored in app/Presenters
folder.
$ php artisan make:presenter PresenterName
Presenter will transform your data into view data, prevent writing logic on view.
public function index(Request $request) { // something or nothing... $prsFoo = presenter(FooPresenter::class); return view('example', $prsFoo); }
FooPresenter.php
class LovePresenter extends Presenter { /** * Keep or not original data that has passed on init * @var bool */ protected $keepOrigData = true; public function transform() { // logic here and only here $this->mydata = 'transformed data'; } }
In addition, we can pass data to Presenter via presenter
helper or setOriginalData
function.
presenter($name, $original_data) //or $prsFoo->setOriginalData($original_data)
To get transformed data, simple like drinking a coffee cup :)
$data = $prsFoo->parse(); // or a static method $data = FooPresenter::parse();
License
Please see the license file for more information.