你可以在 magento后台管理页面查看关于前台各个页面跳转实际的url路径,在前台我们能够看见的仅仅是一些html路径,而不是具体的响应的路径
你可以在magento/admin—>Catalog—>Url Rewrite Management 中根据你在页面上看见的html路径查找这里对应的是 Request Path 点击进入你看见的Target Path 就是实际的action调用路径因为magento是运用了zend 所以他的action路径跟zend的一样
例如:catalog/category/view/id/11
catalog:指的是调用的module(模板)是catalog 对应 app/code/Mage/Catalog
category:指的是响应的controller 对应 app/code/Mage/Catalog/controllers/CategoryController.php
view:指的是对应的action 对应 CatagoryController.php中viewAction这个方法
id/2:是请求参数
viewAction()这个方法中加载目录app/design/frontend/default/default /layout/ 下名字和模块名相同的layout文件,名字为catalog.xml。然后寻找名字为的标签,
<default>下是默认就要加载的block
其余标签下的是自定义的block 这个例子总除了默认的我们要找到对应的block获取数据之外,我们同时会还要载入<catalog_category_view>这个标签里面的东西 这个跟我们的url到action(catalog/category/view/ id/2)是对应的 然后根据里面的要有的block的类型调用相应的block class
例如 <block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml"> 这个会直调用 app/code/Mage/Catalog/Block/Product/View.php 然后在它对应模板页面 template="catalog/product/view.phtml" 中自由调用这个block class中所有的方法来取得自己想要的数据给予显示。然后用户就可以得到最终的页面
以下是一次请求的数据流程图(data_request_flow):
因为没有办法上传图片所以大家可以点击这里查看:
http://www.magentocommerce.com/wiki/doc/magento-architecture