salipropham / laravel-mvcsp
为 Laravel 5 实现 MVC + Service + Presenter 层
v0.1.1
2019-03-12 03:12 UTC
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-09-21 12:40:17 UTC
README
为 Laravel 5 实现 MVC + Service + Presenter 层
安装
通过 Composer
$ composer require salipropham/laravel-mvcsp
使用方法
服务层
使用 artisan 命令创建新的服务。服务存储在 app/Services
文件夹中。
$ php artisan make:service ServiceName
在控制器中,你可以使用 service
辅助函数将其用作单例。
public function index(Request $request) { $srvDummy = service(DummyService::class); if($request->get('key')){ $srvDummy->loveU(); } else { $srvDummy->willLoveU; } // something or nothing... }
展示层
展示层存储在 app/Presenters
文件夹中。
$ php artisan make:presenter PresenterName
展示层将你的数据转换为视图数据,防止在视图中编写逻辑。
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'; } }
此外,我们可以通过 presenter
辅助函数或 setOriginalData
函数将数据传递给展示层。
presenter($name, $original_data) //or $prsFoo->setOriginalData($original_data)
要获取转换后的数据,就像喝咖啡一样简单 :)
$data = $prsFoo->parse(); // or a static method $data = FooPresenter::parse();
许可证
有关更多信息,请参阅许可证文件。