yiiframework 의 The Definitive Guide를 개인적으로 직역 정리한 곳 입니다.

영어전공자도 아니며 영어라 친하지도 않습니다.

그냥 보면서 직영으로 옮겨 놓은것으로 오역이나 잘못된 부분이 있으면 친절하게 알려주세요.^^

이 페이지의 원문 : http://www.yiiframework.com/doc/guide/1.1/en/quickstart.what-is-yii


Yii는 무엇인가요?

  1. 요구사항
  2. Yii 는 어디에 좋은가요?
  3. Yii 는 다른 프레임워크(Framework) 에 비해 어떤가요?


Yii는 대규모 웹 애플리케이션을 신속하게 개발하기위한 고성능 컴포넌트 기반의 PHP 프레임 워크입니다.

Yii는 웹 프로그래밍의 재사용성을 최대한 가능하게 하고 웹 응용 프로그램의 개발 과정을 빠르게 진행할수 있습니다.

Yii(이; [ji :] 라고 발음합니다)라는 이름은 " Yes It Is! "의 약어입니다.

대부분의 경우이 기간은 Yii을 처음 접하는 사람들의 질문에 대한 정확하고 간결하기 짝이없는 답변입니다.


빠른가? ... 안전한가? ... 전문적인가? ... 다음 프로젝트에 맞는가? ... Yes, it is!


1. 요구사항

Yii를 이용한 웹 응용 프로그램을 실행하려면 PHP 5.1.0을 지원하는 웹 서버가 필요합니다.

Yii를 쓰고 싶은 개발자는 객체 지향 프로그래밍 (OOP)을 이해하는 것이 매우 유용합니다.

왜냐하면 Yii는 순수한 OOP 프레임워크이기 때문입니다.


2. Yii 는 어디에 좋은가요?

Yii는 사실상 모든 종류의 웹 응용 프로그램 개발에 사용할 수있는 범용 웹 프로그래밍 프레임워크입니다.

Yii는 가볍고이고 정교한 캐싱 메커니즘을 가지고 있기 때문에, 고부하 응용 프로그램 특히 포털, 포럼, 콘텐츠 관리 시스템 (CMS),  전자 상거래 시스템 등

트래픽이 높은 애플리케이션에 적합합니다.


3. Yii 는 다른 프레임워크(Framework)에 비해 어떤가요?

대부분의 PHP 프레임 워크와 마찬가지로, Yii는 MVC 프레임워크입니다.


Yii는 다른 PHP 프레임 워크에 비해 고효율, 다양한 기능, 다양한된 문서를 가지고 있는 점에서 우수합니다.

Yii는 어려운 웹 애플리케이션 개발에 적합하도록 처음부터 설계되었습니다. 이는 어느 일부 프로젝트의 결과물 이나 타사 대기업의 결과가 아닙니다.

Yii는 개발자의 웹 애플리케이션 개발에 풍부한 경험과 검증 된 웹 프로그래밍 프레임워크 및 응용 프로그램에 대한 연구의 결과입니다.




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

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

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

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

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



응용프로그램

응용 프로그램은 요청이 처리되는 이내에 실행 컨텍스트를 캡슐화하는 개체입니다. 주된 작업은 요청에 대한 몇 가지 기본적인 정보를 수집하여 그 대상 처리를 위해 적절한 컨트롤러에 요청을 전달하는 것입니다. 또한 응용 프로그램 수준의 초기 구성을 유지하기위한 핵심 장소로도 동작합니다.. 이러한 이유로 응용 프로그램 객체는 프론트 컨트롤러 라고도합니다.
응용 프로그램은 항목 스크립트 는 단일 항목으로 생성됩니다.

응용 프로그램 싱글턴은 어느 곳에서나 Yii::app ()로 액세스 할 수 있습니다.

1. 응용프로그램 초기구성

기본적으로 응용 프로그램 개체는 CWebApplication의 인스턴스입니다. 이를 정의하기 위해, 일반적으로 초기 구성 파일 (또는 배열)를 제공하고, 인스턴스의 생성시 속성 값을 초기화합니다. 응용 프로그램을 사용자 정의 하는 또 다른 방법은 CWebApplication 를 확장하는 것입니다.

초기 구성은 "키- "쌍의 배열입니다. 키는 응용 프로그램 인스턴스의 속성 이름을 나타냅니다. 값은 해당 속성의 초기 값입니다. 예를 들어 다음의 초기 구성 파일은 name 및 defaultController 속성을 구성합니다.

array(
    'name'=>'Yii Framework',
    'defaultController'=>'site',
)

일반적으로 초기 구성은 독립적 인 PHP 스크립트에 저장합니다 (예:protected/config/main.php) 이 스크립트에서 다음과 같이 구성의 배열을 돌려줍니다.

