Jump to content

Язык разметки ColdFusion

Язык разметки холодного синтеза (CFML)
Парадигма императивный , объектно-ориентированный
Разработано Джереми Аллер , Джозеф Дж. Аллер
Разработчик Adobe Systems ( ColdFusion ), Lucee Association ( Lucee ), New Atlanta и aw2.0 ( openBD ), The Railo Company ( Railo )
Впервые появился 1995 год ; 29 лет назад ( 1995 )
Стабильная версия
Выпуск 2023 г. / 2023 ; 1 год назад ( 2023 )
Язык реализации Ява
ТЫ Кросс-платформенный
Лицензия Зависит от реализации. проприетарные движки , движки под лицензией LGPL и GPL . Доступны
Расширения имен файлов .cfm, .cfc
Веб-сайт www .adobe /продукты /coldfusion
Основные реализации
Adobe ColdFusion , Lucee , Railo , BlueDragon , Open BlueDragon
Под влиянием
Люси

Язык разметки ColdFusion , более известный как CFML , — это язык сценариев для веб-разработки, который работает на виртуальной машине Java (JVM), платформе .NET и Google App Engine . несколько коммерческих и бесплатных программных реализаций механизмов CFML с открытым исходным кодом Доступно , включая Adobe ColdFusion , Lucee , New Atlanta BlueDragon ( версии для Java и .NET), Railo , Open BlueDragon и другие серверные механизмы CFML .

