Wie speichere ich CFCs in einem separaten Verzeichnis und lasse sie funktionieren?

8

Gibt es eine Möglichkeit, den Komponentenpfad im Tag anzugeben?

Ich verwende ColdFusion-Komponenten für meine Anwendung. Meine Anwendung hat jedoch mehrere Ordner, und jedes Mal, wenn ich möchte, dass ein CFC funktioniert, muss ich ihn im selben Verzeichnis wie die Dateien speichern, die Zugriff benötigen. Dadurch erstelle ich mehrere CFC-Dateien, die identisch sind.

Gibt es eine Möglichkeit, meine CFCs in einem Verzeichnis zu speichern und es auf meiner Site funktionieren zu lassen?

    
Mohamad 04.03.2010, 13:51
quelle

3 Antworten

10

Wie andere bemerkt haben, können Sie interessante Dinge mit Zuordnungen und Funktionen tun, die den Stamm Ihrer Anwendung lokalisieren, aber im Kern Ihrer Frage steht die allgemeine Pfadangabe.

Ich schlage vor, dass Sie den Teil der Verwendung von ColdFusion-Komponenten mit dem Titel < em> Angabe des CFC-Verzeichnisses .

Im Wesentlichen heißt das: Wenn Ihre Anwendung in Ссылка funktioniert und Sie eine Seite unter Ссылка , die die Komponente unter:

verwenden möchte %Vor%

Dann sollte fubar.cfm so etwas tun:

%Vor%

Sie nehmen den Pfad der Datei und ersetzen Schrägstriche durch Punkte (aka "Punktnotation") und auch die ".cfc" aus dem Dateinamen der Komponente, die Sie laden möchten.

Außerdem können Sie benannte Zuordnungen verwenden (wie Aaron beschrieben hat). Wenn Sie also eine Zuordnung mit dem Namen /components erstellen, die auf /myApp/foo/components/ verweist, würde Ihr Aufruf von createObject so aussehen:

%Vor%

Die gleichen Punktschreibpfade können in <cfinvoke /> als Teil des Attributs component verwendet werden:

%Vor%     
Adam Tuttle 04.03.2010, 14:33
quelle
6

Es gibt ein paar Dinge, die Sie hier tun können. Ich würde empfehlen, dass Sie die Komponenten dort platzieren, wo sie sinnvoll sind (root / com oder root / models oder was auch immer) und dann von Ihrer Anwendungsbasis aus darauf verweisen.

Im ColdFusion-Administrator können Sie einen zugeordneten Pfad zu Ihrem Anwendungsstamm einrichten und Ihre Komponenten von diesem Pfad aus referenzieren.

%Vor%

Sie können auch eine gewisse Logik in Ihrer Application.cfm / Application.cfc ausführen, um den Stamm der Anwendung dynamisch zu finden. Diese Methode erfordert keine speziellen Berechtigungen und funktioniert, wenn Sie Ihre Anwendung in eine andere Umgebung verlagern. Ein schneller Google hat einen Blog-Beitrag von Peter Freitag mit einer Funktion, die genau dies tun wird. Stellen Sie sicher, dass Sie die .cfm ersetzen, wenn Sie eine Anwendung .cfc verwenden. Ссылка

CFLib.org hat auch eine Methode, die aussieht, als würde sie den Wurzelpfad für Sie finden. Ссылка

Sobald Sie Ihren Root-Pfad in einer Variablen gespeichert haben, werden Dinge einfach.

%Vor%

Schließlich haben viele Frameworks dies und viele andere gängige Aufgaben sehr einfach gemacht. Sie können praktisch jedes ColdFusion-Framework auswählen. Jemand hat das Rad schon erfunden;).

Viel Spaß!

    
Aaron Greenlee 04.03.2010 14:09
quelle
4

Für ColdFusion 9

Dateisystem

%Vor%

Datei: /app/Application.cfc

%Vor%

Datei: /app/controllers/UsersController.cfc

%Vor%

Für ColdFusion 8

Wie oben, nur mit CreateObject anstelle von new , <cfcomponent /> anstelle von component { } , etc.

    
yfeldblum 04.03.2010 14:04
quelle

Tags und Links