在CakePHP 3中放置单独的业务逻辑类或类?

前端之家收集整理的这篇文章主要介绍了在CakePHP 3中放置单独的业务逻辑类或类?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在设计一个新的应用程序并计划使用Cake PHP 3.通常在 PHP MVC框架(CakePHP,CodeIgniter)之上设计一个应用程序时,我已经实现了一组单独的代表业务层或服务层的类(取决于什么你喜欢用的词).因此,堆栈:

– 意见

– 控制器[实际上只是另一部分意见;来自C#土地的代码隐藏]

– 业务层面[业务逻辑所在,因为业务逻辑跨越多个域对象,不适用于单个模型/ DAO]

– 模型[aka数据访问对象]

…与层之间的域对象(现在在Cake PHP 3中的“实体”)遍历.

我看到Cake PHP 3在默认架构中仍然缺乏业务层的任何概念,这是令人失望但几乎不可逾越的.但毕竟,我的问题实际上是行人.它是:我在哪里放置MyBusinessLayer.PHP?在蛋糕PHP 2我会把它放在app / Lib,并加载它

App::Import('Lib','MyBusinessLayer');

CakePHP 3中的等效内容是什么,如何加载?我意识到我可以坚持任何旧的地方和require_once(),但我想知道是否有一种与Cake PHP标准更一致的方法.这个问题可以很容易地应用于十线实用程序类,但在我的情况下它适用于业务层.

您的业​​务层可以放在src目录下的任何地方.例如,您可以使用一个名为src / core或src / myBusiness的文件夹,或者您可以有多个文件夹,如src / command src / Handler,这取决于您如何构建应用程序,而不是提供Web请求或访问数据在数据库中.

如果给定正确的命名空间,放置在src内的任何文件夹中的类将被自动加载.

// in src/MyBusiness/BusinessRules.PHP

namespace App\MyBusiness;
class BusinessRules
{
    ...
}

您可以从另一个使用use关键字自动加载此类:

// In another file
use App\MyBusiness\BusinessRules;

...
$rules = new BusinessRules();

对于这种类型的对象,CakePHP并没有为您做出假设,因为它们通常对应用程序非常具体.它提供了各种工具,可以帮助您更快速地构建更好的架构,并减少代码.例如使用面向面向编程的事件系统,用于创建适应性实现的配置特征或使用功能方法处理数据的集合库.

猜你在找的PHP相关文章