避免 cgi 共享范围
Avoid cgi shared scope
我有很多 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
吗?我究竟被鼓励避免什么?
简答
我已经更换了
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 变量。
我有很多 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
吗?我究竟被鼓励避免什么?
简答
我已经更换了
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 变量。