1.前言
1.1. FIS vs FIS+:
FIS 和 FIS-PLUS(下面简称 FIS+)的概念混淆诞生之初就开始了,用 FIS 的同学一上来就会问“ FIS 和 FIS+ 有什么区别呀?”。鉴于此,大概说一下 FIS 及 FIS+ 的历史及其区别。
FIS 产生之初定位就是做一个内核,提供一套编译体系以及一套静态资源管理的设计思路及其本地调试。编译体系可以简单通过配置 + 插件的方式任意扩展。
FIS+ 就通过扩展实现了一套适合于后端是
PHP+Smarty3
的编译体系,然后在后端实现了静态资源管理,提出了诸如quickling,i18n,fis-plus(default)之类的解决方案。这块值得说明以下的是解决方案fis-plus其实它和编译体系的命令包取了相同的名字。下面详细说明编译体系和静态资源管理。
1.2. 版本
- FIS 2.0 时期支持 Smarty 开发的成套解决方案是 fis-plus
- FIS 3.0 时期支持 Smarty 开发的成套解决方案由 fis3-smarty 提供
1.3. fis-plus-smarty-plugin
- fex开发团队开发的smarty插件
- Smarty 解决方案通过 Smarty 插件的方式来做静态资源管理运算以及一些转义操作
2.目录规范
2.1 例子
|
|
- common 模块包含公用的一些 widget 或 layout 以及可能的一些测试数据
- subsite* 子站模块
每一个模块的目录结构如下;
|
|
3. smarty插件
html
1<{html framework=”common:static/mod.js”}>head
1<{head}><{/head}>body
1<{body prop=”value”}><{/body}>script
123<{script}>var c = require(‘/widget/ui/a/a.js’);<{/script}>style
12345<{style}>body {background-color: #CCCCCC;}<{/style}>require
- uri
widget
1<{widget name=”common:widget/header/header.tpl”}>modifier
构建工具通过调用插件 smarty-xss 实现这种 XSS 自动转义替换的工作,如果不需要此功能,可以将此插件移除。