MyStep Framework 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
MyStep Framework 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
MyStep Framework 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
MyStep Framework 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
MyStep Framework 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 Apache
开发语言 PHP JavaScript HTML/CSS
操作系统 跨平台
软件类型 开源软件
所属分类 Web应用开发Web框架
开源组织
地区 国产
提 交 者 windy2000
适用人群 未知
收录时间 2020-07-03

软件简介

迈思框架(MyStep Framework)是一套基于 [PHP 7.0] 的web开发框架,旨在构建一个可以便捷调用常用功能,以最简洁的代码实现目标功能,同时具备高度可扩展性,可通过代理模式,方便的将第三方功能模块集成到框架中。

  • 路由系统 - 框架通过 rewrite 方法接管所有响应,除 static 目录和自定义扩展类型外,其他文件均无法直接通过 url 访问,兼具高可控性和安全性。 (IIS对应web.config,Apache对应.htaccess,NginX需参考目录下文件手动添加)。
  • 路由模式 - 为增加环境适应度,框架同时支持Rewrite,QueryString和PathInfo三种模式,页面中站内URL只需要按照rewrite的模式书写(相对于框架目录,首位无需加"/"),框架将自动调整为对应模式,但为保证最大兼容性,php脚本内的链接多以QueryString模式处理。
  • 模版系统 - 采用二次编译模式,严格实现模板与程序的分离,通过通俗的标签模式调用各类数据。基本模板格式简单易学,方便制作,只要对HTML有一定了解的设计师均可以很快上手,模板修改后即时生效。同时具备高度可扩展性,可根据实际需要任意扩充模版标签。
  • 插件系统 - 可插件模式扩展框架功能,无论是功能增强、系统优化、前台展示均可与系统无缝连接。内容评分、评论、投票、专题、检索、采集、统计等都可以通过插件实现,并可以无缝结合到系统中。
  • 应用接口 - 系统为各类插件提供了丰富的接口,无论是api、模板标签、代码嵌入、脚本附加、登录处理,都可以通过系统接口便捷地实现,为二次开发或插件开发提供最大限度的支持和自由。
  • 多语言支持 - 系统可以随意添加语言包,通过调整参数立即变化。
  • 缓存机制 - 通过三级缓存保证高效
    • 数据缓存,用于缓存从数据库查询出的结果集,包含自建文件和数据库两种模式,也可通过代理模式扩展;
    • 页面缓存,可将解析好的页面整体缓存到缓存文件,在过期前不用再次生成页面,即实现了静态化的效果,也保留了动态脚本的特性;
    • 浏览器缓存,通过etag标识,在客户端再次请求页面数据时,如页面未发生变化,则直接从客户端缓存调用数据,减少了对服务器带宽的请求。

公共函数:

  • getMicrotime($rate) - 获取微秒时间
  • getTimeDiff($time_start, $decimal, $micro) - 取得时间差
  • getDate_cn($date) - 获取中文日期
  • shortUrl($url, $max_length) - 缩略链接
  • tinyUrl($url) - 获取短网址
  • isMobile() - 判断是否为移动设备
  • isHttps() - 判断当前是否为SSL链接
  • myEval($code) - 自定义代码执行
  • checkPara($att_list, $parse) - 检测数据变量中是否有待解析的变量,并解析
  • recursionFunction($func, $para) - 递归执行某一函数
  • getOB() - 获取缓存区内容并清空
  • debug系列函数 - 变量情况查看

执行顺序:

所有响应网址均通过rewrite模块反馈给根目录下的index.php脚本统一处理,虽然框架也支持QueryString和PathInfo两种模式,但是为了更好的网址优化和安全性,建议采用rewrite的方式,主要执行流程如下:

  • 初始化框架 - 通过框架根目录index.php,调用myStep::init()
  • 路由模式判断 - 通过 $router->check() 判断是否存在自定义路由
    • 当前响应路径符合已设定的自定义路由规则,按规则调用指定的响应方法,可由多方法依次执行构成多级响应。可通过框架默认处理方法myStep::getModule()调用相应模块(具体处理流程详见核心类对应方法讲解),也可以根据需要替换为自定义方法。
    • 如未发现何时规则,则分析响应路径,将一级路径或默认app指定为响应app,并调用该app路径下的index.php处理
  • 框架变量设置 - 在获取执行入口之后,框架将继续调用以下程序
    • myStep::setPara() - 此方法在执行入口脚本之前将调用,用于加载应用设置(config.php)、应用函数库(lib.php),并设置基本框架变量
    • $mystep->preload() - 并非myStep类中的原生方法,但是如果应用扩展类中存在此方法,将会在声明类后立即执行
    • lib.php - 应用函数库(app/[name]/lib.php,推荐使用命名空间),在核心类已加载并声明实例后加载
    • global.php - 本脚本为应用通用脚本,自定义路由模式下通过 myStep::getModule() 自动加载,其他模式下需手动加载,可用于在模版实例声明后做后期变量及程序调整。
    • $mystep->shutdown() - 并非myStep类中的原生方法,但是如果应用扩展类中存在此方法,将在页面结束时执行

