salipropham/laravel-mvcsp
| Install | |
|---|---|
composer require salipropham/laravel-mvcsp |
|
| Latest Version: | v0.1.1 |
| Laravel: | 5 |
| License: | AML |
| Last Updated: | Mar 12, 2019 |
| Links: | GitHub · Packagist |
Laravel-MVCSP
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.
Related Packages
Speeds up Laravel development by automating repetitive tasks. This package helps...
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Version History
| Version | Released | Laravel | License |
|---|---|---|---|
| v0.1.1 | ~5 | AML | |
| v0.1.0 | ~5 | AML |