bamiz / use-case-executor-bundle
一个 Symfony Bundle,提供工具帮助您将应用程序的业务逻辑与交付机制隔离开来。
0.5.0
2017-03-27 16:12 UTC
Requires
- php: >=5.5.0
- bamiz/use-case-executor: 0.5.0
- doctrine/annotations: ^1.0
- symfony/dependency-injection: ~2.3|~3.0
- symfony/form: ~2.3|~3.0
- symfony/framework-bundle: ~2.3|~3.0
- symfony/options-resolver: ~2.3|~3.0
- symfony/serializer: ~2.3|~3.0
- symfony/templating: ~2.3|~3.0
Requires (Dev)
- phpspec/phpspec: ^3.0
This package is not auto-updated.
Last update: 2024-09-14 19:25:57 UTC
README
Use Case Executor Bundle 是一个提供 Screaming Architecture 示例实现的 Symfony Bundle,借助 Symfony 框架提供的组件。它鼓励您以反映应用程序意图的方式设计类。Use Case Executor Bundle 提供的工具可以减轻您从应用程序输入中提取执行正确行为所需信息的重复性任务,从而帮助您以期望的方式输出结果。
安装
只需运行
$ composer require bamiz/use-case-executor-bundle
配置
在 AppKernel.php 中注册您的 Bundle
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Bamiz\UseCaseExecutorBundle\BamizUseCaseExecutorBundle(), ); // ... } // ... }
在 app/config.yml 中启用 serializer
# app/config.yml
framework:
serializer: ~
基本用法
将您的 Use Case 注册为 Symfony 服务
# app/services.yml
app.my_use_case:
class: AppBundle\UseCase\MyUseCase
使用注解命名 Use Case,并可选地分配一个输入处理器和一个响应处理器给它。确保 Use Case 类包含一个具有类型提示参数的 execute()
方法。
<?php // src/AppBundle/UseCase/MyUseCase.php namespace AppBundle\UseCase; use Bamiz\UseCaseExecutorBundle\Annotation\UseCase; /** * @UseCase("My Use Case", input="http", response="json") */ class MyUseCase { public function execute(MyUseCaseRequest $request) { // ... } }
使用 Use Case Executor 执行您的 Use Case
<?php // src/AppBundle/Controller/MyController.php namespace AppBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; class MyController extends Controller { public function myAction(Request $request) { return $this->get('bamiz_use_case.executor')->execute('My Use Case', $request); } }
文档
- 概念 - 解释 Use Case、请求和响应,基本架构和 Bundle 用法示例
- Symfony 中的 Use Case - 解释应用程序层和 Use Case 层之间的区别,介绍输入和输出的概念
- Use Case 上下文 - 如何配置 Use Case 的执行方式
- 工具集 - 包含的输入和响应处理器
- 使用多个输入和响应处理器
- 演员