PHP常量:

  • PATH - 当前应用路径
  • ROOT - 框架根目录路径
  • ROOT_WEB - 框架相对于网站根目录的相对路径
  • APP - 应用存放路径
  • LIB - 函数及类存放路径
  • CACHE - 缓存及临时文件存放路径
  • CONFIG - 配置文件存放路径
  • PLUGIN - 插件存放路径
  • STATICS - CSS、JS及图片等静态文件存放路径
  • VENDOR - 第三方应用库存放路径
  • FILE - 文件上传目录

全局变量:

  • $s - 框架配置,通过对象模式调用,如$s->web-title
  • $info_app - 当前调用应用的基本信息,除对应APP信息外(APP目录下info.php定义),还包括path(数组)和route(字符串)项目
  • $mystep - 应用入口类,如应用路径下不存在以应用路径名命名的类(如test/test.class.php里面的test类,且此类应该是mystep类的扩展),则调用默认mystep类
  • $db - 数据库操作类,在函数初始化时根据设置连接,采用代理模式,可扩展
  • $cache - 数据缓存类,在函数初始化时根据设置连接,采用代理模式,可扩展
  • $tpl_setting - 模版参数,从 app 设置中调用,并继承于全局变量
  • $tpl_cache - 模版缓存参数,从 app 设置中调用,并继承于全局变量

基础类:

myBase为抽象类,可为所有其他子类提供统一的构建方法和错误处理;myTrait为扩展类,可为所调用的类提供一整套魔术方法

  • myBase->__construct - 将构造函数引导至init方法
  • myBase->setErrHandler - 设置错误处理函数
  • myBase->error - 通过异常处理类处理代码错误
  • myTrait->__set - 添加类动态变量,即没有在类中声明过的变量
  • myTrait->__get - 调用类动态变量,如变量名为instatnce,则直接返回新的当前类实例
  • myTrait->__destruct - unset类时,注销所有类内部变量
  • myTrait->__call - 智能判断并调用方法别名,动态方法或类外部函数
  • myTrait->addMethod - 动态添加类方法
  • myTrait->regAlias - 注册类内方法别名

控制类:

myController类为核心控制类,具体用法请参加功能类文档,其中几个重要方法说明如下:

  • 页面附加内容设置 - 包括 setAddedContent 和 pushAddedContent 两个方法,可设置指定关键字的内容,并将相关内容插入到模版中"page_关键字"的位置
  • 语言文件管理 - 包括 setLanguage,setLanguagePack 和 getLanguage 三个方法,可设置语言、语言包或调用指定语言、指定索引的文字
  • 应用接口设置 - 包括 regApi 和 runApi 两个方法,可通过路由的 /api/[str]/[any] 调用
  • 模块设置 - 包括 regModule 和 module 两个方法,可通过路由的 /module/[str]/[any] 调用
  • 模版标签设置 - 包括 regTag 一个方法,将在调用show方法时加载给模版类
  • 链接设置 - 包括 regUrl 和 url 两个方法,通过指定方法和相关参数生成对应链接
  • 插件设置 - 包括 regPlugin 和 plugin 两个方法,每个插件是应用接口,模块,标签和链接的组合
  • 代码钩子设置 - 包括 setFunction 和 run 两个方法,将在指定的位置(start,end,page等,也可自定义)依次(顺序或倒序)执行指定的方法
  • 用户账户管理 - 包括 regLog,login,logout 和 chg_psw 四个方法,用于与第三方用户系统对接
  • 脚本管理 - 包括 addCSS,removeCSS,clearCSS,CSS,addJS,removeJS,clearJS 和 JS 八个方法,用于动态加载js和css脚本
  • 页面控制 - 包括 start,show 和 end 三个方法,用于页面起始、显示和结束
  • etag方法 - 用于赋予或调用指定标识的浏览器缓存
  • file方法 - 直接显示指定文件
  • guid方法 - 生成唯一ID
  • setOp方法 - OPcache设置与调用
  • regClass方法 - 设置类自动载入规则
  • setAlias方法 - 设置类调用别名
  • header方法 - 返回指定的响应头(可以编码或指定的索引,具体参见源代码)

