すべてのCFCを/componentsフォルダーに入れて、アプリケーションのさまざまな場所から呼び出すことができるようにしたいと思います。/forums/index.cfmから。
マッピングを設定するにはどうすればよいですか?
すべてのCFCを/componentsフォルダーに入れて、アプリケーションのさまざまな場所から呼び出すことができるようにしたいと思います。/forums/index.cfmから。
マッピングを設定するにはどうすればよいですか?
マッピングを設定するには複数の方法があり、実際には2つの異なるタイプのマッピングがあります。
従来のマッピングは管理者を介して作成され、CFMLコード内のどこでも使用できます。Railoは、このタイプのコンテキストごとおよびサーバーごとのマッピングをサポートしています。
Application.cfcまたはcfapplicationタグを介して作成されたアプリケーションごとのマッピングもあります。これはほとんどの場所で使用できますが、ランタイム構造であるため、コンパイル時に使用することはできません。
また、グローバルコンポーネントがある場合は、マッピングの使用を避け、コンポーネントがどこにあるかをRailoに通知して、コンポーネントに直接アクセスできるようにすることもできます。
Railo Admin(ie http://domain/railo-context/admin/web.cfm
)に移動すると、メニューの半分ほど下に「Archives&Resources」があり、その中に「Mappings」があります。
[仮想]列に入力/components
し、[リソース]列にそのディレクトリへの絶対パス(例:/ home / user / public_html / components)を入力して、保存ボタンを押します。
アクション「updateMapping」でcfadminタグを使用して、プログラムでコンテキストごとのマッピングを作成することもできます。
(ここでのすべては、Web管理者の代わりにサーバー管理者を使用することを除いて、サーバーごとのマッピングにも適用されます。サーバーごとのマッピングは表示されますが、Web管理者インターフェースでは読み取り専用です。)
特定のアプリケーション専用のマッピングを作成するには、Application.cfcでこれを行うことができます
this.mappings
仮想値とリソース値の構造体を含むという変数を作成するだけです。次に例を示します。
This.Mappings = { '/components' : '/home/user/public_html/components' }
このマッピングはそのアプリケーションにのみ適用されるため、異なるアプリケーションの異なる場所に同じマッピングポイントを設定できます。
cfapplication
Railoでは、次のようにタグを使用して、Application.cfm内にアプリケーションごとのマッピングを作成することもできます。
<cfset MappingStruct = { '/components' : '/home/user/public_html/components' } />
<cfapplication mappings=#MappingStruct# />
注:アプリケーションレベルのマッピングには、実行時に存在するがコンパイル時には存在しないため、いくつかの制限があります(たとえば、テンプレートのコンパイル時にtaglib属性が評価されるカスタムタグライブラリには使用できません)。 )。
これらのいずれかにより、次のことが可能になります。
MyObj = createObject('component','components.NameOfFile').init()
または:
MyObj = new components.NameOfFile()
/component/nameoffile
(他の方法でマッピングを使用する場合のように使用しないことに注意してください。)
マッピングなしでコンポーネントにグローバルにアクセスする場合は、[コンポーネント]セクション(メニューの[マッピング]のすぐ下)に移動し、[追加リソース]セクションに絶対コンポーネントパスを入力します。(Trustedのチェックを外したままにします。)
components.
次に、マッピングを必要とせずにオブジェクトを簡単に作成できます。
MyObj = new NameOfFile()
でマッピングを定義する必要がありますApplication.cfc
。これらの関連する質問をチェックしてください