开发者社区> walexer> 正文

“约定优于配置”与Magento改造尝试三之routerName加载

简介:
+关注继续查看

上一章引入了一个自定义的概念叫模块的别名(alias),这章沿用这个概念来处理routerName的加载。

    <modules>
        <Mage_Wishlist>
            <version>1.6.0.0</version>
            <alias>wishlist</alias>
        </Mage_Wishlist>
    </modules>


常见的路由(router)定义如下


        <routers>
            <wishlist>
                <use>standard</use>
                <args>
                    <module>Mage_Wishlist</module>
                    <frontName>wishlist</frontName>
                </args>
            </wishlist>
        </routers>

很自然的发现<frontName>的值wishlist与该模块其它别名都是一致的(不一致的情况下面会讲到),那么这次改造的目的就是,直接用通用的别名来取代这一整段路由配置。

因为路由这个东西很明显存在需要自定义的需求(即前端网页url自定义的需求),所以类似于对布局xml文件的处理,这里的改造方式保留了上面这种人为指定路由的配置方式,在没有人为指定路由时,采用模块的别名作为路由名。(其实“布局xml文件”是否保留自定义配置我觉得可以商榷,但路由的自定义是必须保留的)

需要修改的文件是Mage_Core_Controller_Varien_Router_Standard,详见

https://github.com/walexer/Yli_Coc/blob/master/app/code/local/Mage/Core/Controller/Varien/Router/Standard.php

主要修改的方法是:public function collectRoutes($configArea, $useRouterName)


如上文所言,经过这次修改之后,用户依然可以人为指定路由名,不需要指定的(跟别名一致的),可以删除类似如下的xml片段

        <routers>
            <wishlist>
                <use>standard</use>
                <args>
                    <module>Mage_Wishlist</module>
                    <frontName>wishlist</frontName>
                </args>
            </wishlist>
        </routers>

从实际工作经验来说,有人为指定跟别名不一致的路由名的模块是个别少数,大部分模块都可以省下这一段xml配置了。


好了,请期待下一章!!!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
开发每个静态网站是的模版代码(自己开发是长期优化过的觉得最简的代码)
/*Index page,designed by tuzuoquan,version:1.0,2012-7-16*/ /**Styles which is common in most website,the styles blow can controll all the pages in the website.**/ /*全局样式*/ /*这里是子页面的CSS样式*/ *
1052 0
挑战21天手写前端框架 day19 依赖预打包是什么意思
挑战21天手写前端框架 day19 依赖预打包是什么意思
171 0
x3d
老系统如何引入更新的编码规范
团队开发,一般都是保守的,因为遗留了庞大的代码资产,没法太激进。这两年开发方向逐渐从社区和B2C转向B2B,对于PHP的一些新特性接触较多,团队项目走出了长期以来PHP 5.2版本时代的风格,进入了PHP 5.6,而能否切换到PHP 7还有待验证。
847 0
Yii2 修改框架入口增加配置适应开发生产环境
Yii2 修改框架入口增加配置适应开发生产环境
28 0
[7.14更新日志]CRP编译缓存和海外构建让编译健步如飞!
CRP新增编译缓存,海外构建以及自由配置是否上传包等功能,让编译坐上火箭。
1974 0
前端多语资源打包及加载的一个可行性方案
在一个比较大的项目里面(有国际化需求的),国际化的支持是一个必不可少的; 那如何落地就得具体问题具体分析了,这里说说我遇到过并落地的一个改造方案; 说说项目背景,是一个迭代多年的产研类项目(整个系统是围绕react生态去研发的),历史包袱挺多; 多种第三方库并存,也有iframe的场景以及自研的插件机制系统(现代沙盒隔离那一套); 方案仅供参考,哈!
83 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
F2etest — 多浏览器兼容性测试整体解决方案
立即下载
荷鲁斯 移动端第三方库安全检查引擎介绍
立即下载
用RxSwift写易维护易读的愉悦代码
立即下载