Synopsis[editКраткое содержание

В своей простейшей форме, как и многие другие языки веб-скриптов, CFML дополняет стандартные HTML- файлы командами базы данных , условными операторами форматирования высокого уровня , функциями и другими элементами для создания веб-приложений . [1] [2] CFML также включает множество других конструкций, включая компоненты ColdFusion (CFC), версию объектов CFML , которые позволяют отделять бизнес-логику от представления.

CFML можно написать с использованием тегов или CFScript , который напоминает JavaScript ( ECMAScript ).

Страницы в приложении CFML включают в себя теги и функции CFML на стороне сервера в дополнение к тегам HTML. Современные приложения CFML также имеют тенденцию иметь CFC, к которым обращаются страницы CFML для выполнения бизнес-логики. Когда веб-браузер запрашивает страницу в приложении ColdFusion, она автоматически предварительно обрабатывается сервером приложений ColdFusion . [3]

CFML также можно использовать для создания других языков, помимо HTML, таких как XML , JavaScript , CSS и т. д.

Несмотря на название, CFML не является языком разметки. Это также не SGML , поскольку некоторые основные функции CFML не позволяют ему соответствовать.

Механизм CFML настроен таким образом, что определенные расширения файлов на сервере (.cfm, .cfc) передаются механизму CFML для обработки. В случае механизмов на основе Java это достигается с помощью сервлетов Java . Механизм CFML обрабатывает только теги и функции CFML; он возвращает текст вне тегов и функций CFML на веб-сервер без изменений. [4]

История [ править ]

Программное обеспечение, первоначально названное Cold Fusion, было создано в 1995 году корпорацией Allaire , первоначально расположенной в Миннесоте . Позже она переехала в Кембридж, штат Массачусетс, а затем, наконец, в Ньютон, штат Массачусетс, прежде чем была приобретена Macromedia в 2001 году. Таким образом, Allaire Cold Fusion стала Macromedia Cold Fusion. При выпуске версии 4 пробел в названии был удален и стал ColdFusion. Adobe приобрела Macromedia в 2005 году. По состоянию на 2023 год. , она все еще активно разрабатывает ColdFusion.

В 1998 году Алан Уильямсон и его шотландская компания «n-ary» начали создавать шаблонизатор для Java, упрощающий общие задачи программирования. [5] Уильямсон использовал фигурные скобки вместо тегов, но когда он увидел пример CFML и то, как он решает подобные проблемы (хотя и не на Java) с использованием синтаксиса тегов, он начал разработку того, что в конечном итоге стало BlueDragon, который был первым Java-реализация языка CFML. (ColdFusion был написан на C и C++ до тех пор, пока в 2002 году не была выпущена версия 6.0, первая версия на основе Java.) Примерно в 2001 году New Atlanta лицензировала BlueDragon и сделала его доступным в качестве коммерческого продукта, в конечном итоге создав .NET- реализацию CFML. Open BlueDragon — это ответвление коммерческого продукта BlueDragon, впервые выпущенное в 2008 году.

Двигатель Railo CFML зародился как студенческий проект в 2002 году и впервые был запущен как коммерческий проект в 2005 году. [6] Railo объявила, что делает движок открытым исходным кодом в 2008 году, а первая версия с открытым исходным кодом была выпущена в 2009 году.

18 июня 2009 г. Adobe объявила на конференции CFUnited, что сформировала Консультативный комитет CFML. [7] он будет отвечать за руководство и анализ изменений в языке CFML. Эта инициатива была расформирована в 2010 году. Группа Google CFML Conventional Wisdom была создана как форум для открытых, публичных дискуссий о функциях языка и движка; его использование сократилось с 2011 года. [ нужна ссылка ]

В 2012 году был запущен Фонд OpenCFML. Его функция заключается в продвижении с открытым исходным кодом приложений и платформ CFML .

Бывший ведущий разработчик Railo Майкл Оффнер запустил Lucee , ответвление Railo , в Лондоне 29 января 2015 года. При поддержке сторонников сообщества и членов Lucee Association цель проекта — обеспечить функциональность CFML с использованием меньшего количества ресурсов, предоставляя повысить производительность и превратить CFML в современную и динамичную платформу веб-программирования.

Синтаксис [ править ]

Теги CFML имеют формат, аналогичный тегам HTML. Они заключаются в угловые скобки ноль или более) (< и >) и обычно не имеют именованных атрибутов ( , хотя некоторые теги (например, cfset, cfif) содержат выражения, а не атрибуты. Многие теги CFML имеют тело; то есть у них есть начальный и конечный теги, между которыми находится текст, подлежащий обработке. Например:

<cfoutput>
   #value# Bob!
</cfoutput>

Другие теги, такие как cfset и cfftp, никогда не имеют тела; вся необходимая информация размещается между начальным (<) символом и конечным (>) символом в виде атрибутов тега (пар имя/значение), как в примере ниже. Если теги не имеют тела, синтаксически приемлемо оставлять их незакрытыми, как в первом примере, хотя многие разработчики CFML предпочитают самозакрывать теги, как во втором примере, чтобы (возможно) сделать код более разборчивым. .

<cfset value = "Hello">
<cfset value = "Hello" />

Даже если тег может иметь тело, в некоторых случаях его наличие может не потребоваться, поскольку атрибуты определяют всю необходимую информацию. В этих случаях, как и во втором примере выше, конечный тег (и, следовательно, тело тега) может быть опущен, а тег может быть самозакрывающимся, как в следующем примере: [8]

<cfexecute name="C:\\winNT\\System32\\netstat.exe" arguments="-e" outputfile="C:\\Temp\\out.txt" timeout="1" />

Различные теги предоставляют возможность проверки типов входных параметров (например, cffunction, cfparam, cfqueryparam), если программист специально объявляет их тип. Эта функциональность используется с cfqueryparam для защиты веб-приложений и баз данных от хакеров и вредоносных веб-запросов, таких как SQL-инъекция .

Встроенные теги [ править ]

Около 100 тегов и множество других функций составляют основу языка CFML. Ниже перечислены теги CFML по их функциям и назначению. [9]

Пользовательские теги [ изменить ]

CFML допускает расширения языка в виде пользовательских тегов, которые представляют собой теги, созданные разработчиком и не являющиеся частью самого языка CFML. можно рассматривать Пользовательские теги — это обычные файлы CFML, которые предназначены для вызова в качестве тегов, хотя шаблон как как пользовательский тег, так и как обычный шаблон. Пользовательские теги пишутся на языке CFML и обычно вызываются путем добавления к имени файла пользовательского тега префикса cf_ , хотя существуют и другие способы вызова пользовательских тегов.

Если шаблон вызывается как настраиваемый тег, атрибуты, используемые для вызова этого тега, доступны внутри тега в области атрибутов , а переменные вызывающей страницы доступны через область вызывающего объекта .

Например, если написать собственный тег для выполнения сложения , взять два атрибута и сложить их вместе, тег будет представлять собой файл add.cfm, который может выглядеть следующим образом:

<cfset caller.addition = attributes.first + attributes.second />
<cfexit method="exitTag" />

Предполагая, что тег находится в том же каталоге, что и файл (или в заранее определенном каталоге customtags), его можно вызвать следующим образом:

<cf_addition first="1" second="2">

Теги CFX — это специальные теги, разработанные с использованием Java или C++ и имеющие префикс cfx_, как и cf_. Теги Java и C++ добавляются в среду выполнения CFML с помощью администратора механизма CFML или путем редактирования файлов конфигурации.

В некоторых механизмах CFML теги JSP также можно включать в страницы CFML с помощью тега <cfimport>. [ нужна ссылка ]

Функции [ править ]

Язык разметки ColdFusion включает набор функций, которые вы используете для выполнения логических и арифметических операций и манипулирования данными.

функция ссылка код
Множество [10] (ArraySort, ArrayAppend, ArrayDeleteAt...)
Конверсия [11] (URLEncodedFormat, ToString...)
Дата и время [12] (LsTimeFormat, DateAdd, DateDiff...)
Решение [13] (Определено, IIF...)
Отображение и форматирование [14] (CJustify, NumberFormat...)
Динамическая оценка [15] (DE, Оценить...)
Расширяемость [16] (CreateObject, ToScript...)
Изображение [17] (ImageRotate, ImageAddBorder...)
Международные функции [18] (SetLocale, GetTimeZoneInfo...)
Список [19] (FindOneOf, ListSetAt...)
Математический [20] (Случайным образом, Квадрат...)
Другие функции [21] (WriteOutput, GetBaseTemplatePath...)
Запрос [22] (QueryAddColumn, QuerySetCell...)
Безопасность [23] (Зашифровать, Расшифровать...)
Нить [24] (Обратный, HTMLCodeFormat...)
Структура [25] (StructKeyExists, StructDelete...)
Система [26] (GetTickCount, GetTempFile...)
XML [27] (XMLParse, GetSOAPResponse...)

Компоненты ColdFusion (CFC) [ править ]

CFC предоставляют некоторые (не все) типичные функции и возможности объектно-ориентированных (ООП) языков. Чтобы создать CFC:

Создайте файл с расширением .CFC (это отличает CFC от шаблонов ColdFusion, имеющих расширение .CFM).
Используйте четыре тега для создания компонентов, определения их функций и аргументов и возврата значения.
<cfcomComponent>: определяет CFC.
<cffunction>: определяет функции (методы) в CFC.
<cfargument>: определяет аргументы (параметры), которые принимает функция.
<cfreturn>: возвращает значение или результат функции.

ХФУ – это обычные CFML. В CFC можно использовать любой тег CFML, функцию, специальный тег, другие компоненты и т. д.

ХФУ можно использовать по-разному. Если просто необходимо вызвать метод, содержащийся в CFC, тег <cfinvoke> создаст экземпляр CFC, вызовет нужный метод, а затем уничтожит экземпляр CFC. <cfinvoke> принимает имя компонента (без расширения .cfc) и метод для выполнения. Для доступа к любым возвращаемым данным атрибут RETURNVARIABLE предоставляет имя переменной, содержащей все, что возвращает функция. CFC создаются с использованием четырех тегов, сохраняются как файлы .CFC и вызываются с помощью тега <cfinvoke>. [28]

В приведенном ниже примере компонент temp.cfc имеет метод FtoC, который преобразует температуру из градусов Фаренгейта в градусы Цельсия. Шаблон test.cfm вызывает метод, преобразует значение 212 градусов по Фаренгейту и выводит результат.

<!--- temperature.cfc --->
<cfcomponent>
  <cffunction name="FtoC" access="public" returntype="numeric">
    <cfargument name="fahrenheit" required="yes" type="numeric" />
    <cfset answer= (fahrenheit - 32)*100/180 />
    <cfreturn answer />
  </cffunction>
</cfcomponent>
<!--- test.cfm --->
<cfset fDegrees = 212 />
<cfinvoke component="temperature" method="FtoC" returnvariable="result">
  <cfinvokeargument name="fahrenheit" value="#fDegrees#" />
</cfinvoke>
<cfoutput>#fDegrees#&deg;F = #result#&deg;C</cfoutput> <br />

CFC также могут быть созданы как объекты. Если предположить, что файл CFC называется Person.cfc, экземпляр этого CFC будет создан следующим образом:

<cfset person = CreateObject("component", "Person") />

CFC также составляют основу возможности создания веб-сервисов в CFML. CFC создается обычным способом, и атрибут access="remote", добавленный к любой функции в CFC, делает эту функцию доступной для вызова в качестве веб-службы на основе SOAP . Механизм CFML автоматически генерирует WSDL и создает все необходимые заглушки для работы веб-службы.

Ссылки [ править ]

  1. ^ Adobe ColdFusion 8 — Об интернет-приложениях и серверах веб-приложений. Архивировано 13 мая 2012 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  2. ^ Откройте руководство BlueDragon . Openbd.org. Проверено 17 сентября 2013 г.
  3. ^ Смит, Майкл Что такое ColdFusion? fusionauthority.com
  4. ^ Теги, заархивированные 24 марта 2008 г., в Wayback Machine.
  5. ^ Серия интервью открытого руководящего комитета BlueDragon - Алан Уильямсон . alan.blog-city.com
  6. ^ О Railo. Архивировано 30 июня 2011 г. в Wayback Machine . Getrailo.org. Проверено 17 сентября 2013 г.
  7. ^ http://corfield.org/entry/CFML_Advisory_Committee. Архивировано 7 января 2009 г. в Консультативном комитете CFML Wayback Machine - Взгляд архитектора. Корфилд.орг. Проверено 21 июля 2013 г.
  8. ^ Синтаксис тегов. Архивировано 27 мая 2008 г. на Wayback Machine.
  9. ^ Теги по функциям. Архивировано 9 мая 2008 г. на Wayback Machine . (PDF) Проверено 17 сентября 2013 г.
  10. ^ Функции массива . Архивировано 10 декабря 2008 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  11. ^ Функции преобразования . Архивировано 8 декабря 2008 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  12. ^ Функции даты и времени. Архивировано 2 декабря 2008 г. в Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  13. ^ Функции принятия решений . Архивировано 1 февраля 2009 г. в Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  14. ^ Функции отображения и форматирования. Архивировано 20 декабря 2008 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  15. ^ Функции динамической оценки. Архивировано 7 декабря 2008 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  16. ^ Расширяемость . Архивировано 14 февраля 2009 г. в Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  17. ^ Функции изображения . Архивировано 31 января 2009 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  18. ^ Международные функции. Архивировано 8 февраля 2009 г. в Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  19. ^ Функции списка . Архивировано 10 декабря 2008 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  20. ^ Математические функции. Архивировано 7 декабря 2008 г. в Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  21. ^ Другие функции. Архивировано 30 января 2009 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  22. ^ Функции запроса . Архивировано 21 февраля 2009 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  23. ^ Функции безопасности . Архивировано 5 декабря 2008 г. в Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  24. ^ Строковые функции. Архивировано 29 января 2009 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  25. ^ Структурные функции. Архивировано 14 февраля 2009 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  26. ^ Системные функции . Архивировано 1 февраля 2009 г. в Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  27. ^ Функции XML . Архивировано 20 февраля 2009 г. на Wayback Machine . Livedocs.adobe.com. Проверено 17 сентября 2013 г.
  28. ^ Форта, Бен Использование компонентов ColdFusion . Adobe.com

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9f52782a8f8c1e50670c505c2afb285f__1717906740
URL1:https://arc.ask3.ru/arc/aa/9f/5f/9f52782a8f8c1e50670c505c2afb285f.html
Заголовок, (Title) документа по адресу, URL1:
ColdFusion Markup Language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)