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


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

目录
相关文章
|
10月前
|
监控 供应链 数据可视化
电商项目管理之 WBS方法策略
通过将项目拆解成更小、更可执行的任务单元,WBS帮助团队理清思路、明确分工、监控进度,最终确保项目顺利落地。
237 12
电商项目管理之 WBS方法策略
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
从平凡到非凡:借AI风口普通人如何起飞?
雷军曾说:“站在风口上,猪也能飞上天。”而AI无疑是当前最强劲的风口。本文介绍了如何抓住AI时代的机遇,包括理解AI基础概念、选择合适的AI工具、将AI融入工作提升效率,以及利用AI创造被动收入。通过这些步骤,你将能够在AI浪潮中获得成功。
451 0
从平凡到非凡:借AI风口普通人如何起飞?
|
10月前
|
Java 开发者
Java 中的异常处理:不仅仅是 try-catch
在Java的世界里,异常处理是代码的守护神,它保护着程序不会因为意外错误而崩溃。但异常处理远不止try-catch那么简单。本文将深入探讨Java的异常处理机制,从基本的try-catch到更复杂的自定义异常和finally块的使用,带你理解如何在Java中优雅地处理错误。
116 1
|
12月前
|
安全 数据处理 网络安全
系统安全的重要性在哪里?
【10月更文挑战第9天】系统安全的重要性在哪里?
285 1
|
12月前
|
监控 安全 物联网
|
存储 缓存 算法
OS—设备独立性软件
OS—设备独立性软件
414 0
|
机器学习/深度学习 人工智能 调度
2023中国算力大会,我们在这里!
2023中国算力大会,我们在这里!
1072 0
|
存储 弹性计算 缓存
在阿里云服务器上配置自动备份 MongoDB 数据库的操作
我是吃了没有提前备份数据的亏,因为一次误操作,删除了所有数据。阿里云的ECS服务器控制台有定时与自动化任务-自动备份数据服务,不免费。那么就自己动手来吧。
458 0
|
Rust IDE 前端开发
「Rust语言」最全的Rust初学者的完全免费资源(下)
「Rust语言」最全的Rust初学者的完全免费资源
|
人工智能
扩散模型在AIGC中的应用
引言 人工智能生成内容(AIGC)是一种新型的内容创造方式,它使用人工智能技术辅助或替代手动生成内容,基于用户输入的关键词或需求生成内容。AIGC的应用领域日益广泛,其中图像生成领域的扩散模型就是一个例子。
557 0