核心类:

myStep类扩展自myController类,具体用法请参加功能类文档,其中几个重要方法说明如下:

  • start($set_plugin) - 执行于脚本主程序开始之前,用于设置框架类及其方法的调用别名,设定错误报告模式,加载应用对应插件,初始化cookie和session,声明数据库($db, 如$s->db->auto为false,则不建立连接,以便于无数据库操作的应用)和缓存($cache)实例,以及为状态变量赋值
  • show(myTemplate $tpl) - 用于加载网站基本参数至模版实例,并将结果直接显示(在此可添加针对显示内容的预处理方法);同时也检测并按需更新应用脚本文件([appName].js 和 [appName].css,详情见相关专题),如设置"$mystep->setting->show = true",则将在页面最下面显示基本运行信息。
  • render(myTemplate $tpl) - 与 show 方法类似,但是返回通过模版实例所生成的页面内容,而不是直接显示
  • setLink($content) - 针对所生成页面的链接,根据设定的链接模式(rewrite,pathinfo或querystring)进行处理,页面模版中只要按照rewrite模式书写,在页面显示时将自动通过本预处理方法调整为对应设置的链接。
  • end() - 脚本结束时所用的方法,搜集并对比运行结束时的信息,结束并清空变量,并智能调用用户扩展类中自定义的 shutdown() 方法
  • info($msg, $url) - 执行结果或提示信息显示,并在5秒后自动跳转到对应的链接
  • redirect($url, $code) - 脚本内链接跳转,如$url为空则退回来路链接;$code默认是302临时跳转,可根据需要改变。
  • init() - 静态方法,预初始化基本设置信息(如发现有错误将自动调整),声明类加载模式,如为首次执行框架的话,将自动跳转到初始设置页面
  • go() - 框架执行入口,加载设置信息,判断静态文件并直接显示,否则根据路由规则调用相关脚本
  • setPara() - 声明框架实例,默认直接调用myStep类,也可在对应APP中扩展,框架会自动调用APP目录下"[appName].class.php"中与APP同名的类。将APP配置覆盖全局配置,然后再调用start方法,同时声明预加载的css和js脚本文件以及模版的初始设置。
  • vendor($class_info) - 调用位于VENDOR目录下的第三方PHP功能类,需要满足以下条件。
    • 如$class_info为字符串,所调用类(位于vendor目录下)的目录名、文件名和类名必须一致,其中文件名可为"名称.php"或"名称.class.php"
    • $class_info可以为数组,包含
      • dir - 目录名称,如不设置默认与 file 值相同
      • file - 不带扩展名的文件名称,扩展名可为".php"或".class.php",如不设置默认与 dir 值相同
      • class - 调用类名称,如不设置默认与 file 值相同
      • namespace - 类的命名空间,没有请留空
    • 方法中除了首参数($class_info)外,后面的参数将用于在声明类时,构造函数(__construct()或init())的初始化
  • getModule($m) - 自定义路由处理函数(也可以通过自定义方法处理自定义路由,详情参见"自定义路由"专题),机制如下:
    • 传入参数 $m - 本参数传递路由外的路径信息,如路由为 /manager/[any],URI 为 /manager/path1/path2,则 $m 为 path1/path2,即[any]部分,但需要注意的是在本方法中,$m 被截取为 path1。此参数可直接在自定义的路由处理脚本内调用,但如需在下级函数中调用,需要先进行global处理。
    • 本方法将通过 myStep::setPara 方法调用当前 app 设置中的模版参数设置(可继承于全局设置,存储于全局变量 $tpl_setting 中)
    • 本方法将按照如下顺序调用处理脚本(发现可用脚本后将立即调用并停止试探)
      • app路径/module/模版样式/$m.php($m 为输入参数)
      • app路径/module/模版样式/路由名称.php (如路由为 /manager/[any],路由名称为 manager)
      • app路径/module/$m.php($m 为输入参数)
      • app路径/module/路由名称.php (如路由为 /manager/[any],路由名称为 manager)
      • app路径/module/模版样式/index.php(模版样式为设置中对应的内容)
      • app路径/module/index.php

