我是magento的新手,我正尝试根据此url查找文件/代码:
somedomainfortesting.com/index.php/catalogsearch/result/?q=test
为了安全起见,我只是在上面放了一个测试域名,但总的来说,我只是想在上面的URL中找到文件( View / Controller )。我是magento的新手。
最佳答案
这很复杂,但是一般来讲,Magento URL包含三个部分(Zend Framework 1样式)
http://somedomainfortesting.com/index.php/front-name/controller-name/action-name
“地名”通常标识可以在其中找到 Controller 的模块文件夹。
例如,可以在以下位置找到以
catalogsearch
为前名的URL的 Controller 。#File: app/code/core/Mage/CatalogSearch/controllers/
您会知道这一点,因为在
Mage_CatalogSearch
配置文件中,有一个已配置的姓(<frontName>catalogsearch</frontName>
)#File: app/code/core/Mage/CatalogSearch/etc/config.xml
<routers>
<catalogsearch>
<use>standard</use>
<args>
<module>Mage_CatalogSearch</module>
<frontName>catalogsearch</frontName>
</args>
</catalogsearch>
</routers>
URL的下一部分定义了 Controller 名称。 Controller 名称确定controllers文件夹中的特定 Controller 文件。同样,在您的示例中, Controller 名称为
result
,因此您可以在以下文件(ResultController.php
)中找到 Controller 。app/code/core/Mage/CatalogSearch/controllers/ResultController.php
最后,动作名称确定 Controller 将调用Magento中的哪个方法。在您的示例中,没有动作名称,因此Magento默认使用名称
index
,这意味着它称为indexAction
#File: app/code/core/Mage/CatalogSearch/controllers/ResultController.php
public function indexAction()
{
//...
}
您会在上面注意到,我使用的术语通常是标识-这是因为在许多其他情况下,多个模块可以声明一个姓氏,或者用户可以重写URL到其他地方。如果您有兴趣了解更多信息并进行深入研究-我的原始Magento for PHP MVC Developers blog series仍然是一个不错的起点(内容已过时,但仍然准确)。如果您之后没有受伤或受挫,则可以阅读In Depth Magento Dispatch,它涵盖了Magento从上到下处理URL路由的方式。
最后,您可以自行检查Commerce Bug -这是我的商业Magento调试扩展,其中包括有关所加载页面的特定 Controller 的信息。
您可以使用免费的演示程序轻松查看Magento的默认值,并在自己的系统上查看buy a copy(如果您认为这样做值得/有用)。
希望有帮助!
关于magento - Magento URL路由:如何找到给定URL的 Controller / View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30825472/