2017-11-13 6 views
0

In a.cfm Aufruf Ich habe:die gleiche Coldfusion-Komponente aus verschiedenen Vorlagen

<CFSET VerObj = New cfcomponents.VerFold.Ver_Users()> 
<CFSET VerObj.Functiion_1(userid)> 

In den nächsten paar Vorlagen, c.cfm, ich eine andere Funktion innerhalb Ver_Users.cfc anrufen muss ich tun kann:

<CFSET VerObj = New cfcomponents.VerFold.Ver_Users()> 
<CFSET VerObj.Function_2(userid)> 

Wenn ich brauche wieder die gleiche cfc rufen noch aus einer anderen Vorlage auf der Straße und ich dies weiterhin tun, ich denke, es ist sehr umständlich ist und sich wiederholende? der Zweck .cfc zu verwenden, ist so, dass ich die Funktionen wieder verwenden oder rufen Sie können einfach tun:

<CFSET VerObj,Function_1()> or calling Function_2 

von überall ohne keep Instanziieren des cfc bin ich richtig? Gibt es ein Beispiel dafür, wie dies zu erreichen ist?

+0

Wie Sie 'c.cfm' zugreifen? Ist es eine neue Anfrage oder ist es von 'a.cfm' enthalten? –

+0

Es ist eine neue Anfrage. Zum Beispiel muss meine Anwendung eine der Funktionen innerhalb der gleichen .cfc – Rbt

+0

verwenden. Aus Gründen der Ungeschicklichkeit ist es ein Kompromiss. Statt einer einzelnen Codezeile in jeder relevanten .cfm-Datei müssen Sie 'application.' hinzufügen, um die Objektvariable bei jeder Verwendung zu definieren. –

Antwort

0

@Rbt - Sie könnten eine Application.cfc erstellen, die die Ver_Users-Komponente instanziiert und application.Function1() und application.Function2() in Ihren cfm-Dateien aufrufen. Sie könnten eine Sitzung erstellen und den Gültigkeitsbereich Sitzung verwenden oder den Gültigkeitsbereich Anwendung verwenden, der ihn als global behandelt, je nachdem, wie Sie ihn verwenden möchten.

2

Das Instanziieren einer Komponente hat eine sehr geringe Leistungseinbuße. Es ist nicht falsch, es in verschiedenen Vorlagen erneut zu instanziieren.

Wenn Sie diese paar Nanosekunden wirklich löschen möchten, können Sie die Komponente einmal beim Ereignis onApplicationStart() in Ihrer Application.cfc instanziieren und im Anwendungsbereich der Anwendung speichern.

<cfset application.verUser = new cfcomponents.VerFold.Ver_Users()> 

Und dann, wie die Funktionen in Ihrer cfm nennen:

<cfset application.verUser.Function_1()> 
+0

Bevor Sie den App-Bereich hinzufügen, ** stellen Sie sicher, dass der cfc threadsicher ist **, andernfalls kann er Fehler verursachen. – Ageax

Verwandte Themen