JS变量:

相关变量是通过脚本在页面被调取时动态生成,在调用时建议在onload事件或jQuery的$(function(){})中调用

  • language - 调用系统语言设置(可自动扩展app语言包)
  • setting - 调用系统设置(包括:language,router,debug,app,path_root,path_app,url_fix,url_prefix,url_prefix_app等信息,可通过APP设置重的 $setting['js'] 扩充)
  • global - 全局变量,可在任何函数内部调用,可随意扩种,已包含以下子参数:
    • global.root - 针对rewrite、pathinfo和querystring模式下的根路径
    • global.root_fix - 配合setURL,用于页面链接的自适应调整
    • global.editor_btn - 针对tinyMCE编辑器的按钮扩展
    • global.alert_leave - 在含表单的页面,如果内容发生变更,且通过非提交方式离开页面的话,将此变量设置为 true,即可出现警告
    • global.timer - 用于计时器的返回值记录(非强占,可灵活调用)
    • global.func - 页面载入后所需运行的函数组

JS函数:

  • getPath(lvl) - 获取相对于网站根的到调用函数页面所在路径的lvl级路径
  • $id(id) - 获取对应id的页面元素
  • $name(name, idx) - 获取对应name的页面元素(组),idx可为first,last,数字索引,否则返回全部符合的元素组
  • $tag(name, context) - 依照context(默认为document)获取对应tag的页面元素组
  • isArray(para) - 判断变量是否为数组
  • loadingShow(info) - 显示锁屏信息,再次调用则关闭
  • openDialog(url, width, height, mode) - 开启模态窗口
  • openWindow(url,width,height) - 新开窗口
  • sleep(the_time) - 程序终端指定时间
  • copy(obj) - 复制某一页面元素内容(value或innerText)或者一个字符串
  • rndNum(min,max) - 生成指定范围内的随机数字
  • rndStr(len, t_lst, c_lst) - 生成随机字符串(可自定义采样内容)
  • watermark(obj, rate, copyright, char_c, jam_tag) - 添加字符串水印
  • md5(str) - 生成str的md5编码
  • debug(para, mode) - 检测指定变量para的内容
  • checkObj(obj, func_show) - 查看对象属性
  • reportError(msg, url, line) - 错误信息处理
  • checkSetting() - 通过在需要调用检language, setting变量的函数开始加上"if(!checkSetting()) return;"(参考global.js中setURL函数的用法)来保证对应函数执行时可调用系统变量
  • setURL(prefix) - 配合域名绑定模式和路由模式,智能处理页面内链接
  • gotoAnchor(theAnchor) - 滚动至对应的锚点
  • ms_func_reg(function) - 注册需要页面载入后运行的函数
  • ms_func_run() - 运行于所有页面载入之后的函数(框架自动在page_end处运行)
  • 对象方法扩展 - 针对 String,Data,Number,Array 等对象
    • string.blen - 返回某字符串的二进制长度
    • string.trim - 去除字符串首尾空字符
    • string.printf - 字符串赋值
    • data.format - 格式化日期(YYYY-MM-dd hh🇲🇲ss)
    • array.append - 扩展数组
    • number.formatMoney - 格式化金额
  • jQuery扩展 - 包括功能扩展($.xxxx)和对象方法扩展($obj.xxx)两类
    • $.toJSON - 将指定对象转换为json
    • $.evalJSON - 将json字符串转换为对象或数组
    • $.setJs - 批量顺序加载js脚本
    • $.setCss - 批量加载css样式表
    • $.vendor(name, option) - 加载vender目录下名称为name的第三方js扩展,可根据option判断是否同时加载样式表并调用回调函数,相关说明如下:
      • 目录名和js文件名须一致
      • option 中 add_css 设置为 true 时,将同时加载同名css文件,如设定为字符串,将作为css的文件名修正,如".min"将加载"名称.min.css"
      • option 中 name_fix 为文件名修正,如设定为".min",将加载"名称.min.js"文件
      • option 中 callback 参数为匿名函数,用于在成功调用扩展后,执行相关的功能代码
    • $.cookie(name, value, options) - cookie管理(读取、添加、修改、删除)
    • $obj.serializeObject - 将jQuery对象序列化(如form)
    • $obj.outerHTML - 返回jQuery对象的外部超文本代码
    • $obj.cssText - 为jQuery对象批量添加CSS

