2016-06-15 21 views
0

Luceeでグローバル関数を作成しようとしています。私はhereの指示に従っていて、それを「種類」にしています。これは、いくつかのケースで正常に動作するようですLucee/Coldfusionのグローバル関数

public void function onRequest() { 
    URL.IsInternalUser = function() { return (SESSION.user.ID ?: 0); }; 
} 

が、我々は、関数の再を持っていないのApplication.cfcが含まれているサブディレクトリにこの機能にアクセスする必要がある場合:Application.cfcの内部に、私は次のコードを配置しました定義されていると、関数が存在しないというエラーが出力されます。

私が達成しようとしている究極の目標は、いくつかのユーザー定義関数を含むファイルをcfcにしてから、何度も何度も何度も何度も再定義することなくアプリケーション全体にアクセスできるようにすることです。

私たちが望むものを達成するためのより良い方法はありますか?私はこれに尋ねます。なぜなら、私はコメント欄で先に参照したページに引用があるからです。

私は同意します。私はそれを将来どこかに見て驚かないだろう。

私が好きなのはRailoのメソッドは完全にサンドボックス化されています。 ホストAのタグ&関数ライブラリは、グローバルサーバーフォルダに置かれていない限り、ホストBの ライブラリと交差することはありません。仮想ファイルシステムの場合と同じように、 と同じように、それ以外のものはすべて (データソースなど)です。

具体的にはRailoにUDFを作成する方法が記載されていますが、どこでもこのドキュメントを見つけることはできません。私たちはRailoのフォークであるLuceeを使用しているので、RailoがUDFを作成するために持っているものが必要です。これを読んでいる誰かを願って私を助け、正しい方向に向けることができます。

答えて

3

Railo/Luceeカスタム機能をサポートしています。あなたはサイトの/WEB-INF/{railo|lucee}/library/function/でそれらを宣言することができます。ファンクションを.cfmファイルに保存し、ファンクションと同じ名前を付けます。新しい機能を作成した後、サーバーを再起動する必要があります。 Here is Railo's blog post about it.

Adob​​e ColdFusionはこのAFAIKをサポートしていません。したがって、ここにSERVERスコープに関数を格納する必要があります。

+0

サーバが再起動されるたびにWEB-INFディレクトリが上書きされませんか? – Yamaha32088

+0

いいえ、WEB-INFは、Railo/Luceeサービスの開始時に1回だけ作成されます。ディレクトリは保存され、設定を保存します。 – Alex

+0

素晴らしい、私はこれを試してみて感謝します! – Yamaha32088

関連する問題