Spec-Zone.ru › ColdFusion

Application.cfc

Определяет переменные уровня приложения и обработчики событий (функции, вызываемые при различных событиях жизненного цикла приложения).

component { this.name="myApp"; }

  • CF7+
  • Lucee
  • BL 1.0.0+
  • См. также: cfapplication onapplicationstart onapplicationend onsessionstart onsessionend onrequest onrequeststart onrequestend onerror onmissingtemplate onserverstart

    Application.cfc

    this.name string

    Название приложения. До 64 символов

    this.loginStorage string
    По умолчанию: cookie

    Определяет место хранения данных для входа в систему.
    Значения:
    • cookie
    • session

    this.clientManagement boolean
    По умолчанию: false

    Включает клиентские переменные
    Значения:
    • true
    • false

    this.clientStorage string
    По умолчанию: registry

    Определяет место хранения клиентских переменных. * datasource_name: в источнике данных ODBC или встроенном источнике данных. Необходимо создать репозиторий хранилища в Administrator. * registry: в системном реестре. * cookie: на компьютере клиента в cookie-файле. Масштабируемый вариант. Если клиент отключит cookie-файлы в браузере, клиентские переменные работать не будут
    Значения:
    • cookie
    • registry
    • datasource_name

    this.setClientCookies boolean
    По умолчанию: true

    Определяет, отправлять ли cookie-файлы CFID и CFTOKEN в браузер клиента. * No: CFML не отправляет cookie-файлы CFID и CFTOKEN в браузер клиента автоматически; необходимо вручную добавлять CFID и CFTOKEN в URL каждой страницы, использующей переменные Session или Client
    Значения:
    • true
    • false

    this.sessionManagement boolean
    По умолчанию: false

    Включает переменные сеанса
    Значения:
    • true
    • false

    this.sessionTimeout numeric

    Срок действия переменных сеанса. Функция CreateTimeSpan и значения в днях, часах, минутах и секундах, разделенные запятыми

    this.applicationTimeout numeric

    Срок действия переменных приложения. Функция CreateTimeSpan и значения в днях, часах, минутах и секундах, разделенные запятыми.

    this.setDomainCookies boolean
    По умолчанию: false

    Yes: задает cookie-файлы CFID и CFTOKEN для домена (а не хоста). Требуется для приложений, работающих в кластерах.
    Значения:
    • true
    • false

    this.scriptProtect string

    Указывает, следует ли пытаться защитить переменные от межсайтовых скриптовых атак. * none: не защищать переменные * all: защищать переменные Form, URL, CGI и Cookie - список областей ColdFusion, разделенных запятыми: защищать переменные в указанных областях
    Значения:
    • none
    • all
    • form
    • url
    • cookie
    • cgi
    • form,url
    • form,url,cookie
    • form,url,cookie,cgi

    this.secureJSONPrefix string

    CF 8+ Префикс безопасности, который добавляется перед значением, возвращаемым функцией ColdFusion в формате JSON в ответ на удаленный вызов, если параметр secureJSON имеет значение true.

    this.secureJSON boolean

    CF 8+ Логическое значение, указывающее, следует ли добавлять префикс безопасности перед любым значением, возвращаемым функцией ColdFusion в формате JSON в ответ на удаленный вызов.
    Значения:
    • true
    • false

    this.customTagPaths string

    CF 8+ Список абсолютных путей к каталогам, содержащим пользовательские теги, разделенных запятыми.

    this.mappings struct

    CF 8+ Структура сопоставлений приложения, где ключом является сопоставление, а значением — путь к каталогу.

    this.welcomeFileList string

    CF 8+ Список имен файлов, для которых вызов onMissingTemplate пропускается; обычно это требуется только при использовании встроенного веб-сервера, например Tomcat или JRun.

    this.serverSideFormValidation boolean

    CF 9+ Включает или отключает проверку форм на стороне сервера ColdFusion в CFFORM.
    Значения:
    • true
    • false

    this.googleMapKey string

    CF 9+ API Google Maps при использовании cfmap.

    this.datasource string

    CF 9+ Определяет источник данных по умолчанию для приложения. Начиная с CF 9.0.1+, также может принимать структуру с ключами name, username, password.

    this.s3 struct

    CF 9+ Структура с ключами accessKeyId, awsSecretKey и defaultLocation.

    this.ormEnabled boolean
    По умолчанию: false

    CF 9+ Установите значение true, если хотите использовать ORM.

    this.ormSettings struct

    CF 9+ Структура с различными параметрами конфигурации Hibernate / ORM. Подробные сведения см. здесь: https://helpx.adobe.com/coldfusion/developing-applications/coldfusion-orm/configure-orm/orm-settings.html

    this.smtpServerSettings struct

    CF 9+ Структура с возможными ключами: server, username и password.

    this.timeout numeric

    CF 9+ Тайм-аут запроса по умолчанию в секундах для запросов в приложении. Может быть переопределен тегом cfsetting.

    this.debuggingIPAddresses string

    CF 9+ Список IP-адресов, для которых отображаются отладочные данные, если отладка включена в Administrator.

    this.enableRobustException boolean

    CF 9+ Переопределяет значение флажка ColdFusion Administrator «Enable Robust Exception Information» для приложения.

    this.enableNullSupport boolean
    По умолчанию: false

    CF 2018+ Lucee 4.1+ Для поддержки устаревших приложений используйте ключевое слово null в качестве параметра уровня приложения. Это означает, что параметр на уровне сервера может быть отключен, а поддержка null включена только для выбранных приложений.
    Значения:
    • true
    • false

    this.sessioncookie.httpOnly boolean
    По умолчанию: true

    CF 10+ Указывает, следует ли устанавливать флаг HTTPOnly для cookie-файлов сеанса (CFID/CFTOKEN). Это предотвращает чтение значения cookie-файла из JavaScript.

    this.sessioncookie.secure boolean
    По умолчанию: false

    CF 10+ Указывает, следует ли устанавливать флаг secure для cookie-файлов сеанса (CFID/CFTOKEN). Если значение равно true, cookie-файлы передаются только по защищенному каналу (например, HTTPS).

    this.sessioncookie.domain string
    По умолчанию: false

    CF 10+ Указывает домен cookie-файлов сеанса (CFID/CFTOKEN).

    this.sessioncookie.timeout string
    По умолчанию: 30 years

    CF 10+ Указывает срок действия cookie-файлов сеанса (CFID/CFTOKEN) в днях. Установите значение -1 для cookie-файлов сеанса браузера.

    this.sessioncookie.disableUpdate boolean
    По умолчанию: false

    CF 10+ Запрещает обновление cookie-файлов сеанса (CFID/CFTOKEN) тегами cfcookie или cfheader.

    this.sessioncookie.samesite string

    CF2018u9+ 2016u15+ Эта функция безопасности помогает снизить риск CSRF-атак (подделки межсайтовых запросов). Она указывает браузеру, следует ли отправлять cookie-файл с межсайтовым запросом.* strict — запрещает отправку cookie-файла на целевой сайт во всех контекстах межсайтовой навигации. * lax — обеспечивает баланс между безопасностью и удобством использования, сохраняя сеанс пользователя после перехода по внешней ссылке. * none — не обеспечивает защиту. Примечание: значение атрибута SameSite по умолчанию различается в разных браузерах. Дополнительные сведения см. на странице https://owasp.org/www-community/SameSite.
    Значения:
    • Strict
    • Lax
    • None

    this.authcookie.samesite string

    CF2018u9+ 2016u15+ Эта функция безопасности помогает снизить риск CSRF-атак (подделки межсайтовых запросов). Она указывает браузеру, следует ли отправлять cookie-файл с межсайтовым запросом.* strict — запрещает отправку cookie-файла на целевой сайт во всех контекстах межсайтовой навигации. * lax — обеспечивает баланс между безопасностью и удобством использования, сохраняя сеанс пользователя после перехода по внешней ссылке. * none — не обеспечивает защиту. Примечание: значение атрибута SameSite по умолчанию различается в разных браузерах. Дополнительные сведения см. на странице https://owasp.org/www-community/SameSite.
    Значения:
    • Strict
    • Lax
    • None

    this.javaSettings.loadPaths array

    CF 10+ Массив путей, содержащих JAR-файлы или классы Java.

    this.javaSettings.loadColdFusionClassPath boolean
    По умолчанию: false

    CF 10+ Загружает классы с помощью загрузчика классов ColdFusion.

    this.javaSettings.reloadOnChange boolean
    По умолчанию: false

    CF 10+ Отслеживает файлы, указанные в loadPaths, и перезагружает классы при их изменении.

    this.wsChannels array
    По умолчанию: false

    CF 10+ Массив структур, используемых для определения каналов связи WebSocket.

    this.sameFormFieldsAsArray boolean
    По умолчанию: false

    Если передаются два поля формы с одинаковым именем, их значения будут помещены в массив, когда этот параметр имеет значение true.

    this.compileExtForInclude string
    По умолчанию: cfm,cfml

    CF 11+ При вызове cfinclude только файлы с расширениями из этого списка компилируются и выполняются как CFML; остальные включаются статически как строки для повышения производительности и безопасности. Можно использовать * как подстановочный знак для всех расширений.

    this.security.antiSamyPolicy string

    CF 11+ Путь к XML-файлу политики AntiSamy для использования с функциями isSafeHTML и getSafeHTML.

    this.strictNumberValidation boolean
    По умолчанию: true

    CF 11+ Ужесточает проверку в isValid, cfargument, cfparam и cfform для целых и числовых значений, если строка содержит обозначение валюты.

    this.inMemoryFileSystem.enabled boolean

    CF 11+ Включает или отключает файловую систему в памяти.

    this.inMemoryFileSystem.size numeric

    CF 11+ Ограничение объема памяти в МБ для файловой системы в памяти.

    this.datasources struct

    CF 11+ Эта структура структур используется для определения нескольких источников данных, относящихся к приложению. Значение представляет собой структуру, ключами которой являются имена создаваемых источников данных, а значениями — другие структуры с такими ключами, как database, driver, host, username, password, url. Lucee / Railo также поддерживают этот параметр, но используют ключи class, connectionString, username, password. В CF2021 добавлена поддержка MongoDB в качестве допустимого типа источника данных.

    this.serialization.preserveCaseForStructKey boolean
    По умолчанию: false

    CF 11+ Сохраняет регистр имен переменных при создании JSON с помощью функции serializeJSON.

    this.serialization.preserveCaseForQueryColumn boolean
    По умолчанию: false

    CF 11.0.5+ Сохраняет регистр имен столбцов запроса при создании JSON с помощью функции serializeJSON.

    this.serialization.serializeQueryAs string
    По умолчанию: row

    CF 11+ Задает метод сериализации запроса по умолчанию.
    Значения:
    • row
    • column
    • struct

    this.customSerializer numeric

    CF 11+ Имя CFC, указывающего на пользовательский сериализатор. См. https://helpx.adobe.com/coldfusion/developing-applications/changes-in-coldfusion/restful-web-services-in-coldfusion.html

    this.locale string
    По умолчанию: en_US

    Lucee 4+ Локаль по умолчанию для форматирования дат и чисел.

    this.timezone string

    Lucee 4+ CF 2021+ Часовой пояс по умолчанию для обработки дат.
    Значения:
    • America/Chicago
    • America/New_York
    • UTC

    this.sessionType string

    Lucee 4+ Используйте сеансы на основе CFML или JEE.
    Значения:
    • cfml
    • jee

    this.sessionStorage string
    По умолчанию: memory

    Lucee 4+ Имя поставщика хранилища для переменных сеанса.

    this.localMode string
    По умолчанию: classic

    Lucee 4+ Определяет, как используется локальная область функции, если применяется переменная без указания области. В режиме classic локальная область используется, только если ключ уже существует в ней; в режиме modern локальная область всегда предполагается для переменных без указанной области.
    Значения:
    • classic
    • modern

    this.scopeCascading string
    По умолчанию: standard

    Lucee 4+ В зависимости от этого параметра Lucee выполняет поиск переменной в определенных областях с помощью find, если переменная вызывается без указания области (например, #myVar# вместо #variables.myVar#). В режиме strict поиск выполняется только в области variables, в режиме small — только в областях variables, url и form. В режиме standard (стандартный для ColdFusion способ) поиск выполняется во всех областях: variables,cgi,url,form,cookie
    Значения:
    • standard
    • strict
    • small

    this.typeChecking boolean

    Lucee 4+ Если установлено значение false, Lucee игнорирует определения типов аргументов функций и возвращаемых значений.

    this.compression boolean
    По умолчанию: false

    Lucee 4+ Включает сжатие Gzip для HTTP-ответа, если установлено значение true.

    this.passArrayByReference boolean
    По умолчанию: false

    CF 2016+ true: массивы в этом приложении будут передаваться по ссылке, а не по значению.
    Значения:
    • true
    • false

    this.searchImplicitScopes boolean
    По умолчанию: true

    CF 2016+ Определяет способ поиска переменных без указанной области.false: выполняется поиск только в областях variables, local и arguments.true: поведение по умолчанию и поведение до CF2016. Поиск выполняется во всех областях в следующем порядке: local, arguments, thread local, query, thread, variables, cgi, cffile, url, form, cookie, client.
    Значения:
    • true
    • false

    this.blockedExtForFileUpload string

    CF 2018.0.3+ CF 2016.0.10+ CF 11.0.18+ Lucee 5.2.9.36+ Lucee 5.3.3.1+ 0 Список расширений файлов, запрещенных для загрузки с помощью cffile, fileUpload или fileUploadAll, разделенных запятыми. Можно указать * (пока не поддерживается в Lucee), чтобы запретить все расширения, или использовать пустую строку, чтобы разрешить все расширения (как в предыдущем поведении). Если параметр не указан, приоритет имеют значения, заданные в ColdFusion Administrator.

    this.security.samlsettings.idp array

    CF 2021+ Используется с SAML / SSO для создания и настройки поставщика удостоверений. Подробные сведения см. на странице https://helpx.adobe.com/coldfusion/using/saml-coldfusion.html. ПРИМЕЧАНИЕ: необходимо установить пакет SAML.

    this.security.samlsettings.sp array

    CF 2021+ Используется с SAML / SSO для создания и настройки поставщика услуг. Подробные сведения см. на странице https://helpx.adobe.com/coldfusion/using/saml-coldfusion.html. ПРИМЕЧАНИЕ: необходимо установить пакет SAML.

    Ссылки дополнительная информация об Application.cfc

    • Изучаем CF за неделю: Application.cfc — руководство, показывающее, как использовать Application.cfc
    • Функция onServerStart — объяснение того, как реализована функция onServerStart
    • Флаги JVM для cfinclude в CF2018u11+ — [CF2018+] -Dcoldfusion.application.recur_resolve.include=true // cfinclude внутри Application.cfc будет корректно разрешать пути относительно подключаемого файла
    • SAML в ColdFusion CF2021+ — [CF2021+] Подробная информация об использовании служб SAML в ColdFusion.

    Простой пример Application.cfc

    Пример очень простого скрипта

    component {
        this.name = "AppName";
        this.datasource = "AppDataSource";
        this.sessionManagement = true;
    
        function onApplicationStart() {
            application.config="xyz";
        }
    
     }

    Добавление относительных отображений в Application.cfc

    В этом примере используются getCurrentTemplatePath и getDirectoryFromPath, чтобы динамически получить каталог, в котором находится текущий файл Application.cfc, а затем определить несколько отображений относительно него. Не используйте expandPath в Application.cfc, поскольку путь будет рассчитываться относительно пути текущего шаблона, а не пути к Application.cfc.

    component {
        this.name = "AppName";
        this.appBasePath = getDirectoryFromPath(getCurrentTemplatePath());
        this.mappings["/components"] = this.appBasePath & "components";
        this.mappings["/frameworks"] = this.appBasePath & "frameworks";
    
    }

    Определение каналов WebSocket

    Для создания канала WebSocket достаточно указать атрибут name. Также для канала можно задать пользовательский CFC-обработчик канала. Если он не указан, вызывается ChannelListener.cfc из каталога wwwroot/CFIDE/websocket (Использование обработчиков каналов).Примечание: Хотя можно использовать любое количество подканалов, указывать их не нужно, так как они создаются динамически (с помощью точечной нотации). Чтобы подписаться на каналы, создайте объект WebSocket с помощью тега cfwebsocket в шаблоне CFM.

    component {
        this.name = "AppName";
        this.wschannels = [{name=channelName, cfclistener=channel_listener_CFC}];
    }

    Относительные отображения — расширенный пример

    В этом примере показано, как сопоставлять каталоги, расположенные уровнем выше Application.cfc (корня веб-сайта), а также как обрабатывать приложение, которое потребуется развернуть в нескольких операционных системах (Mac, Unix, Windows) из-за различий в средах разработки. С помощью Find определяется, какие разделители путей использовать — прямые или обратные косые черты, а с помощью ListDeleteAt из пути удаляется текущий каталог. Затем на основе этой информации можно сформировать пути для отображений и пользовательских тегов.

    component {
        this.name = "AppName";
        this.currentPath = getDirectoryFromPath( getCurrentTemplatePath() );
        this.delim = find("/", this.currentPath) ? "/" : "\";
        this.basePath = listDeleteAt(this.currentPath, listLen(this.currentPath, this.delim), this.delim);
        this.mappings["/components"] = this.basePath & this.delim & "components";
        this.mappings["/frameworks"] = this.basePath & this.delim & "frameworks";
        this.customtagpaths = this.basePath & this.delim & "customtags";
    
    }

    © 2012–present Foundeo, Inc. and the CFDocs contributors.
    Licensed under the MIT License.
    ColdFusion is a trademark of Adobe Systems Incorporated.
    https://cfdocs.org/application%2Dcfc

    Spec-Zone.ru

    Настройки Оффлайн Что нового Помощь О нас
    Spec-Zone .ru
    спецификации, руководства, описания, API