본문 바로가기

Yii Framework/블로그 만들기

22. 향후 확장

이 곳은 제가 개인적으로 YII framework의 블로그 만들기를 번역해 놓은 곳입니다.

제가 영어 전공자도.. 그렇다고 영어랑 친하지도 않습니다. 

그래서 보시면 뭔가 글도 엉성하고 말이 안맞는게 많습니다.

잘못 오역된 부분이라던지 그런 부분들 친절하게 알려주시면 바로 수정하겠습니다.


이 페지의 원글 http://www.yiiframework.com/doc/blog/1.1/en/final.future



향후 확장

1. 테마 사용

우리의 블로그 어플리케이션에 테마 를 적용하기 위해 코드를 작성할 필요가 조금도 없습니다. 테마를 사용하기 위해 필요한 것은 주로 테마에서 사용하는 뷰 파일을 쓰고 테마를 개발하는 것입니다. 예를 들어, 다른 페이지 레이아웃을 사용하는classic 이라는 테마를 사용하기 위해서는, /wwwroot/blog/themes/classic/views/layouts/main.php 라는 레이아웃 뷰 파일을 만듭니다. 또한 어플리케이션 초기 구성을 변경하여 classic 테마를 선택했다는 것을 보여줄 필요가 있습니다.

return array(
    ......
    'theme'=>'classic',
    ......
);

2. 국제화
우리는 블로그 어플리케이션을 국제화하고, 블로그의 페이지가 다양한 언어를 표시 할 수 있도록 할 수 있습니다.여기에는 크게 두 가지 측면이 있습니다.

첫째, 우리는 다양한 다른 언어로보기 파일을 만들 수 있습니다. 예를 들어, PostController 의 index 페이지에 대해 /wwwroot/blog/protected/views/post/zh_cn/index.php 라는 뷰 파일을 만들 수 있습니다. 응용 프로그램이 중국어 간체 (언어 코드 zh_cn )를 사용하도록 구성되면 Yii는 원래 뷰 파일에 대신이 새로운 뷰 파일을 자동으로 사용합니다.

둘째, 우리는 프로그램에 의해 생성 된 메시지에 대해 번역 된 메시지를 만들 수 있습니다. 번역 된 메시지는 //wwwroot/blog/protected/messages 라는 디렉토리에 파일로 저장되어야합니다. 동시에, 문자열을 사용하는 코드를 수정하여 원래 문자열을 Yii::t() 메소드로 묶어 사용하여야합니다.

국제화에 대한 자세한 내용은 가이드 를 참조하십시오.


3. 캐시 성능 개선
Yii 프레임 워크는 그 자체로는 매우 효율적 이지만, Yii로 작성된 응용 프로그램이 효율적이라고는 반드시 말할 수 없습니다. 우리의 블로그 애플리케이션에서 성능을 개선 할 수있는 부분이 몇 가지 있습니다. 예를 들어, 태그 클라우드 포틀릿은 복잡한 데이터베이스 쿼리와 PHP 로직을 포함하고 있기 때문에, 성능 병목 현상의 하나가 될 수 있습니다.

우리는 성능을 개선하기 위해, Yii 의해 제공되는 정교한 캐시 기능 을 사용할 수 있습니다. Yii 중에서도 가장 유용한 구성 요소 중 하나가 COutputCache 입니다. 이것은 페이지 표시 조각을 캐시하여 그 조각을 생성하는 원래의 코드를 요청마다 실행 않아도 있도록하는 것입니다. 예를 들어, 레이아웃 파일 /wwwroot/blog/protected/views/layouts/column2.ph 에서 태그 클라우드 포틀릿을 COutputCache 로 구분할 수 있습니다 :
<?php if($this->beginCache('tagCloud', array('duration'=>3600))) { ?>
 
    <?php $this->widget('TagCloud', array(
        'maxTags'=>Yii::app()->params['tagCloudCount'],
    )); ?>
 
<?php $this->endCache(); } ?>

위의 코드는 태그 클라우드의 표시는 요청에 즉석에서 생성되는 대신 캐시에서 제공됩니다. 캐시 된 내용은 3600 초 동안 활성화됩니다.

4. 새로운 기능을 추가
우리의 블로그 응용 프로그램은 매우 기본적인 기능 밖에 가지고 있지 않습니다. 전체 블로그 시스템에하려면 달력 포틀릿, 메일 알림, 기사 카테고리 화, 과거 기사 포틀릿, 등등 더 많은 기능이 필요합니다. 이러한 기능을 구현하는 것은 관심을 가진 독자의 손에 맡깁니다.