fis3+smarty

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 例子

1
2
3
/demo/common
/demo/subsiteA
/demo/subsiteB
  • common 模块包含公用的一些 widget 或 layout 以及可能的一些测试数据
  • subsite* 子站模块

每一个模块的目录结构如下;

1
2
3
4
5
6
7
8
├── fis-conf.js
├── page
├── plugin
├── static
├── server.conf
├── smarty.conf
├── test
└── widget

3. smarty插件

  • html

    1
    <{html framework=”common:static/mod.js”}>
  • head

    1
    <{head}><{/head}>
  • body

    1
    <{body prop=”value”}><{/body}>
  • script

    1
    2
    3
    <{script}>
    var c = require(‘/widget/ui/a/a.js’);
    <{/script}>
  • style

    1
    2
    3
    4
    5
    <{style}>
    body {
    background-color: #CCCCCC;
    }
    <{/style}>
  • require

  • uri
  • widget

    1
    <{widget name=”common:widget/header/header.tpl”}>
  • modifier

    构建工具通过调用插件 smarty-xss 实现这种 XSS 自动转义替换的工作,如果不需要此功能,可以将此插件移除。

4. 拓展阅读

罐头很懒 (⊙v⊙)<br><br>工作日日常 :<br>do {<br>&nbsp;&nbsp;打代码<br>} while ( 发呆 || 吃饭 )<br><br>周末日常 :<br>( 鱼罐头 || 午餐肉 || 炸鸡块 ) +<br>( 罐可乐 || 瓶啤酒 ) +<br>( 盒仔饭 || 艇仔粥 || 即食面 ) +<br>( 轻音乐 || 肥皂剧 || 热网综 ) +<br>( 水果糖 || 甜布丁 )