Magento url 路由:如何定位给定 url 的 controller/views
Magento url routing: how to locate the controller/views for a given url
我是 magento 的新手,我正在尝试根据此 url:
找到 files/code
somedomainfortesting.com/index.php/catalogsearch/result/?q=test
为了安全起见,我只是在上面放了一个测试域名,但一般来说,我只是想找到上面url的文件(views/controller)。我是 magento 新手。
这很复杂,但一般来说,Magento URLs 分为三个部分(Zend Framework 1 风格)
http://somedomainfortesting.com/index.php/front-name/controller-name/action-name
"front name" 通常标识您可以在其中找到控制器的模块文件夹。
例如,可以在
中找到以 catalogsearch
作为前名的 URL 的控制器
#File: app/code/core/Mage/CatalogSearch/controllers/
你知道这个是因为在 Mage_CatalogSearch
配置文件中,有一个已配置的 frontname (<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 的下一部分定义了控制器名称。控制器名称决定控制器文件夹中的特定控制器文件。同样,在您的示例中,控制器名称是 result
,因此您可以在以下文件中找到控制器 (ResultController.php
)
app/code/core/Mage/CatalogSearch/controllers/ResultController.php
最后,动作名称决定了 Magento 将调用控制器中的哪个方法。在您的示例中,没有操作名称,因此 Magento 默认使用名称 index
,这意味着 indexAction
被调用
#File: app/code/core/Mage/CatalogSearch/controllers/ResultController.php
public function indexAction()
{
//...
}
你会注意到我在上面使用了术语通常标识——这是因为还有很多其他情况,其中多个模块可以声明一个前名,或者用户可以重写URLs 去别处。如果您有兴趣了解更多信息并深入挖掘 - 我的原创 Magento for PHP MVC Developers blog series is still a good place to start (the content is dated, but still accurate). If you're not bruised and battered after that, you can read In Depth Magento Dispatch 涵盖了 Magento 如何处理 URL 路由,从上到下。
最后,有点自私,您可以查看 Commerce Bug -- 这是我的商业 Magento 调试扩展,包括有关加载页面的特定控制器的信息。
您可以使用免费演示轻松查看 Magento 默认设置,如果您认为 buy a copy 值得 it/useful,则可以使用您自己的系统。
希望对您有所帮助!
此外,您可以找到模板 正在通过从此处启用路径命中来渲染内容:系统 > 配置 > 开发人员,将配置范围更改为默认商店视图,然后查找路径提示设置和启用它。
我是 magento 的新手,我正在尝试根据此 url:
找到 files/codesomedomainfortesting.com/index.php/catalogsearch/result/?q=test
为了安全起见,我只是在上面放了一个测试域名,但一般来说,我只是想找到上面url的文件(views/controller)。我是 magento 新手。
这很复杂,但一般来说,Magento URLs 分为三个部分(Zend Framework 1 风格)
http://somedomainfortesting.com/index.php/front-name/controller-name/action-name
"front name" 通常标识您可以在其中找到控制器的模块文件夹。
例如,可以在
中找到以catalogsearch
作为前名的 URL 的控制器
#File: app/code/core/Mage/CatalogSearch/controllers/
你知道这个是因为在 Mage_CatalogSearch
配置文件中,有一个已配置的 frontname (<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 的下一部分定义了控制器名称。控制器名称决定控制器文件夹中的特定控制器文件。同样,在您的示例中,控制器名称是 result
,因此您可以在以下文件中找到控制器 (ResultController.php
)
app/code/core/Mage/CatalogSearch/controllers/ResultController.php
最后,动作名称决定了 Magento 将调用控制器中的哪个方法。在您的示例中,没有操作名称,因此 Magento 默认使用名称 index
,这意味着 indexAction
被调用
#File: app/code/core/Mage/CatalogSearch/controllers/ResultController.php
public function indexAction()
{
//...
}
你会注意到我在上面使用了术语通常标识——这是因为还有很多其他情况,其中多个模块可以声明一个前名,或者用户可以重写URLs 去别处。如果您有兴趣了解更多信息并深入挖掘 - 我的原创 Magento for PHP MVC Developers blog series is still a good place to start (the content is dated, but still accurate). If you're not bruised and battered after that, you can read In Depth Magento Dispatch 涵盖了 Magento 如何处理 URL 路由,从上到下。
最后,有点自私,您可以查看 Commerce Bug -- 这是我的商业 Magento 调试扩展,包括有关加载页面的特定控制器的信息。
您可以使用免费演示轻松查看 Magento 默认设置,如果您认为 buy a copy 值得 it/useful,则可以使用您自己的系统。
希望对您有所帮助!
此外,您可以找到模板 正在通过从此处启用路径命中来渲染内容:系统 > 配置 > 开发人员,将配置范围更改为默认商店视图,然后查找路径提示设置和启用它。