Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php OOP:是否应该有类别以及如何处理测量单位?_Php_Oop - Fatal编程技术网

Php OOP:是否应该有类别以及如何处理测量单位?

Php OOP:是否应该有类别以及如何处理测量单位?,php,oop,Php,Oop,这是我的第一个更大的项目,所以我想把事情做好。 我计划制作一个产品类,以后我想对其进行分组或筛选 对象示例 product { name: 'chicken breast'; amount: 100g; energyVal: { protein : 10g; carbs: 20g; fat: 10g; } 问题1: 稍后,如果食物是纯素、素食、肉类等,我希望将它们分组 问题: 产品类别应该是产品对象中的一个属性,如energyVal,还是应该创建另一个类,如pro

这是我的第一个更大的项目,所以我想把事情做好。 我计划制作一个产品类,以后我想对其进行分组或筛选

对象示例

product {
  name: 'chicken breast';
  amount: 100g;
  energyVal: {
   protein : 10g;
   carbs: 20g;
   fat: 10g;
}
问题1:

稍后,如果食物是纯素、素食、肉类等,我希望将它们分组

问题:

产品类别应该是产品对象中的一个属性,如energyVal,还是应该创建另一个类,如productCategory/productList/veganProduct,以及它的外观。我不确定的原因是因为我认为通过所有对象进行搜索并检查属性是否等于vegan需要很长时间,而且似乎不是一个很好的实践。如果我错了,请纠正我

问题2:

该项目应在全球范围内提供,这意味着应考虑不同的测量单位和语言

问题: 因为语言可能不需要有自己的类,但是度量单位呢

最后,关于规划更大的OOP项目的参考资料、链接或示例也可以回答我的问题

问题2是最简单的:您以国际单位制(公制)存储所有测量值,并在生成响应时根据用户的本地化选项进行转换

至于“问题1”。。。好。。。我假设每个产品都属于多个类别(SQL端的多对多)。我会使用一个单独的类。APU应该是这样的:

$categories = new CategoryCollection;
$mapper = new CategoryMapper;

$categories->forProduct($productID);
$mapper->fetch($categories);

// .. etc.
你还必须考虑到,当你搜索“素食”产品时,用户也会期望“素食主义者”出现(正如你的类别可能需要一个基于树的“继承”)。