Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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中;config.xml";文件_Php_Magento - Fatal编程技术网

Php “标签”中可能的标签是什么;“全球”;标记在Magento中;config.xml";文件

Php “标签”中可能的标签是什么;“全球”;标记在Magento中;config.xml";文件,php,magento,Php,Magento,一些有专业经验的Magento开发人员可以告诉我如何在Magento中完成以下工作吗 我想知道每个模块的etc文件夹的“config.xml”页面的“global”标记中可能包含哪些标记? 我曾尝试在互联网上的许多地方寻找这个答案,但都没有成功 请提供Magento version>=1.4.0.0的完整详细信息,因为我希望至少访问此网站的用户觉得它足够有用,而不是挠头 我真的需要一个详细的解释,因为像我这样的新手在这一点上都会感到困惑。据我所知,到目前为止,在这个页面中,您可以设置路由器、重写

一些有专业经验的Magento开发人员可以告诉我如何在Magento中完成以下工作吗

我想知道每个模块的etc文件夹的“config.xml”页面的“global”标记中可能包含哪些标记?

我曾尝试在互联网上的许多地方寻找这个答案,但都没有成功

请提供Magento version>=1.4.0.0的完整详细信息,因为我希望至少访问此网站的用户觉得它足够有用,而不是挠头

我真的需要一个详细的解释,因为像我这样的新手在这一点上都会感到困惑。据我所知,到目前为止,在这个页面中,您可以设置路由器、重写、cron作业、管理html、前端html等等。但是如果没有任何强有力的概念,没有人会相信他的代码是100%正确的,即Magento MVC架构

所以,请允许我在这里强调这一强有力的基本概念,并对其进行详细解释,这样就不会有人再次陷入这个陷阱

我可以理解一件事——对于许多人来说,完整引用Magento的有效全局标记似乎是一个误称,但我想澄清的是,必须有一组有效的有限数量的标记位于全局标记之下

例如,我不能只写一个“stack”或“overflow”或“joseph”标记,我很确定Magento不会将其视为有效标记。这是因为有效标记(如“models”、“resources”、“resource”等)是在Magento配置中的某个位置定义的,所以它们可以工作

这是我的观点,我想强调一下


非常感谢那些只有在清楚了解整个概念后才能回答的人。

快速的答案是没有这些标签的完整列表。Magento没有对XML文件使用严格的语法,因为它们可以毫无困难地进行扩展。查看1.4代码库,我从终端执行了以下命令:

cd /path/to/magento
grep -r global/ . 2>/dev/null | grep -v pearlib | grep php | sort
<pre><?php

require 'app/Mage.php';
Mage::app();

$global = Mage::getConfig()->getNode('global');

foreach ($global->children() as $node) {
    echo $node->getName(), PHP_EOL;
}

?></pre>
返回了大约75行,其中专门调用了全局配置路径。其中一些很简单:

global/page/layouts
global/pdf/totals
global/template/email
global/payment/cc/types
还有一些则更加模糊:

global/catalog/product/type/configurable/allow_product_types
global/helpers/core/encryption_model
global/widget/related_cache_types
除此之外,还有几个是动态调用的,例如您提到的路由器、重写等:

global/models/'.$model.'/resourceMode
global/'.$groupType.'s
事实上,我甚至在我自己的扩展代码中找到了4个引用,它们添加到了全局空间中。知道所有这些,一个有效的全局标记的完整引用将是一个误称,甚至在小的更新过程中也可能会改变。最后一点,您不能完全保证您将遵守Magento的配置模型。尽最大努力使用库中提供的对象,在可能的情况下使用应用程序其余部分的示例,在没有帮助的情况下勇往直前。:)

希望有帮助

谢谢,

正如约瑟夫所说,没有明确的可能性清单。我给您的建议是开始浏览Magento的config.xml文件。只需打开/app/code/core/Mage/然后每个文件夹中都有一个核心模块。比如说销售。打开Sales/etc/config.xml,看看他们做了什么


只要看看Magento已经建立了什么,你就可以学到很多东西。当我不再试图问每个人问题,开始检查和学习已经存在的代码时,我真正开始了解一切是如何工作的。

事实上,在为Magento开发时需要记住一件重要的事情,所有config.xml文件都是串联的,以提供一个唯一xml文件的输出,该文件包含所有模块的所有config.xml文件中的所有节点

事实上,正如约瑟夫所说,Magento没有使用任何严格的语法。 我们可以说语法是由开发人员自己创建的

例如,如果在模块中,config.xml定义:

<config>
   <mynode>
     <myconfigvar>Foo</myconfigvar>
   <mynode>
</config>
定义同一节点(
)的任何其他模块都可以向该节点添加子节点和,并且您的模块也可以访问该新节点

更好地理解节点的用途是阅读核心代码。 开始理解magento解析config.xml的方式的一个好方法是阅读
app/code/Core/Mage/Core/config.php

理解函数
Mage::getStoreConfig()
的工作方式也是一个好方法


Hugues.

您可以转储现有标记的列表,而不是查找明确指定单个位置的字符串。正如其他人指出的,这是一个不断变化的列表,所以这只是给你一个想法。我经常在探索时使用这样的脚本



首先,感谢乔对我帖子的精彩回复。我在我的服务器终端上尝试了你的上述命令,但没有返回任何结果;相反,它再次显示了命令提示符。您能告诉我如何和在哪里运行上面的命令,以便我自己可以看到一些“全局”标记行吗?编辑以包含您可能拥有的命令,尽管您需要在Linux上执行这些命令。如果没有,请使用您熟悉的IDE并搜索字符串“global/”。我真的很佩服您在使用Linux查找东西方面的知识。我试过你的命令,看到有75行使用了“全局”标记。如果存在更多自定义模块,它们将被添加到此列表中,生成更多行。重点突出显示,谢谢。但为什么“mynode”标记会被Magento解释呢?必须有某种类型的解析器来确定Magento核心代码将正确解释哪组标记。Magento不会解释“mynode”标记。这只是预演