2016-06-28 6 views
0

이 서버에서는 .cfm 및 .php 파일을 모두 사용할 수 있습니다. 두 유형 모두 예상대로 구문 분석됩니다.Coldfusion과 PHP가 같은 파일에 있습니까?

그러나 .cfm 파일도 PHP 용으로 파싱해야합니다. 예를 들어,

//test.cfm: 
<cfoutput>hello from cf</cfoutput>  
<?php echo 'hello from php'; ?> 
// outputs the php, verbatim, without processing :(

나는 php config를 변경하여 .cfm을 구문 분석 할 수 있음을 알고 있습니다. 파싱이 어떤 순서로 진행되는지 또는 다른 장단점, 트릭 및 팁을 알지 못합니다.

목표는 내가 잘 알고있는 php를 cfm 파일 (훨씬 적은 경험)로 포장하고 싶다는 것입니다. cfm 파일은 admin 섹션에서 자동으로 사용자 인증을 확인하고 다른 cf 파일을 포함합니다.

그래서 coldfusion이 파일 (사용자 인증 및 모든 것을 검사 함)을 분석 한 다음 PHP로 넘겨 주면 내가 찾고있는 프로세스가됩니다.

+15

내가 돈 '을 사용하여 동적으로

<cfcomponent displayname="ColdFusion renderer" output="false"> <cffunction name="render" returntype="'String' or 'Any'"> <!--- Do something with the coldfusion code here e.g: write to a file using <CFFILE> and then <CFMODULE> or <CFINCLUDE>,<CFSAVECONTENT> it or if the ColdFusion is all script, use the evaluate() function ---> </cffunction> </cfcomponent> 

자바를 통해, PHP에서 구성 요소를 호출 ColdFusion에서 렌더링 할 수있는 ColdFusion 컴포넌트를 생성 이것이 가능하거나 적어도 실용적이라고 생각하지 마십시오. 두 언어를 모두 사용해야하는 경우 PHP를 사용하여 POST/GET 요청이나 JSON과 같은 정보를 출력하고 CFML을 사용하여 정보를 처리하는 것이 가장 좋습니다. – TRose

+0

저는 CF와 PHP를 섞지 않을 것입니다. 더 쉽고 빠르며 우아한 방법은 웹 사이트의 특정 영역에서 이러한 언어 중 하나만 사용하는 것입니다. – PatNowak

+2

이것은 아마도 내가 들었던 웹 애플리케이션 개발에 접근하는 가장 루베 골드버그 방식 일 것입니다. ColdFusion을 배우는 것이 더 쉬울 것입니다. –

답변

1

이이 완료되었습니다

참조 : 문서의 대부분

http://www.barneyb.com/barneyblog/projects/cfgroovy2/는 ColdFusion에서와 그루비를 혼합했지만, 다른 언어도 혼합 할 수 있습니다.

예제 코드 :

<cfimport prefix="g" taglib="engine" /> 

... 

<h2>Run some PHP (via Quercus)</h2> 
<cftry> 
    <g:script lang="php"> 
     <?php 
     $variables["myArray"][] = "Pretty Happy People wrote PHP."; 
     echo "<pre>"; 
     var_dump($variables["myArray"]); 
     echo "</pre>"; 
     ?> 
    </g:script> 
    <cfcatch type="CFGroovy.UnknownLanguageException"> 
    <p>Quercus needs to be added to your classpath for the PHP example to work</p> 
    </cfcatch> 
    <cfcatch type="any"> 
    <p>Error running PHP code: #cfcatch.message#</p> 
    <p>#cfcatch.detail#</p> 
    </cfcatch> 
</cftry> 

출처 : https://ssl.barneyb.com/svn/barneyb/cfgroovy2/trunk/demo/index.cfm

0

가 IT가 지원하는 ColdFusion 응용 프로그램 서버에 의존 및 상호 운용성의 수준을 당신이 원하는 것입니다. 일반적으로 구문 전반에서 변수를 혼합 할 수있게하려면 ColdFusion pageContext를 공유하고 PHP 변수가 작성되고 업데이트되어야합니다. 위의 예가이 작업을 수행한다고 생각하지 않지만 수정 해 드리겠습니다. 또 다른 대안은 다시 Quercus를 사용하여 PHP에서 ColdFusion으로 호출하는 것입니다. 이 2 개의 기사는 당신이 이것을하는 것을 도울 것입니다. 첫 번째 방법은 Java에서 ColdFusion을 호출하는 두 번째 방법 인 PHP에서 Java를 호출하는 방법을 보여줍니다.

http://quercus.caucho.com/quercus-3.1/doc/quercus.xtp#Instantiatingobjectsbyclassname http://help.adobe.com/en_US/ColdFusion/10.0/Developing/WSe61e35da8d318518-106e125d1353e804331-7ffb.html

는 첫째 CFCProxy

<?php 
function cfml($code) 
{ 
    $cfc = new Java("coldfusion.cfc.CFCProxy", "path/to/cfc/above"); 
    $cfc.render($code); 
} 

echo 'hello from php'; 

cfml(<<<EOT 
    <cfoutput>Hello from CF</cfoutput> 
EOT 
); 
?> 
+0

나는 .cfm에 PHP *가 있어야합니다. 그 이유는 /admin/somefile.cfm이 이미있는 사용자 인증을 트리거하기 때문입니다. 따라서 사용자가/admin 디렉토리에서 file.cfm을 가져 오는 것이 허용되면 great, 그렇지 않으면 사용자가 login.cfm으로 리디렉션됩니다. 이 인프라는 이미 구현되었습니다. 사용자가 somefile.cfm에 대해 조사 했으므로 PHP를 구문 분석해야합니다. 나는 그런 변수를 공유 할 필요가 없다.이 모든 경우에 대한 유일한 이유는 기존 사용자 인증에 피기 백하는 것입니다. –

+0

Quercus 접근법을 사용하는 coldfusion에서 PHP와 같은 소리가 가장 좋은 해결책입니다. –

관련 문제