Доступ к функциям в ColdFusion - PullRequest
1 голос
/ 04 февраля 2011

Есть ли способ доступа к функциям через наследование без установки доступа к функции public?

Например: у меня есть Foo.cfc, и он расширяет Bar.cfc.Если я хочу вызвать функцию Bar.cfc из Foo.cfc, я должен установить доступ к функции public.

Если я установил доступ к функции private, то он доступен только из Foo.cfc.Нет ли «промежуточного» уровня доступа, который не был бы общедоступным, но не был бы строго частным?т.е. он разрешает доступ только по наследству ...

Ответы [ 3 ]

6 голосов
/ 04 февраля 2011

Используете ли вы ключевое слово super?Поскольку частные методы должны быть доступны для подкомпонентов , таких как Foo.cfc.

Foo.cfc

<cfcomponent extends="Bar">
    .....
    <cffunction name="fooMethod" access="public" ...>
         <cfreturn super.nameOfAMethodInBarCFC() />
    </cffunction>
</cfcomponent>    
5 голосов
/ 04 февраля 2011

Если я устанавливаю доступ к функции private, то он доступен только из Foo.cfc

NOT TRUE! private уровень доступа в ColdFusion такой жекак protected в Java, так что вы все еще можете вызвать этот закрытый метод Bar из Foo

1 голос
/ 04 февраля 2011

Вам необходимо установить свойство доступа в cffunction to package. Это позволит получить к нему доступ любому компоненту, расширяющему этот компонент.

...