Yii 프레임워크 공식 가이드 시리즈 49 - 특별 주제: 비주류 템플릿 구문 사용

黄舟
풀어 주다: 2023-03-05 19:08:01
원래의
1300명이 탐색했습니다.



Yii 프레임워크를 사용하면 개발자가 선호하는 템플릿 구문(예: Prado, Smarty)을 사용하여 컨트롤러 또는 위젯의 보기를 작성할 수 있습니다. 이를 달성하려면 viewRenderer 애플리케이션 구성요소 작성 및 설치를 통해 수행할 수 있습니다. 이 뷰 렌더러는 CBaseController::renderFile에 대한 호출을 가로채고 사용자 정의 템플릿 구문을 통해 뷰 파일을 컴파일한 다음 최종 컴파일 결과를 렌더링합니다.

정보: 거의 재사용되지 않는 뷰를 작성할 때만 사용자 정의 템플릿 구문을 사용하는 것이 좋습니다. 그렇지 않으면 애플리케이션에서 뷰를 재사용하면 동일한 템플릿 구문이 사용됩니다.

다음으로, 개발자가 사용자 정의 템플릿 구문을 사용할 수 있도록 해주는 Prado 프레임워크와 유사한 뷰 렌더러인 CPradoViewRenderer를 사용하는 방법을 소개합니다.

1. CPradoViewRenderer를 사용하려면 다음과 같이 애플리케이션을 구성하면 됩니다.CPradoViewRenderer


return array(
    'components'=>array(
        ......,
        'viewRenderer'=>array(
            'class'=>'CPradoViewRenderer',
        ),
    ),
);
로그인 후 복사

기본적으로 , CPradoViewRenderer는 소스 뷰 파일을 컴파일하고 결과 PHP 파일을 런타임 디렉터리에 저장합니다. 따라서 소스 뷰 파일이 변경된 경우에만 PHP 파일이 다시 생성됩니다. 따라서 CPradoViewRenderer를 사용하면 성능 저하가 거의 발생하지 않습니다. 🎜>

다음에서는 CPradoViewRenderer에서 지원하는 템플릿 태그를 소개합니다.

PHP 짧은 태그

짧은 PHP 태그는 뷰에서 PHP 표현식과 명령문을 작성하는 바로가기입니다. 표현식 태그

로 변환되고, 명령문 태그는

로 변환됩니다. 예를 들어

<%= CHtml::textField($name,&#39;value&#39;); %>
<% foreach($models as $model): %>
로그인 후 복사

입니다. <%= expression %><?php echo expression ?><% statement %><?php statement ?>


<?php echo CHtml::textField($name,&#39;value&#39;); ?>
<?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 .../>
로그인 후 복사

여기서

는 위젯 클래스 이름을 지정합니다. 또는 클래스 경로 별칭 및 속성 초기 값은 따옴표로 묶인 문자열이거나 중괄호 쌍으로 묶인 PHP 표현식일 수 있습니다. 예:


<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
--->
로그인 후 복사

2. 혼합 템플릿 형식

1.1.2 버전부터는 일부 대안을 혼합하여 사용할 수 있습니다. 일반 PHP 구문을 사용하는 템플릿 구문을 사용하려면 설치된 뷰 렌더러의 CViewRenderer::fileExtension 속성을

이외의 값으로 구성해야 합니다. 예를 들어 속성이

으로 설정된 경우
로 끝나는 뷰 파일은 설치된 뷰 렌더러를 사용하여 렌더링되고,

로 끝나는 다른 모든 뷰 파일은 일반 PHP 뷰 스크립트로 처리됩니다.

위는 Yii 프레임워크의 공식 가이드입니다. 시리즈 49 - 특별 주제: 비주류 템플릿 구문을 사용하는 콘텐츠 더 많은 관련 콘텐츠를 보려면 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!