我有很多FW / 1控制器,它们可以根据请求是get还是post来执行不同的功能。我有很多看起来像这样的代码
if (cgi.request_method == "post") {
我最近安装了Commandbox的CodeChecker CLI,并在控制器上松开了它。我收到以下警告:
Don't use shared scope variables in a CFC | Standards | Severity: 4
Avoid using shared scope variables from within a CFC as it breaks encapsulation.
Users//jamesmohler/Sites/ColdFusion/P.../messagesController.cfc:13
我已经回到FW/1 Reference Manual,并且我注意到它具有一个名为getCGIRequestMethod()
问题
我一直在错误地测试POST
吗?鼓励我避免什么事情?
答案 0 :(得分:0)
简短答案
我已替换
if (cgi.request_method == "post") {
使用
if (framework.getCGIRequestMethod() == "post") {
好答案
FW / 1确实利用了其他CGI变量,但没有公开它们。因此,没有我可以使用的类似功能。
FW / 1将数据复制到
request._fw1 = {
cgiScriptName = CGI.SCRIPT_NAME,
cgiPathInfo = CGI.PATH_INFO,
cgiRequestMethod = CGI.REQUEST_METHOD,
...
请问request.
范围比cgi.
范围更好的问题。我在此提交,不是因为两者都在处理请求时发生。使用cgi.
可能会破坏封装,但是我认为不希望通过FW / 1的rc.
范围来推送变量。我也不想修改FW / 1以捕获所有cgi变量。