Application.cfc の This スコープには、cfapplication タグで設定した属性に対応する複数のビルトイン変数が含まれています。CFC メソッドを定義する前に、CFC 初期化コードでこれらの変数の値を設定します。任意のメソッドの変数にアクセスできます。

注意:Windows では大文字と小文字は区別されませんが、Application.cfc のファイル名は常に大文字の A で始める必要があります。application.cfc および Application.cfc はいずれも予約語です。

注意:アプリケーションに Application.cfc があり、Application.cfm または onRequestend.cfm ページがある場合、ColdFusion は CFM ページを無視します。

次の表では、アプリケーションの動作を制御するために設定できる変数について簡単に説明します。詳しくは、cfapplication タグを参照してください。

変数 デフォルト 説明
name 名前なし アプリケーション名です。この変数を設定しない場合、または空の文字列に設定した場合、CFC は、ColdFusion J2EE サーブレットコンテキストである、名前のない Application スコープに適用されます。名前のないスコープについて詳しくは、『ColdFusion アプリケーションの開発』の「JSP ページおよびサーブレットとの相互運用」の「ColdFusion アプリケーションへの JSP およびサーブレットの統合」を参照してください。
applicationTimeout Administrator の値 アプリケーション(すべての Application スコープ変数も含む)の有効期間を示す実数値(日数)。この変数の値を生成するには、CFML CreateTimeSpan 関数を使用します。
authcookie.disableupdate False  cfauthorization cookie のアップデートを、cfcookie または cfheader タグを使用して無効にします
authcookie.timeout -1 認証 Cookie の有効期間(日数)です。
cache.useInternalQueryCache false true の場合、ColdFusion はキャッシュされたクエリを、最新ではない、非 Ehcache バージョンのキャッシュに保管します。
cache.querysize Administrator の値 キャッシュできる最大 クエリ数です。この値は、自動キャッシュ(cfqueryタグまたは queryExecute 関数の cachedWithin および cachedAfter による)に適用されます。cachePut を使用すると、必要な数だけクエリを保管できます。ただし、RAM による制限があります。メモリの空き容量に注意してください。
chartStyleDirectory   アプリケーション固有のチャートスタイルディレクトリです。
clientManagement no
  • yes:クライアント変数を有効にします。

  • no

clientStorage Administrator の値 クライアント変数の保存先。cookie、レジストリ、またはデータソースの名前を使用できます。
customtagpaths Administrator の値 ColdFusion カスタムタグのパスを含みます。絶対パスを使用したカンマ区切りリストですこの変数を使用するには、Administrator のサーバー設定ページで「アプリケーションごとの設定の有効化」オプションを選択しますここで定義する設定は、現在のアプリケーションの Administrator のサーバーの設定マッピングページで定義されているカスタムタグのパスよりも優先されます。
googleMapKey   Web ページに Google マップを埋め込むために必要な Google Map API キーです。
datasource   クエリによってデータを取得するデータソースの名前です。
datasources   データソースを定義する構造体。この変数を使用して、アプリケーション固有のデータソース定義できます。ColdFusion Administrator のデータソースの登録/更新はおこないません。
loginStorage cookie ログイン情報を Cookie スコープと Session スコープのいずれに格納するかを示します。
mappings Administrator の値 ColdFusion マッピングを含む構造体です。構造体の各エレメントは、1 つのキーと 1 つの値で構成されます。論理パスはキー、絶対パスは値です。この変数を使用するには、Administrator の「サーバーの設定/設定」 ページで「アプリケーションごとの設定の有効化」オプションを選択しますここで定義するマッピングは、現在のアプリケーションの Administrator のサーバーの設定/マッピングページで定義されているマッピングよりも優先されます。
passArrayByReference False このアプリケーションの値の代わりに、参照用として配列が渡されます。
restSettings.cfclocation   特定の場所にのみ CFS を公開するには、REST CFS が格納されているディレクトリのカンマ区切り リストを提供します。ディレクトリパスは絶対でも相対でもかまいません設定しないと、アプリケーションルートからのすべての CFC が公開されます。
restSettings.skipCFCWithError   エラーが発生した場合、例外の原因になった CFC を無視して公開を続けますtrue の場合、エラーのあるCFC は無視され、残りの CFC が公開されます。デフォルトでは false ですfalse に設定すると、エラーの場合は、アプリケーション自体が公開されません。ただし、その他の登録済みアプリケーション は公開されますアプリケーションの起動中にエラーが発生した場合は、エラーがコンソールに出力されます。各アプリケーションには、問題を記録するため、個別にログファイルがあります。
restSettings.restEnabled False true の場合、ColdFusion は一連の REST 対応の CF コンポーネントを含むディレクトリを検索します。 
restSettings.autoRegister False アプリケーションの自動登録を有効化します。
restSettings.useHost False ホスト名を指定します。true の場合、ホスト名が URL から解析されます。
restSettings.host  

