1. magento框架开发跟thinkphp有一定的相似度。
在一定的程度上都是采用从index.php进入,解析之后的url.
如 http://127.0.0.1/mgt/index.php/customer/account/
会解析index.php之后的url
customer:为模块类
account:为控制器
最后一个为空,那么默认为index也就是需要调用的方法,也可以称为动作。
那么对应在magento的项目中是什么情况呢。
服务器接收到这样后个url之后先找到
app/core/Mage/customer
之后再根据控制器找到controllers下的AccountController
再根据需要进行的动作,调用方法,如下的方法,刚调用indexAction方法。
调用完成之后,会返回视图。
这里返回视图,会根据模块的配置文件返回。
配置文件在哪呢?这里的每一个模块都会有一个xml的layout.
在app/design/base/default/layout 下,找到相应的xml,然后
根据上面的ulr中的模块与控制器和方法配置想应的节点。
如上就会匹配到:
<customer_account_index translate="label">
根据其中的reference加载制定的模版,并输出。
关于其中的
<reference name="root">
<action method="setTemplate"><template>page/2columns-left.phtml</template></action>
</reference>
若当前页面需要引用特殊的js/css文件刚如下:
<reference name="head">
<action method="addCss"><stylesheet>css/teststyle.css</stylesheet></action>
<action method="addItem"><type>skin_js</type><name>js/testjs.js</name></action>
</reference>
需要注意的一点为:
在程序加载的时候,会有先去加载page.xml。
而page.xml中会加载一系列的css/js之类的文件。加载这后再加载相应的模块对应的xml布局文件。
额外一点:
某些文章说,这里的block就相当说是javaweb中的javabean,这一点,还需要进一步的研究。