Как определить функции ColdFusion с атрибутом access=»remote» с помощью сценариев?

#coldfusion

#coldfusion

Вопрос:

Цель состоит в том, чтобы разрешить определение всех функций .cfm или .cfc с использованием сценариев, а не тегов CFML.

Я хотел бы изменить это:

 <cffunction name="foo" access="remote">
    <cfscript>
        ....
    </cfscript>
</cffunction>
  

Во что-то вроде этого:

 <cfscript>
    function remote foo() {
        ....
    }
</cfscript>
  

Или что-то еще, если это можно сделать в открывающих и закрывающих тегах cfscript.

Ответ №1:

Невозможно в CF8, стало возможным в CF9:

доступ возвращает тип функции functionName(arg1Type arg1Name=»defaultValue1″, arg1Attribute=»AttributeValue…,arg2Type arg2Name=»defaultValue2″, arg2Attribute=»AttributeValue…,…) functionAttributeName=»AttributeValue» … { основное содержимое }

Определение компонентов и функций в CFScript

Таким образом, ваша функция будет выглядеть примерно так:

 <cfscript>
    remote function foo() {
        ...
    }
<cfscript>
  

Комментарии:

1. Спасибо, это работает, хорошо, что я только что обновился до CF9. Я также должен был прочитать документы, так что двойное спасибо.

2. Знаете ли вы, есть ли способ полностью удалить теги script из файла, возможно, используя специальное расширение, такое как .cfcs и .cfms, которое подсказывало бы анализатору проанализировать файл как файл сценария на 100%?

3. если вы запустите cfc с: component { }, а не <cfcomponent />, все это будет основано на скрипте

Ответ №2:

Вы также могли бы сделать:

 function foo() access="remote" returntype="JSON" {
  

Комментарии:

1. Спасибо за альтернативный метод, Сэм.

2. это интересно!!