ホスト名に明示的に名前を指定して、ホスト名を作成します。ホスト名が指定されていない場合は、usehost 名がデフォルトになります。

restSettingsserviceMapping   指定しない場合、この名前で定義されたアプリケーションがデフォルトになります。
restSettings.isDefault False true の場合、アプリケーションはデフォルトのアプリとして作成されます。
sessioncookie.httponly True セッション Cookie を httponly に設定する必要があるかどうかを指定します。つまり、Http リクエストにのみアクセスできます。
sessioncookie.secure False セッション Cookie をセキュアに設定する必要があるかどうかを指定します。つまり、すべてのタイプの接続で返されるか、またはセキュリティ保護されている(https)接続でのみ返されるかを指定します。
sessioncookie.domain   Cookie を設定するドメインです。これは、アプリケーションにアクセスするドメインと完全に一致する必要があります。
sessioncookie.timeout 30 年
セッション Cookie の有効期間(日数)です。
sessioncookie.disableupdate False cfcookie または cfheader タグを使用した cfid および cftoken Cookie の更新を無効にします。
serverSideFormValidation yes フォームの送信時に cfform フィールドで検証を有効にするかどうかを指定します。
sessionManagement no アプリケーションで Session スコープ変数をサポートするかどうかを示します。
sessionTimeout Administrator の値 ユーザーセッション(すべての Session 変数も含む)の有効期間を示す実数値(日数)。この変数の値を生成するには、CFML CreateTimeSpan 関数を使用します。
setClientCookies True クライアントブラウザーに CFID Cookie および CFTOKEN Cookie を送信するかどうかを示します。
setDomainCookies False CFID Cookie および CFTOKEN Cookie を(1 つのホストではなく)ドメイン全体に設定するかどうかを示します。
scriptProtect Administrator の値 変数をクロスサイトスクリプティング攻撃から保護するかどうかを示します。
security.antisamypolicy    antisamy ポリシーファイルが getSafeHTML または isSafeHTML 関数に渡されない場合に使用される antisamy ファイルの場所を指定します。ポリシーファイルには、アプリケーションの CFC パスに対する相対パスまたは絶対パスを指定できます。
compileextforinclude   cfinclude タグで許可されるファイル拡張子のリストをカンマ区切りのリストとして指定します。リスト内にワイルドカード * を指定すると、cfinclude タグを使用してインクルードされたすべてのファイルがコンパイル対象になります。cfinclude タグを使用してインクルードされたファイルがこのリストにない場合、その内容はスタティックにインクルードされます。デフォルトでは、拡張子 cfm および cfml を持つファイルは、常に、この設定に関係なくコンパイルされます。
strictnumbervalidation  

True または False です。デフォルトは true です。整数および数値型に対する IsValid 関数では、以前は先頭に通貨記号を、数値内にカンマを使用することができました。

ColdFusion 11 では、isValid 関数の動作は異なります。strictnumbervalidation を false に設定すると、isValid 関数は以前のバージョン(ColdFusion 10 以前)と同じ動作をします。この設定は、以下のタグの動作も変更します。

