在Coldbox框架中何处添加可在视图调用的全局函数?
ColdBox框架中全局视图函数的存储位置
先给你补全替换空格为连字符的函数逻辑:
public string function makeUrl( required string url ) { // 把所有空格替换成连字符 return replace( arguments.url, " ", "-", "all" ); }
下面是几个能让视图直接调用这个全局函数的存储位置,按推荐程度排序:
1. 自定义助手文件(首推)
在你的ColdBox项目/includes/helpers目录下新建一个CFC文件,比如UrlHelper.cfc,把函数塞进去就行,记得让这个CFC继承ColdBox的基础助手类:
component extends="coldbox.system.helpers.BaseHelper" { public string function makeUrl( required string url ) { return replace( arguments.url, " ", "-", "all" ); } }
ColdBox会自动扫描这个目录,把助手函数注册到视图、布局里,直接在视图里写makeUrl("Hello World")就能用。
2. 全局函数注册(适合简单函数)
不想单独建文件的话,直接在Application.cfc的onApplicationStart方法里注册这个函数到视图渲染器:
function onApplicationStart() { application.cbController.getViewRenderer().addGlobalFunction( "makeUrl", function( required string url ) { return replace( url, " ", "-", "all" ); } ); }
这样视图里也能直接调用这个函数。
3. 模块助手(仅限模块内使用)
如果这个函数只给某个ColdBox模块用,就把助手文件放在模块的/includes/helpers目录下,ColdBox会自动加载模块内的助手,只能在该模块的视图里调用。
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

