“约定优于配置”与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配置了。


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

目录
相关文章
|
域名解析 Kubernetes Java
图文详述Nacos配置中心使用:应用间配置共享、扩展配置文件加载优先级、新老版本差异
图文详述Nacos配置中心使用:应用间配置共享、扩展配置文件加载优先级、新老版本差异
4697 1
图文详述Nacos配置中心使用:应用间配置共享、扩展配置文件加载优先级、新老版本差异
|
5月前
|
数据库连接 数据库
Entity Framework Core 中的延迟加载与即时加载大揭秘!性能考量全知道,助你高效开发!
【8月更文挑战第31天】Entity Framework Core (EF Core) 是一款强大的对象关系映射(ORM)框架,支持延迟加载与即时加载两种方式。延迟加载即访问关联实体时再加载,适用于减少初始查询负载,但可能导致多次数据库查询;即时加载则在查询主实体时一并加载关联实体,减少数据库访问次数,但可能增加初始查询复杂度。选择加载方式需综合考虑查询复杂性、数据量及数据库连接管理等因素。
98 0
|
6月前
|
前端开发
若依修改,前端部署最初的样子,Ngnix部署最初的模样,配置域名/,就能够访问,最初的Ngnix的配置是怎样写的
若依修改,前端部署最初的样子,Ngnix部署最初的模样,配置域名/,就能够访问,最初的Ngnix的配置是怎样写的
|
Web App开发 缓存 JSON
可以用到项目的优化网站加载速度方案
可以用到项目的优化网站加载速度方案
80 0
|
SQL 安全 网络安全
Yii2.0网站如何才能让安全最大化?具体步骤是怎样的?底层原理是什么?
Yii2.0网站如何才能让安全最大化?具体步骤是怎样的?底层原理是什么?
116 0
|
PHP 开发工具 数据库
Yii2 修改框架入口增加配置适应开发生产环境
Yii2 修改框架入口增加配置适应开发生产环境
140 0
Yii2 修改框架入口增加配置适应开发生产环境
|
JavaScript 前端开发 测试技术
【实测】django测试平台必看:各种请求方式的利弊和适用场景
【实测】django测试平台必看:各种请求方式的利弊和适用场景
【实测】django测试平台必看:各种请求方式的利弊和适用场景
|
缓存 前端开发 JavaScript
前端培训-中级阶段(23)- Manifest ApplicationCache应用程序缓存(2019-10-31期)
前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。
185 0
前端培训-中级阶段(23)- Manifest  ApplicationCache应用程序缓存(2019-10-31期)
OpenFaces 3.0 最终版本发布,支持JSF2.0
Dmitry Pikhulya在TeamDev Support社区上发帖称OpenFaces 3.0 最终版本发布了,并支持JSF2.0。全文翻译如下: OpenFaces 3.0 最终版本发布。本次发布主要关注与JSF2.0 规范的兼容性,JSF2.0 替代 JSF1.2 标准,使得开发更为简单。
1036 0
|
数据库 数据安全/隐私保护
【自然框架】稳定版的Demo —— 三:主从表的维护方式
  第一篇:【自然框架】稳定版beta1——源码下载,Demo说明   下载地址:还是老地方,自然框架的源代码、Demo、数据库、配置信息管理程序下载(2010.01.25更新)   (补充了一个元数据的 数据库结构说明文档,在上面的网页里下载)   在线演示:http://demo.conature.cn/       主从表,以人员管理为例,人员的基本信息,公司信息,联系方式,学历信息,工作经历等功能。
1056 0