首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPMD和对象类之间的耦合(CBO)

PHPMD和对象类之间的耦合(CBO)
EN

Stack Overflow用户
提问于 2019-06-05 07:28:58
回答 1查看 5K关注 0票数 4

我正在开发Magento2CRUD功能,遵循最佳实践(最好描述here)。在我正在进行的项目中,我们使用的是PHPMD (PHPMD(PHPMD))。在其他规则中,我们将CBO限制设置为13 (据我理解,这是默认的)。我的存储库正在实现getsavegetListdeletedeleteById方法,限制已经达到12。

如果我需要在不重叠PHPMD限制的情况下向这个存储库添加其他方法,那么最佳实践是什么?

我认为其他框架/平台中的实现也是如此,而不是严格地与Magento 2相关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-05 19:39:03

这是最伟大的规则之一,它有助于保持类的专注和易于维护。你见过多少次了:

代码语言:javascript
复制
class XXXRepository
{
    public function findOneByCode($code);
    public function findOneByParams($params);
    public function findAllByParams($params);
    public function findActive($params);
    public function findForProductList($params);
    ... 5000 lines of spaghetti
}

取而代之的是,拥抱接口,使您的应用程序依赖于抽象,而不是实现细节:

代码语言:javascript
复制
interface ProductByCode
{
    public function findByCode(string $code): ?Product;
}

interface ProductsByName
{
    public function findByName(string $name): array;
}

使用依赖项注入组件,您可以将接口化名到其实现。每个接口都要进行实现。您可以使用一个抽象类,它将帮助您通过您选择的框架与持久性层进行通信。

代码语言:javascript
复制
final class ProductByCodeRepository extends BaseRepository implements ProductByCode
{
    public function findByCode(string $code): ?Product
    {
        return $this->findOneBy(['code' => $code]);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56455946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档