路由规则:

路由分为路径调用和自定义路由两种

  • 命名规则 - 为避免路由冲突,路径调用模式下"应用目录名"首字母"建议"为大写;自定义路由模式下,一级路径首字母"必须"为小写字母
  • 路径调用 - 相关路径信息将直接传递给应用目录下的index.php处理,格式为:网址/应用目录名/路径信息
  • 自定义路由 - 可在框架的应用设置中载入应用路由配置,格式如下:
    • $format - 路径辨别格式,含如下默认格式:
      • [any] - 任意非路径字符
      • [str] - 字母、数字及下划线
      • [int] - 任意数字
      • 自定义格式为 array(格式索引 => 格式正则),示例如下:
         $format = array(
            'test' => '([A-Z][a-z]+)+',
         );
    • $rule - 路由规则,格式为 array(请求路径, 处理接口)
      • "请求路径"中可包含预定义路径(格式为[格式索引]),每个路径间隔符中,仅能包含一个自定义格式且不能有其他字符;
      • "处理接口"为负责相应该路径的函数,如果为数组的话,则会依次执行,除最后一个外,如某个子判断返回false则终止执行,否则上一个函数的返回值将作为下一个函数最后一个参数;各处理函数如需加带参数,可依照"函数名,参数值"的格式,其中参数值可以指定固定值,也可以通过"$1","$2"的模式指定为对应的路径匹配部分(下例2中$1匹配[test]部分);如处理函数为静态类方法,调用格式为"类名:方法名";处理函数也可为闭包函数,如:
        $rule = array(
           array('/test/[test]', array('perCheck,3','routeTest'))
        );
        $rule = array(
           array('/test/[test]', array('perCheck,$1','routeTest'))
        );
    • $api - 应用接口程序,格式如下:
      $api = array(
          'error' => 'app\myStep\getError'
      );

框架接口:

以下接口为框架通过路由规则预定义的接口,接口处理函数统一返回数组格式数据,可通过在url最后加上"/返回类型"来控制(可选),格式默认为json,还可为xml、string、hex、script等,如需在某一APP内调用另外一个APP的插件接口(如captcha),可通过在url上加上"&app=[AppName]"的模式保重接口依照对应app的设置执行。

  • /api/[str]/[any] - 自定义应用接口,[str]为app名称,[any]为接口名及参数,可通过_GET或_POST接收参数
  • /module/[str]/[any] - 模块接口,[str]为app名称,[any]为模块名及参数
  • /captcha/[any] - 验证码图像接口,[any]为随机数,保证新码生成,验证参数为$_SESSION['captcha']
  • /ms_setting/[any] - 设置接口,[any]为应用名称,获取该应用json格式的设置
  • /ms_language/[str]/[any] - 设置接口,[str]为应用名称,[any]为语种索引,获取该应用json格式的设置
  • /api/myStep/upload - 文件上传接口,上传文件保存在常量FILE目录
  • /api/myStep/download/[any] - 文件下载接口,[any]为文件索引
  • /api/myStep/remove/[any] - 上传文件删除接口,[any]为文件索引

应用结构:

应用是在框架基础上的独立功能组合,相关文件存放在框架APP目录对应应用名称(应用名称首字母需要大写)的目录下,推荐结构如下:

  • config - 配置文件描述,分语种,用于生成配置设置页面,模式可参考框架config目录,格式参照static/js/checkForm.js规范输入格式
  • language - 语言包文件,可通过框架自动调用
  • module - 针对不同请求的功能模块,默认处理脚本为 index.php
  • template - 模版文件
  • asset - 资源文件,此目录下的文件可以直接通过"/[appName]/asset/[fileName]"的方式调用存放于"模版样式名子目录"下的文件,框架可自行根据设置调用,如设置了域名绑定,可进一步简化为"/asset/[fileName]"。例如:应用名为MyApp,模版类型为default,文件存储在 app/MyApp/asset/default/myfile.txt,调用网址为:http://hostname/MyApp/asset/myfile.txt
  • asset/style.css - 应用样式表文件(自动载入)
  • asset/function.js - 应用脚本文件(自动载入)
  • config.php - 配置信息(参考config目录下的描述文件)
  • index.php - 入口文件(必需)
  • info.php - 介绍文件(必需)
  • lib.php - 应用通用函数库,自动加载,在myStep::setPara()前引入
  • global.php - 应用通用脚本,自定义路由模式下通过myStep::getModule()自动加载,用于在模版实例声明后做后期调整,其他模式下需手动加载
  • plugin.php - 插件引用记录(自动生成)
  • route.php - 路由信息,格式详见路由章节