return array(...);

초기 구성을 적용하려면 응용 프로그램의 생성자에 초기 구성 파일 이름을 매개 변수로 전달합니다. 또는 보통 항목 스크립트 에서 다음과 같이 Yii::createWebApplication () 초기 구성 파일 이름을 매개 변수로 전달합니다.

$app=Yii::createWebApplication($configFile);

팁: 만약 애플리케이션 초기 구성이 매우 복잡한 경우 여러 파일로 나눌 수 있습니다. 각각의 파일은 구성 배열의 일부를 반환합니다. 그리고 메인 초기 구성 파일에서 PHP의 include () 에 의해 다른 구성 파일을 포함, 전체 구성 배열에 병합합니다.

2. 응용프로그램 디렉토리 기반
응용 프로그램 기본 디렉토리는 보안상 주의를 요하는 모든 PHP 스크립트와 데이터의 저장 위치의 루트 디렉토리입니다. 기본적으로 항목 스크립트를 포함하는 디렉토리 아래의 protected 라는 서브 디렉토리입니다. 이 위치는 응용 프로그램 초기 구성 의 basePath 속성 값을 변경하여 정의 할 수 있습니다.

응용 프로그램 기본 디렉토리 아래의 내용은 웹 사용자가 액세스되지 않도록 보호해야합니다. Apache HTTP 서버를 이용하는 경우 .htaccess 파일을 기반 디렉토리 아래에두면 쉽게 구현할 수 있습니다. .htaccess 파일의 내용은 다음과 같습니다.
deny from all

3. 응용프로그램 구성요소
응용 프로그램 객체의 기능은 유연한 구성 요소 아키텍처로 쉽게 정의 할 수 있으며 풍부하게  할 수 있습니다. 응용 프로그램은 일련의 응용 프로그램 구성 요소를 관리하고 각각 별도의 기능을 구현합니다. 예를 들어, 응용 프로그램은 사용자 요청에 대한 몇 가지 초기 작업을 수행하기 위해 CUrlManager 구성 요소와 CHttpRequest 구성 요소의 처리를 수행합니다.

응용 프로그램 인스턴스 components 속성을 구성하여 어떤 애플리케이션 컴포넌트를 사용하는 경우에도, 클래스 및 속성 값을 사용자 정의 할 수 있습니다. 예를 들어, 다음과 같이 여러 memcache 서버를 사용하도록 CMemCache 구성 요소를 구성 할 수 있습니다.

array(
    ......
    'components'=>array(
        ......
        'cache'=>array(
            'class'=>'CMemCache',
            'servers'=>array(
                array('host'=>'server1', 'port'=>11211, 'weight'=>60),
                array('host'=>'server2', 'port'=>11211, 'weight'=>40),
            ),
        ),
    ),
)

위에서, components 배열에 cache 요소를 추가했습니다.구성요서의 클래스는 CMemCache이며, 캐쉬요소의 상태 및 서버 속성은 다음과 같이 초기화 해야 합니다.

응용 프로그램 구성 요소에 액세스하려면 Yii::app()->ComponentID 를 사용 사용하며, 여기서ComponentID 구성 요소의 ID (예 Yii::app()->cach )를 참조 합니다.

응용 프로그램 구성 요소는 초기 구성 파일에서 enabled 속성을 false으로 설정하여 해제 할 수 있습니다. 비활성화 된 구성 요소에 액세스하면 null이 반환 됩니다.

팁 : 기본적으로, 응용 프로그램 구성 요소가 수요에 만들어집니다. 이러한 문제는 사용자가 요청하는 동안 액세스되지 않은 경우 응용 프로그램 구성 요소가 전혀 생성되지 않을 수 있습니다 의미합니다. 결과적으로 응용 프로그램이 다량의 요소를 가지도록 구성되어도 전체로서의 성능은 떨어지지 않습니다. 일부 응용 프로그램 구성 요소 (예 CLogRouter )는 액세스되는지 여부에 관계없이 생성 될 필요가있을 것이다. 이렇게하려면 미리 로드 응용 프로그램 속성에서 자신의 ID를 나열합니다.

4.응용프로그램 핵심 구성요소

Yii는 웹 애플리케이션의 일반적인 기능을 제공하는 일련의 핵심 응용 프로그램 구성 요소를 미리 정의하고 있습니다. 예를 들어, request 구성 요소는 사용자 요청에 대한 정보를 수집하고 요청 된 URL과 쿠키 정보를 제공하는 데 사용됩니다. 이 같은 핵심 구성 요소의 속성 값을 구성하여 우리는 Yii의 기본 동작의 거의 모두를 변경할 수 있습니다.

