Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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 定义Magento类名的字符串的名称_Php_Design Patterns_Magento_Factory Pattern - Fatal编程技术网

Php 定义Magento类名的字符串的名称

Php 定义Magento类名的字符串的名称,php,design-patterns,magento,factory-pattern,Php,Design Patterns,Magento,Factory Pattern,Magento使用工厂模式从类实例化对象 $model = Mage::getModel('catalog/product'); //Mage_Catalog_Model_Product by default $helper = Mage::helper('catalog/data'); //Mage_Catalog_Helper_Data by default 这些字符串被扩展为类名,系统可以配置为替换默认值 这些字符串是什么,或者应该被称为什么?我一直在滥用URI这个术语(有时会使用

Magento使用工厂模式从类实例化对象

$model  = Mage::getModel('catalog/product'); //Mage_Catalog_Model_Product by default
$helper = Mage::helper('catalog/data');   //Mage_Catalog_Helper_Data by default
这些字符串被扩展为类名,系统可以配置为替换默认值

这些字符串是什么,或者应该被称为什么?我一直在滥用URI这个术语(有时会使用“URI-like”这个短语来缓和这种滥用),但这并不正确。“类名”似乎也不对,因为它很容易引起混淆(您是在谈论工厂类名,还是实际的PHP类名?)


有人在这方面有权威吗?

我想说的是“类路径”,但这可能会让一些在语言中工作过的人感到困惑,因为这些语言具有更正式的含义,并且在语言/解释器/编译器中有实现。

问得好。我很想听听其他使用工厂模式和“快捷”符号的框架如何称呼它


我认为您使用URI的“标识符”部分是正确的。我认为“类标识符”或“模型标识符”是有效的。类标识符更为通用,允许使用帮助器场景

在我的脑海中,我一直在使用“类请求”这个术语。您可以更进一步,使其成为“CRI”——类似于URI,但不是“通用的”。然而现在我想起来,
getModel
createBlock
不返回类,它们返回实例…

我倾向于使用
类句柄,因为它不像“类路径”那样有包袱,而且它们似乎是某种类型的“句柄”。

坦率地说,这个进入特定类的内部快捷方式没有正式名称

但我知道斜杠前面的第一部分叫做“类组”,它不是模块名,因为Magento可以共享同一组中不同模块的不同类(通过rewrite语句)。是的,有一个初始模块定义默认类前缀,但您可以通过配置文件合并来更改此前缀

第二部分我想调用一个模型/模型资源/块/助手名

一般来说,它可以被称为:

  • Mage::getModel()和
    Mage::getSingleton()的模型路径
  • Mage::getBlockSingleton()和
    $layout->createBlock()的块路径
  • Mage::helper()的助手路径
但这座建筑没有正式名称。因此,这不是所谓的规则 这样说:)


更新
Mage\u Core\u Model\u Config::getGroupedClassName()
中,此构造称为类Id,因此此名称可能更清晰

此字符串称为类(模型、块、辅助对象-取决于使用上下文)别名。 别名命名规则为:组/实体


每个模块都可以定义自己的组或为现有组定义重写。

名称空间更像itTrue,但现在5.3中我们有了合适的名称空间,因此我认为这会造成更多的混乱。现在5.3中我们应该尊重名称空间,并对magento进行更改以支持它,这样就不会有任何问题了confusion@Anton嗯,哈,,今天早些时候你没有评论过Magento没有重新分解旧代码吗!?!:)@proditigalson-抱歉,我来自J2EE背景,无法处理类路径:)谢谢Dmitry,很高兴看到Magento System Architect的答案;)当然,我很想在这里看到你@Dmitry!:)谢谢你的更新-所以我想我的“类标识符”并没有太大的错误@乔纳森,是的,但我也不确定我的答案,这就是为什么我问德米特里,看看他的观点。我喜欢这个术语,还有关于行李把手的双关语:)直到为时已晚才意识到这一点。我怎么会因为糟糕的幽默而贬低自己呢?