脚本加载:

每个应用可通过myStep::setPara()自动生成 cache/script/[appName].js 和 cache/script/[appName].css([appName]表示应用名称),供页面调用,这两个文件经压缩处理,可根据相关文件内容改变自动更新。载入规则如下(如文件不存在将自动忽略,其中[TemplateStyle]为模版样式名称):

  • cache/script/[appName].css - 将自动载入以下文件(其中部分static目录下的文件可在设置中调整):
    • static/css/bootstrap.css
    • static/css/font-awesome.css
    • static/css/glyphicons.css
    • static/css/global.css
    • [appName]/asset/style.css
    • [appName]/asset/[TemplateStyle]/style.css
  • cache/script/[appName].js - 将自动载入以下文件(其中前四个文件可在设置中调整):
    • static/js/jquery.js
    • static/js/jquery.addon.js
    • static/js/bootstrap.bundle.js
    • static/js/global.js
    • [appName]/asset/function.js
    • [appName]/asset/[TemplateStyle]/function.js

功能插件:

插件为为应用添加某一组功能,可通过框架后台插件管理设置参数,并在应用管理的插件选项中设置对应应用都调用那些插件,推荐结构如下:

  • index.php - 入口脚本,插件调用时将首先调用此文件(必需)
  • info.php - 介绍文件(必需)
  • class.php - 包含检测(check)、安装(install)、卸载(uninstall)以及其他基本功能(如模版标签解析,页面钩子等)的脚本(必需)
  • config.php - 配置信息(参考config目录下的描述文件)
  • module - 存放功能模块所需文件(脚本及模版),模块可以理解为针对插件功能的客户交互页面

框架钩子

包含程序钩子和框架钩子两类

  • 程序钩子 - 主控制类中包括 setFunction 和 run 两个方法,将在指定的位置(start,end,page等,也可自定义)依次(顺序或倒序)执行指定的方法
    • setFunction($func, $position) 用于注册某个方法($func),并指定在某个位置($position)响应
    • run($position, $desc, $para) 在特定位置($position)执行已注册的所有方法,如果$desc为false的话,则按照注册顺序的反序执行,$para为对应方法的参数,需要为数组模式(即使参数本身即为数组,也需要将其作为数组的首变量,即[$para]),如未设置,则会将当前类作为作为参数传递给对应方法
  • 模版钩子 - 模版类中包括 setAddedContent 和 pushAddedContent 两个方法
    • setAddedContent($position, $content) 用于在指定位置($position)注册所需添加的内容,其中对应位置将被
    • pushAddedContent(myTemplate $tpl) 将已注册内容加入对应模版变量的"page_{$position}"的位置,如 $mystep->setAddedContent('somewhere', 'content1')、 $mystep->setAddedContent('somewhere', 'content2') ,对应模版中<!-page_somewhere->将被替换为'content1content2'

链接设定

由于框架支持Rewrite,QueryString和PathInfo三种模式,在页面链接的设定方面可根据,按照如下两种方式:

  • PHP脚本模式 - 链接直接按照路由对应规则(即rewrite模式)设置,通过myStep类中的静态方法 setURL 转换待转换链接即可,但是每次执行仅能转换一个链接
  • JS脚本模式 - 链接直接按照路由对应规则(即rewrite模式)设置,在页面载入最后执行JS函数 setURL() (setURL函数的规则详见JS函数章节),即可智能转换页面所有链接
  • 其他说明 - 在实际应用中需参考以下情况:
    • 在转换链接的同时,也会给链接加上路径信息,如:
      框架存放在 /dir/ 目录下,设置模式为PathInfo,路由链接为 /func/method/id,经过转换后的链接为:/dir/index.php/func/method/id
    • 模版函数也将传递一个路径变量:,,参照上例,此变量内容为:/dir/index.php/,如所调用文件为静态文件可直接在利用即可。

域名绑定:

每个应用或路由规则(仅限一级目录)均可以通过框架绑定到独立域名,但需要避免路由中与其他路由规则混淆(如:setting关键字默认为调用对应应用的设置信息),具体解决方法请见myStep应用

Composer:

框架支持通过composer添加附属功能及相关依赖,具体请参见composer文档

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2016/03/07 10:59

.NET Framework

.NET Framework .NET版本 1.0 1.1 2.0 3.0 3.5 4.0 4.5 完整版本 1.0.3705.0 1.1.4322.573 2.0.50727.42 3.0.4506.30 3.5.21022.8 4.0.30319.1 4.5.40805 发布时间 2002-02-13 2003-04-24 2005-11-07 2006-11-06 2007-11-19 2010-04-12 2012-05-24 VS开发版本 VS2002 VS2003 VS2005 VS2008 VS2010 VS2012 Windows默认安装 Windows Server 2003 Windows Server 2003 Windows Server 2008 Windows Vista Windows Server 2008 Wind...

0
3
01/25 11:26

It was not possible to find any compatible framework version The framework 'Microsoft.NETCore.App'

问题: It was not possible to find any compatible framework version The framework 'Microsoft.NETCore.App', version '3.1.10' was not found. 原因: Microsoft.AspNetCore.App缺失/没有合适版本 解决办法: https://dotnet.microsoft.com/download/dotnet-core?utm_source=getdotnetcorecli&utm_medium=referral 找到相应的版本,我的是netcore3.1,因此我用的是 https://dotnet.microsoft.com/download/dotnet-core/3....

0
0
发表了博客
2010/09/27 11:35

All-In-One Code Framework

Welcome to the All-In-One Code Framework! Are you looking for good and well documented working code samples of Microsoft development technologies? Well, if you are, the Microsoft Community Support team has prepared an all-in-one code framework for you, which is easy to learn and use - the essence of development. The All-In-One Code Framework, which is licensed under the OSI-approved MS-PL, deli...

0
1
01/19 10:29

Robot Framework

简介 Robot Framework是一个基于Python的,可扩展的关键字驱动的测试自动化框架,用于端到端验收测试和验收测试驱动开发(ATDD)。它可用于测试分布式异构应用程序,其中验证需要涉及多种技术和接口。 为何选择Robot Framework? 启用易于使用的表格语法,以统一的方式创建测试用例。 提供从现有关键字创建可重复使用的更高级别关键字的功能。 提供易于阅读的结果报告和HTML格式的日志。 平台和应用程序是独立的。 提供一个简单...

0
0
发表了博客
01/25 09:48

Robot Framework

Robot Framework 三丰 soft张三丰 简介 Robot Framework是一个基于Python的,可扩展的关键字驱动的测试自动化框架,用于端到端验收测试和验收测试驱动开发(ATDD)。它可用于测试分布式异构应用程序,其中验证需要涉及多种技术和接口。 为何选择Robot Framework? 启用易于使用的表格语法,以统一的方式创建测试用例。 提供从现有关键字创建可重复使用的更高级别关键字的功能。 提供易于阅读的结果报告和HTML格式的日志。 平台和...

0
0
发表了博客
2018/03/12 10:48

Rest Framework

一、介绍 RESTful   什么是 RESTful? REST -- REpresentational State Transfer 翻译过来叫做:"表现层状态转移" ,也没有个上下文,鬼晓得什么叫做"表层状态转移" ! OK,换个说法:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作,程序员对这句话应该就可以了解个大概了,说的比较精辟通俗。   来具体解释一下上面的那句话,REST和技术没有多大关系,它是一种软件架构的风格,它将分布在网络中某个节点的资源通...

0
0
发表了博客
2018/06/29 15:32

Avalon Framework

Apache Avalon has closed. Apache Avalon began in 1999 as the Java Apache Server Framework and in late 2002 separated from the Apache Jakarta Project to become its own ASF top level project. Apache Avalon provided Java software for component and container programming and pioneered the use of design patterns such as Inversion of Control (IoC) and Separation of Concerns (SoC). By 2004 Avalon had g...

0
0
发表了博客
2019/01/10 14:28

.NET Framework简介

NET Framework 就是微软Web Services 引擎 1.NET Framework 旨在实现下列目标: 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的。 提供一个将软件部署和版本控制冲突最小化的代码执行环境。 提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境。 提供一个可消除脚本环境或解释环境的性能问题的代码执...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
5 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部