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

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

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

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


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



마지막 튠업 및 배포 

우리의 블로그 어플리케이션도 완성에 가까워졌습니다. 배포하기 전에 조금 튠업하고 싶습니다.

1. 홈페이지 변경
게시물 목록 페이지를 홈페이지로 사용합니다. 어플리케이션 초기 구성 을 아래와 같이 수정합니다.

return array(
    ......
    'defaultController'=>'post',
    ......
);

팁: PostController 는 index 가 기본 액션 인 것처럼 이미 선언하고 있습니다. 따라서 응용 프로그램의 홈페이지를 방문하면 post 컨트롤러의 index 액션에 의해 생성되는 결과가 나타납니다.


2. 스키마 캐시를 활성화 

액티브 레코드는 열 정보를 결정하기 위해 테이블​​에 대한 메타 데이터를 필요로 합니다. 따라서 메타 데이터를 읽고 분석하는 시간이 필요합니다. 이것은 개발 단계에서는 문제가되지 않을지도 모릅니다. 그러나 프로덕션 모드에서 동작하는 응용 프로그램은 데이터베이스의 스키마가 변경되지 않는면 완전히 시간 낭비입니다. 따라서 응용 프로그램 초기 구성을 아래와 같이 변경하여 스키마 캐시를 활성화해야합니다.

return array(
    ......
    'components'=>array(
        ......
        'cache'=>array(
            'class'=>'CDbCache',
        ),
        'db'=>array(
            'class'=>'system.db.CDbConnection',
            'connectionString'=>'sqlite:/wwwroot/blog/protected/data/blog.db',
            'schemaCachingDuration'=>3600,
        ),
    ),
);

위에서 cache 구성 요소를 추가합니다. 이것은 캐시 스토리지로 기본 SQLite 데이터베이스를 사용하는 것입니다. 서버가 APC 등 다른 캐시 확장을 장비하고 있으면 그것을 사용하도록 변경할 수 있습니다. 그리고 db 구성 요소를 수정하여 schemaCachingDuration 속성을 3600으로 설정합니다. 이것은 읽은 데이터베이스 스키마 데이터가 3600 초 동안 활성화 캐시가 될 수 있음을 의미합니다.


3. 디버그 모드를 해제
항목 스크립트 파일 /wwwroot/blog/index.php 를 수정하여 상수 YII_DEBUG 을 정의하는 행을 삭제합니다. 이 상수는 개발 단계에서 유용합니다. 왜냐하면,이 상수를 정의하면 Yii는 오류가 발생한 경우, 더 많은 디버그 정보를 표시 할 수있게되기 때문입니다. 그러나 응용 프로그램을 프로덕션 모드로 동작시키는 경우는 디버깅 정보를 표시하는 것은별로 바람직하지 않습니다. 디버깅 정보는 스크립트 파일의 저장 위치와 파일의 내용 등 보안 수칙 중요한 정보를 포함 있기 때문입니다.


4. 응용 프로그램을 배포
 마지막 배포 프로세스는 /wwwroot/blog 디렉토리를 대상 디렉토리에 복사하는 것이 주된 작업입니다. 아래에 필요한 모든 단계를 점검 목록으로 보여줍니다.

  1. 만약 아직이라면 Yii를 대상 환경에 설치한다.
  2. /wwwroot/blog 디렉토리 전체를 대상 환경에 복사한다.
  3. 항목 스크립트 파일 index.php 를 편집하여 변수 $yii 가 새로운 Yii의 부트 스트랩 파일을 참조하도록한다.
  4. 크립트 파일 protected/yiic.php 을 편집하여 변수 $yiic 이 새로운 Yii의 yiic.php 파일을 참조하도록한다.
  5. 디렉토리 assets 와 protected/runtime 의 권한을 변경하여 웹 서버 프로세스에서 쓸 수 있도록한다.


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

+ Recent posts

티스토리 툴바