Иногда бывает необходимо написать другой код для Adobe ColdFusion vs Railo vs OpenBD из-за различий в реализации.Каков наилучший способ написать конкретный CFML-код двигателя?
У людей есть определенный метод, который они используют для этого?
Например, включение ProductName является одним из вариантов:
<cfswitch expression="#Server.ColdFusion.ProductName#">
<cfcase value="ColdFusion Server">
...
</cfcase>
<cfcase value="Railo">
...
</cfcase>
<cfcase value="BlueDragon">
...
</cfcase>
</cfswitch>
Это лучший способ, или кто может предложить что-то лучше?
Я только начал работать на сервере Coldfusion. Каковы некоторые различия в серверах приложений, на которые нужно кодировать? – Jay
В большинстве случаев не о чем беспокоиться, так как и Railo, и OpenBD обычно совместимы с функциями ACF. Проблема возникает, когда в одном из них есть ошибка, которую нужно обрабатывать таким образом, чтобы либо ломать, либо замедлять работу без ошибок. Обработка ACF с 'expandPath' подпадает под эту категорию в некоторых ситуациях (например, когда применяется к абсолютным путям или использует завершающие косые черты на Apache). [продолжение ...] –
Я предполагаю, что такая ситуация может возникнуть и с конкретными функциями поставщика. (Например, возможно, вы используете стороннюю библиотеку с ACF/OpenBD, чтобы имитировать cfvideo для Railo, но если в этой библиотеке отсутствует одна из функций cfvideo, вы не захотите использовать ее по всем направлениям. Несомненно, множество подобных примеров к этому через все двигатели.) –