MKJ*_*MKJ 5 oop model-view-controller design-patterns laravel-5
我正在使用 Laravel 开发 API。我正在编写业务逻辑和应用程序逻辑,并尽可能将它们分开。但是,我对这些概念很陌生。例如,我有登录用户的逻辑。我必须检查:
我不是在控制器中检查所有这些(因为我认为这不是控制器的责任),而是在LoginFormProcessor由控制器委托的单独类中。如果所有检查都通过,LoginFormProcessor则将委托对象在数据库中保存/获取对象。这是层次结构:
Controller -> LoginFormProcessor -> Repository
Run Code Online (Sandbox Code Playgroud)
我想返回发生在LoginFormProcessoror 中的详细 JSON 错误(如果有),Repository但不是直接从这些类(因为这不是他们的责任)而是从控制器返回。
我如何将提到的错误返回给 Controller,以便 Controller 可以创建有意义的响应并将其发送给客户端。我应该从LoginFormProcessorand返回一些整数类型的 errorCodesRepository吗?但随后我将不得不检查所有可能的错误代码,这是另一个令人头疼的问题。我不认为这是一个好习惯。
关于它的任何建议和良好做法?
您希望业务逻辑和应用程序逻辑与交付机制无关,这意味着它们不应返回 HttpCode。相反,您应该使用异常(需要时自定义异常),在表示层(控制器)中捕获它们并相应地转换它们。
当您使用 Laravel 标记您的问题时,您可以查看https://laravel.com/docs/5.6/errors#render-method以了解如何捕获异常并将其转换为 HttpCodes。