加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:34:31 所属栏目:PHP教程 来源:网络整理
导读:我正在设计一个新的应用程序并计划使用Cake PHP 3.通常在 PHP MVC框架(CakePHP,CodeIgniter)之上设计一个应用程序时,我已经实现了一组单独的代表业务层或服务层的类(取决于什么你喜欢用的词).因此,堆栈: – 意见 – 控制器[实际上只是另一部分意见;来自C#土
我正在设计一个新的应用程序并计划使用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 AppMyBusiness;
class BusinessRules
{
    ...
}

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

// In another file
use AppMyBusinessBusinessRules;

...
$rules = new BusinessRules();

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读