secureJSON Administrator の値 リモートの呼び出しへの応答として ColdFusion 関数が JSON 形式で返す値の前に、セキュリティの接頭辞を追加するかどうかを指定するブール値です。デフォルト値は、Administrator のサーバーの設定/設定ページの「シリアル化 JSON への接頭辞付加」設定の値(デフォルトは false)です。cffunction タグ内でこの値を上書きすることができます詳しくは、『ColdFusion アプリケーションの開発』の「Ajax プログラミングのルールとテクニック」の「セキュリティの強化」を参照してください。
secureJSONPrefix Administrator の値 secureJSON の設定が true の場合に、リモート呼び出しへの応答として ColdFusion 関数が JSON 形式で返す値の前に挿入するセキュリティの接頭辞です。デフォルト値は、Administrator のサーバーの設定/設定ページの「シリアル化 JSON への接頭辞付加」設定の値(デフォルトは JavaScript のコメント文字である //)です詳しくは、『ColdFusion アプリケーションの開発』の「Ajax プログラミングのルールとテクニック」の「セキュリティの強化」を参照してください。
serialization.preservecaseforstructkey False 構造体を JSON にシリアル化する場合に構造体キーの大文字と小文字 を維持するかどうかを指定するブール値です。
serialization.serializequeryas row クエリを JSON にシリアル化する方法を指定します。有効な値は次のとおりです。row、column、および struct。
serialization.preserveCaseForQueryColumn false true の場合、列の大文字と小文字が維持されます。
welcomeFileList  

ファイル名のカンマ区切りリストです。ファイルが見つからない場合に、onMissingTemplate メソッドを呼び出さないようにします。この変数を使用して、次のすべての条件を満たす場合は onMissingTemplate ハンドラーを呼び出さないようにします。

  • Web サーバーにウェルカムファイルリスト(例:web.xml ファイル)があり、ディレクトリで終わるパスが URL に指定された場合に実行される index.cfm などの CFML ページが記載されている。
  • Web サーバーは、ページが存在するかどうかを最初に判断せずに、ウェルカムファイルリストの CFML ページのリクエストを ColdFusion に送信する。
  • ウェルカムファイルリストのファイルが存在しないディレクトリについて、ディレクトリ参照をサポートする。
    この変数を指定するのは、Application.cfc ファイルで onMissingTemplate ハンドラーが指定されている場合のみです。ハンドラーには web.xml ウェルカムファイルリストと同様のファイルリストが必要です注意Apache などの多くの純粋な Web サーバーでは、welcomeFileList 変数を使用する必要はありません。統合型の Web サーバーやアプリケーションサーバーの多くでは、welcomeFileList 変数を使用する必要があります。
smtpServersettings   次の値を含む構造体:server、username、password値が指定されていない場合、値を Administrator へ移動させます。
sameformfieldsasarray false フォームフィールドが同じ名前を持っている場合、ColdFusion で、フォームフィールドをリストではなく配列として変換します。これをおこなうには、Application.cfc で、this.sameformfieldsasarray = "true" と指定します。注意:これを true に設定した場合にのみ、空の文字列値が維持されます。
timeout   この数値は、個別の要求を実行できる時間を表しています。設定したタイムアウト値は、Application.cfc で this.timeout="" を使用して設定したタイムアウト値より優先されます。
debuggingIPAddresses   デバッグを必要とする IP アドレスのリストです。
enablerobustexception   デフォルトの Administrator 設定を上書きします。コンパイル時の例外は報告されません。
javaSettings   コードで利用可能にする Java クラスパスを指定できる構造体です。有効なキーは、loadPaths(Java ライブラリを検索する場合にインクルードするパスの配列)、loadColdFusionClassPath(デフォルトのクラスパスを使用するかどうかを示すブール値。デフォルトは false)および reloadOnChange(クラスパスが変更されたときにクラスパスをリロードするかどうかを示すブール値。デフォルトは false)です。
javasettings.watchInterval   クラスファイルまたは JAR ファイルの変更を調べる間隔(秒単位)を指定します。この属性は、reloadOnChange 属性を true に設定している場合にのみ適用されます。デフォルト値は 60 秒です。
javasettings.watchExtensions   変更を監視するファイルの拡張子を指定します。デフォルトでは、.class ファイルと .jar ファイルだけが監視されます。
searchImplicitScopes true 暗黙のスコープで、スコープの設定されていない変数の検索を有効または無効にできます。
serialization.structmetadata   構造体の値のデータ型情報を設定します。例えば、this.serialization.structmetadata = {zipcode="String"}; の場合、このキーを含む構造体の zipcode にはデータ型を定義する必要はありません。構造体自体に zipcode のデータ型を定義した場合は、構造体のレベルで定義されたデータ型が、Application.cfc で定義されたデータ型よりも優先されます。
enableNullSupport false NULL 変数のサポートを有効または無効にできます。使用できる値は true または false です。
cache.engine ehcache

使用するキャッシュエンジンを指定します。次のエンジンを使用できます。

  • Ehcache
  • JCS
  • Memcached
  • Redis

同じ名前を持つフォームフィールド

フォームフィールドに同じ名前が設定されているとします。この場合、ColdFusion では、フォームフィールドをリストではなく、配列として変換します。これをおこなうには、Application.cfc で this.sameformfieldsasarray = "true" を指定します。デフォルト値は false です。

ColdFusion(2018 リリース)でおこなわれた機能強化

  • enableNullSupport:NULL 変数のサポートを有効化する場合に指定します。
  • cache.engine:使用するキャッシュエンジンの型を指定します。

ColdFusion(2016 リリース)でおこなわれた機能強化

  • serialization.structmetadata:構造体キーのデータ型を定義します。
  • 新しいアプリケーション設定 searchImplicitScopes が追加されました。これを false に設定すると、スコープが指定されていない変数は、暗黙的なスコープで検索されません。
  • passArrayByReference 設定。true に設定すると、値の代わりに、参照用として配列を渡すことができます。

ColdFusion 11 でおこなわれた機能強化

ColdFusion 11 では、Application.cfc でアプリケーション固有のデータソースを登録できます。これらのデータソースはそのアプリケーション固有となり、Administrator から利用できません。サーバー全体のデータソースと名前の衝突がある場合、アプリケーション固有のデータソースが優先されます。 

this.datasources.dsn2={
    "driver"="MSSQLServer",
    "username"="sa",
    "password"="password",
    "url"="jdbc:macromedia:sqlserver:
//localhost\MSSQL2008;databaseName=regression;;sendStringParametersAsUnicode=
false;querytimeout=0;MaxPooledStatements=1000"
};

カスタムドライバーを使用した場合:

this.datasources.dsn3 = { 
    "driver" = "other", 
"url"="jdbc:sqlserver://localhost\MSSQL2008;databaseName=pubs;sendStringParametersAsUnicode=false;querytimeout=0;MaxPooledStatements=1000", 
    "username" = "sa", 
    "password" = "S33N0Ev!l",             

"class"="com.microsoft.sqlserver.jdbc.SQLServerDriver"
};

次のドライバーがサポートされます。

  • MSSQLServer
  • Oracle
  • Sybase
  • DB2
  • Informix
  • MySQL_DD
  • PostgreSQL
  • MSAccess
  • Apache Derby Embedded
  • Apache Derby Client

  • MySQL5

  • ODBCSocket

  • その他(カスタムドライバー)

次の例のように this.datasources を使用します。

// Application.cfc
component {
        this.name = "DSNTest";
        this.datasources = { 
                mssql_app = { 
                    database = "<DBName>", 
                    host = "<HostNameOrIP>", 
                    port = "<portNumber>", 
                    driver = "MSSQLServer", 
                    username = "username", 
                    password = "password" } 
                };
        this.datasource = "mssql_app";
}
<!--- query.cfm --->
<cfscript>
    employees = queryExecute("SELECT * FROM TableName ",[], {datasource="mssql_app"});
    writeOutput(employees);
</cfscript>

ColdFusion 9.0.1 でおこなわれた機能強化

Application.cfc を使用すると、データソースの認証情報をデータソースに指定できます。今回のリリースでは、データソース設定は文字列または構造体のいずれかです。文字列の場合、データソース名と認証情報は、ColdFusion Administrator で定義されているデータソースから取得されます。
データソースに構造体の値を使用すると、認証情報を指定できます。キー名は、次のとおりです。

  • name:データソース名
  • username:データソースのユーザー名
  • password:データソースのパスワード

    <this.datasource={name='cfartgallery', username="user", password="passwd"}>

    または

    <this.datasource="cfartgallery">

    注意:ORM のデフォルトのデータソースにも同じ規則が使用されます。ORM のデフォルトのデータソースでは、ormsettings でデータソースの認証情報を指定できます。

    Amazon S3 統合用の次のアプリケーション固有の属性が追加されました。

  • accessKeyId:Amazon S3 アカウントの ID です。
  • awsSecretKey:S3 アカウントの秘密鍵です。
  • defaultLocation:Amazon S3 のバケット作成のデフォルトの場所です。S3 ストレージのバケットは、US、EU または US-WEST のいずれかの地域で作成できます。Application.cfc に指定された defaultLocation では、作成するバケットのデフォルトの場所が定義されます。デフォルト値は US です。

    this.s3.accessKeyId = "key_ID";
    this.s3.awsSecretKey = "secret_key";
    this.s3.defaultLocation="location";
    </cfscript>

アプリケーション固有のメモリ内ファイルシステム

アプリケーション別のメモリ内ファイルシステムを使用できます。これにより、仮想ファイルシステムでアプリケーションの分離を実現できます。つまり、あるアプリケーションによってメモリ内ファイルシステムに作成されたファイルには、別のアプリケーションからアクセスできません。
この設定は、Application.cfc で次のように指定できます。

変数

説明

this.inmemoryfilesystem.enabled

アプリケーション用のメモリ内ファイルシステムを有効にするには、値を true に設定します。これはデフォルトの設定です。

this.inmemoryfilesystem.size

メモリ内ファイルシステムのメモリ制限を MB 単位で指定します。ColdFusion Administrator でも値を指定できます(サーバーの設定/設定/メモリ内仮想ファイルシステムのアプリケーションごとのメモリ制限)。小さいほうの値が利用されます。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー