我正在开发Magento2CRUD功能,遵循最佳实践(最好描述here)。在我正在进行的项目中,我们使用的是PHPMD (PHPMD(PHPMD))。在其他规则中,我们将CBO限制设置为13 (据我理解,这是默认的)。我的存储库正在实现get、save、getList、delete、deleteById方法,限制已经达到12。
如果我需要在不重叠PHPMD限制的情况下向这个存储库添加其他方法,那么最佳实践是什么?
我认为其他框架/平台中的实现也是如此,而不是严格地与Magento 2相关。
发布于 2019-06-05 19:39:03
这是最伟大的规则之一,它有助于保持类的专注和易于维护。你见过多少次了:
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
}取而代之的是,拥抱接口,使您的应用程序依赖于抽象,而不是实现细节:
interface ProductByCode
{
public function findByCode(string $code): ?Product;
}
interface ProductsByName
{
public function findByName(string $name): array;
}使用依赖项注入组件,您可以将接口化名到其实现。每个接口都要进行实现。您可以使用一个抽象类,它将帮助您通过您选择的框架与持久性层进行通信。
final class ProductByCodeRepository extends BaseRepository implements ProductByCode
{
public function findByCode(string $code): ?Product
{
return $this->findOneBy(['code' => $code]);
}
}https://stackoverflow.com/questions/56455946
复制相似问题