Yii 프레임워크를 사용하면 개발자가 선호하는 템플릿 구문(예: Prado, Smarty)을 사용하여 컨트롤러 또는 위젯의 보기를 작성할 수 있습니다. 이를 달성하려면 viewRenderer 애플리케이션 구성요소 작성 및 설치를 통해 수행할 수 있습니다. 이 뷰 렌더러는 CBaseController::renderFile에 대한 호출을 가로채고 사용자 정의 템플릿 구문을 통해 뷰 파일을 컴파일한 다음 최종 컴파일 결과를 렌더링합니다.
정보: 거의 재사용되지 않는 뷰를 작성할 때만 사용자 정의 템플릿 구문을 사용하는 것이 좋습니다. 그렇지 않으면 애플리케이션에서 뷰를 재사용하면 동일한 템플릿 구문이 사용됩니다.
다음으로, 개발자가 사용자 정의 템플릿 구문을 사용할 수 있도록 해주는 Prado 프레임워크와 유사한 뷰 렌더러인 CPradoViewRenderer를 사용하는 방법을 소개합니다.
CPradoViewRenderer
return array( 'components'=>array( ......, 'viewRenderer'=>array( 'class'=>'CPradoViewRenderer', ), ), );
다음에서는 CPradoViewRenderer에서 지원하는 템플릿 태그를 소개합니다.
PHP 짧은 태그
짧은 PHP 태그는 뷰에서 PHP 표현식과 명령문을 작성하는 바로가기입니다. 표현식 태그는 로 변환되고, 명령문 태그는
로 변환됩니다. 예를 들어
<%= CHtml::textField($name,'value'); %> <% foreach($models as $model): %>
입니다. <%= expression %>
<?php echo expression ?>
는<% statement %>
<?php statement ?>
<?php echo CHtml::textField($name,'value'); ?> <?php foreach($models as $model): ?>
컴포넌트 태그
로 번역됩니다. 뷰에 위젯을 삽입합니다. 다음 구문을 사용합니다.
<com:WidgetClass property1=value1 property2=value2 ...> // body content for the widget </com:WidgetClass> // a widget without body content <com:WidgetClass property1=value1 property2=value2 .../>
<com:CCaptcha captchaAction="captcha" showRefreshButton={false} />
WidgetClass
<?php $this->widget('CCaptcha', array( 'captchaAction'=>'captcha', 'showRefreshButton'=>false)); ?>
로 번역됩니다. 참고:
의 값은
대신
캐시 태그
캐시 태그는 바로가기입니다. 조각 캐싱을 사용하는 구문은 다음과 같습니다.
showRefreshButton
{false}
"false"
<cache:fragmentID property1=value1 property2=value2 ...> // content being cached </cache:fragmentID >로그인 후 복사
<cache:profile duration={3600}> // user profile information here </cache:profile >
다음과 같이 번역됩니다.
fragmentID
<?php if($this->beginCache('profile', array('duration'=>3600))): ?> // user profile information here <?php $this->endCache(); endif; ?>
클립 태그
캐시 태그와 마찬가지로 클립 태그도 호출에 대한 바로가기입니다. 뷰의 CBaseController::beginClip 및 CBaseController::endClip 구문은 다음과 같습니다.
<clip:clipID> // content for this clip </clip:clipID >
<?php $this->beginClip('clipID'); ?> // content for this clip <?php $this->endClip(); ?>
clipID
댓글 태그는 개발자에게만 표시되는 뷰 댓글을 작성하는 데 사용됩니다. 댓글 태그는 뷰가 최종 사용자에게 표시될 때 제거됩니다.
<!--- view comments that will be stripped off --->
1.1.2 버전부터는 일부 대안을 혼합하여 사용할 수 있습니다. 일반 PHP 구문을 사용하는 템플릿 구문을 사용하려면 설치된 뷰 렌더러의 CViewRenderer::fileExtension 속성을
이외의 값으로 구성해야 합니다. 예를 들어 속성이 으로 설정된 경우
로 끝나는 뷰 파일은 설치된 뷰 렌더러를 사용하여 렌더링되고,