gpt4 book ai didi

cakephp - 在 CakePHP 3 中在哪里放置一个或多个单独的业务逻辑类?

转载 作者:行者123 更新时间:2023-12-04 00:54:17 25 4
gpt4 key购买 nike

我正在设计一个新的应用程序并计划使用 CakePHP 3。通常在 PHP MVC 框架(CakePHP、CodeIgniter)之上设计一个应用程序时,我已经实现了一组单独的类来表示业务层或服务层(取决于什么你喜欢用的词)。因此,堆栈:

-- View

-- Controller [实际上只是 View 的另一部分;来自 C# 领域的代码隐藏]

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

-- 模型 [又名数据访问对象]

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

我看到 Cake PHP 3 在默认架构中仍然缺乏任何业务层的概念,这令人失望但几乎不可逾越。但毕竟,我的问题实际上是比较平淡的。它是:我把 MyBusinessLayer.php 放在哪里?在 Cake 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 不会为您做任何假设,因为它们通常非常特定于您的应用程序。它确实提供了各种各样的工具,可以帮助您以更少的代码更快地构建更好的架构。例如使用 Event面向方面编程的系统、用于创建适应性实现的配置特征或 Collection使用函数式方法处理数据的库。

关于cakephp - 在 CakePHP 3 中在哪里放置一个或多个单独的业务逻辑类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29079504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com