다음은 CWebApplication 의해 미리 선언 된 핵심 구성 요소의 목록입니다.
  • assetManager : CAssetManager - 개인 자산 파일 게시를 관리합니다.
  • authManager : CAuthManager - 역할 기반 액세스 제어 (RBAC)를 관리합니다.
  • cache : CCache - 데이터 캐시 기능을 제공합니다. 주의 : 실제 클래스 (예 : CMemCache , CDbCache )을 지정 해야 합니다. 이 구성 요서를 액세스 할때 그렇지 않으면 null을 반환합니다.
  •  clientScript : CClientScript - 클라이언트 스크립트 (javascript 나 CSS)을 관리합니다.
  • coreMessages : CPhpMessageSource - Yii 프레임 워크에서 사용되는 번역 된 코어 메시지를 제공합니다.
  • db : CDbConnection - 데이터베이스 연결을 제공합니다. 주의 :이 구성 요소를 사용하려면 connectionString속성을 구성해야합니다.
  • errorHandler : CErrorHandler - 캐치되지 않은 PHP 오류와 예외를 처리합니다.
  • format : CFormatter - 표시 목적으로 데이터 값을 포맷합니다.
  • messages : CPhpMessageSource - Yii 응용 프로그램에서 사용되는 번역 된 메시지를 제공합니다.
  • request : CHttpRequest - 사용자 요청에 관련된 정보를 제공합니다.
  • securityManager : CSecurityManager - 보안 관련 서비스 (예 : 해싱 및 암호화)를 제공합니다.
  • session : CHttpSession - 세션 관련 기능을 제공합니다.
  • statePersister : CStatePersister - 글로벌 상태를 지속시키는기구를 제공합니다.
  • urlManager : CUrlManager - URL 분석 및 생성 기능을 제공합니다.
  • user : CWebUser - 현재 사용자의 신원에 관련된 정보를 유지합니다.
  • themeManager : CThemeManager - 테마를 관리합니다.

5. 응용프로그램 라이프 사이클
사용자 요청을 처리 할 때 응용 프로그램은 다음의 흐름으로 처리를 할 것입니다 :
  1.  CApplication::preinit () 는 응용 프로그램을 사전 초기화 합니다.
  2.  클래스 자동 로더 및 오류 처리를 준비합니다;
  3. 핵심 응용 프로그램 구성 요소를 등록합니다;
  4. 응용 프로그램을 실행합니다;
  5. CApplication :: init () 는 응용 프로그램을 초기화합니다
    - 응용 프로그램 동작을 등록합니다;
    - 정적 응용 프로그램 구성 요소를 실행합니다;
  6. 이벤트 onBeginRequest 을 발행합니다.
  7. 사용자 요청을 처리합니다
    - 요청에 대한 정보를 수집합니다
    - 컨트롤러를 생성합니다
    - 컨트롤러를 실행합니다
  8. 이벤트 onEndRequest 을 발행합니다


이 곳은 제가 개인적으로 YII framework의 Guide 부분을 번역해 놓은 곳입니다.

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

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

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

이 페지의 원글 
http://www.yiiframework.com/
doc/guide/1.1/en/basics.entry


항목 스크립트

  1. 버그 모드

항목 스크립트는 사용자 요청을 먼저 받아 부트 스트랩(시작)하는 PHP 스크립트입니다. 이것은 최종 사용자가 직접 실행을 요구할 수있는 유일한 PHP 스크립트입니다.

대부분의 경우, Yii 응용 프로그램 항목 스크립트는 다음과 같은 간단한 것입니다.

// remove the following line when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);
// include Yii bootstrap file
require_once('path/to/yii/framework/yii.php');
// create application instance and run
$configFile='path/to/config/file.php';
Yii::createWebApplication($configFile)->run();

이 스크립트는 먼저 Yii 프레임 워크 부트 스트랩 파일 yii.php이 포함되어 있습니다. 그런 다음 지정된 구성으로 웹 응용 프로그램 인스턴스를 생성하고 실행합니다.

1. 디버그 모드
Yii 응용 프로그램을 디버깅 모드 또는 프로덕션 모드 중 하나에서 실행할 수 있지만,이 모드는 상수 YII_DEBUG값에 의해 결정됩니다. 기본적으로이 상수 값은 false 로 정의되며, Production Mode를 의미합니다. 디버그 모드에서 실행하려면 yii.php 파일을 통합하기 전에이 값을 true 로 정의 하십시오. 디버그 모드에서 실행하는 것은 그다지 효율적이지 않습니다. 내부적으로 다량의 로그를 생성하기 때문입니다. 반면 디버그 모드는 개발 단계에서 매우 강력합니다. 이유는 오류가 발생하면 디버깅 정보가 충분히 얻을 수 있기 때문입니다.

+ Recent posts