在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 AppMyBusiness; class BusinessRules { ... } 您可以从另一个使用use关键字自动加载此类: // In another file use AppMyBusinessBusinessRules; ... $rules = new BusinessRules(); 对于这种类型的对象,CakePHP并没有为您做出假设,因为它们通常对应用程序非常具体.它提供了各种工具,可以帮助您更快速地构建更好的架构,并减少代码.例如使用面向面向编程的事件系统,用于创建适应性实现的配置特征或使用功能方法处理数据的集合库. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |