[搜]

贴心猫-文档

路由概述

  • 路由本质
    • 动态网页本质 是 根据一组(某个规则)的url地址,展示动态的数据给用户;
    • 路由的本质 是 规划管理这些规则,实现这个效果;
    • 路由就是系统定义的 url中特定的参数,根据它来关联模板/处理数据/展示数据;
  • 基本组成
    • 模型:一个入口,可能有多个模型,那要一个参数:mod=xxx
    • Key(ID):分类,详情等,需要一个ID参数:id=xxx
    • Act(操作):当前是列表,还是详情参数:act=xxx
  • 参数组合(新闻)
    • 新闻首页:mod=news
    • 新闻分类列表:mod=news&act=lists&type=1234
    • 新闻详情:mod=news&act=detail&id=5678
  • 参数组合(楼盘)
    • 楼盘首页:mod=house
    • 某区域楼盘列表:mod=house&act=lists&area=abcd
    • 楼盘详情:mod=house&act=detail&id=5678
    • 楼盘详情下的评论:mod=house&act=detail&id=5678&ext=remark
    • 楼盘详情下的出租:mod=house&act=detail&id=5678&ext=rent
    • 楼盘详情下的出售:mod=house&act=detail&id=5678&ext=sale
    • 楼盘详情下的图片:mod=house&act=detail&id=5678&ext=pics

Mkv路由

贴心猫系统的参数 更简单!

  • 贴心猫-参数组合
    • 新闻首页:news
    • 新闻分类列表:news-1234
    • 新闻详情:news.5678
    • 楼盘首页:house
    • 某区域楼盘列表:house-abcd
    • 楼盘详情:house.5678
    • 楼盘详情下的评论:house.5678.remark
    • 楼盘详情下的出租:house.5678.rent
    • 楼盘详情下的出售:house.5678.sale
    • 楼盘详情下的图片:house.5678.pics
  • ext扩展参数
    • 上述楼盘中的ext参数,某CMS为了表达这种需求,专门弄了一组addon参数;
    • 用类似 addon=1,addon=2,addon=2 对应上述的 ext=rent,ext=sale,ext=pics 等参数;
    • 类似表达楼盘这种需求,在贴心猫系统里就成了类似:house.5678.pics
    • 当然了,贴心猫里,这个参数也是可有可无,根据需要设置;
  • mkv路由
    • TP的路由参数是:s=/news/detail
    • Yii的路由参数是:r=/news/detail
    • 贴心猫系统里,整个参数就是类似见上的:news.5678
    • 其实,贴心猫吧类似 mkv=news.5678 中路由参数的 [mkv=] 省略了!
    • 到此:这里的 mkv 就是上述 路由概述 > 基本组成 中提到的 model,kid,act(view) 缩写而来

ID风格

  • 假设一个参数:brand(品牌)
    • 风格一:brand=123,345,567,789
    • 风格二:brand=huawei,zte,lenovo,coolpad (表意明了)
    • 贴心猫的各类id,如模型,类别,栏目等;选择了风格二
  • 假设一个订单号:order(订单)
    • 风格:id=123,345,567,789
    • 如果有个订单id为:100,那肯定猜测有前面的 id=99,98... 和后面的 id=101,102
    • 这样的id容易猜测到,不安全
  • 贴心猫的资料详情ID
    • 风格三:id=2019-6n-ja1p, 2019-6u-bc9t, 2018-88-8899
    • 贴心猫的各类详情id,如新闻,产品,楼盘等;选择了风格三
    • 这些id利于生成静态,单个id是长了些,但按年月等特征,生成静态地址就短了;
    • 曾经这样想过,一些特殊号id如:2018-88-8899,可预留,还可供运营收费!
    • 风格四:id=19814-07a01,19814-3b502,19814-5ca03,19814-6d804
    • 贴心猫中,一些特殊场景,如订单id,工单id等;选择了风格四(可自定义) - 这些id一看就知道一些大意
    • DIY:更多id风格,见类文件:/imcat/core/blib/basKeyid.php
  • (总结)ID不用数字的原因
    • 表意明了
    • 安全,不易猜测id
    • 利于生成静态文件
    • 避免自增属性在数据转换中容易丢失
    • 贴心猫字符使用哲学 - 善用96个可显示ASCII码
  • Demo - 一些ID与Url
说明 Mkv路由
新闻首页 news
系统新闻 news-nsys
新闻详情 news.2015-cs-fk01
楼盘详情 house.2019-45-gzua
楼盘相册 house.2019-45-gzua.tu
关联出租 house.2019-45-gzua.cz

探索与前行

  • 纠结前行 --- 数字化id ?
    • 对于像 2019-45-gzua 这样的id,一些人或一些场合,可能让人难以忍受!
    • 特别是 现在的 缓存技术,伪静态技术普及,很多人都不生成实体静态文件了。
    • 客观的说,如果不生成实体静态文件,像 2019-45-gzua 还不如用 自增的 1234 好了!?
  • 模板与展示
    • 回到路由的本质(本文最前面),贴心猫系统,就是通过 这个简洁的 Mkv路由 : 确定使用什么模板;展示什么数据。
    • 这些我们在稍后的章节,继续玩味!