salipropham/laravel-mvcsp
Implement MVC + Service + Presenter layer to Laravel 5
1,904
1
| Install | |
|---|---|
composer require salipropham/laravel-mvcsp |
|
| Latest Version: | v0.1.1 |
| License: | AML |
| Last Updated: | Mar 12, 2019 |
| Links: | GitHub · Packagist |
Maintainer: salipropham
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
nahid-ferdous/laravel-module-generator
Speeds up Laravel development by automating repetitive tasks. This package helps...
3,518
2
code generator
controller generator
crud generator
laravel
laravel artisan
laravel automation
laravel development tools
laravel module
laravel package
laravel scaffolding
migration generator
model generator
module generator
php code generation
request generator
resource generator
scaffolding
service layer
yaml
php-tmdb/laravel
Laravel Package for TMDB ( The Movie Database ) API. Provides easy access to the...
53,312
160