>PHP 프레임워크 >YII >yii1.1과 yii2.0의 차이점은 무엇입니까

yii1.1과 yii2.0의 차이점은 무엇입니까

(*-*)浩
(*-*)浩원래의
2019-11-04 13:10:363051검색

차이점: 1. Yii2.0은 Composer를 완전히 수용하지만 yii1.1은 그렇지 않습니다. 2. Yii2.0의 거의 모든 핵심 클래스는 네임스페이스를 도입하며 버전 1.1의 클래스 이름 접두사 "C"는 더 이상 사용되지 않습니다. Yii2.0은 1.1의 CComponent 클래스를 두 개의 클래스로 나눕니다.

yii1.1과 yii2.0의 차이점은 무엇입니까

프레임워크 2.0 버전은 완전히 재작성되었으며, 1.1 버전과 2.0 버전 사이에는 꽤 많은 차이점이 있습니다. 따라서 버전 1.1에서 업그레이드하는 것은 마이너 버전 사이를 이동하는 것만큼 간단하지 않습니다. 이 가이드를 사용하면 두 버전 간의 주요 차이점을 이해할 수 있습니다.

Install

Yii 2.0은 사실상의 PHP 종속성 관리 도구인 Composer를 완전히 수용합니다. 핵심 프레임워크 및 확장 설치는 Composer를 통해 처리됩니다.

PHP 요구 사항

Yii 2.0에는 PHP 5.4 이상이 필요합니다. 이는 Yii 1.1에서 요구하는 PHP 5.2에 비해 크게 개선된 것입니다. 그래서 언어 수준에서 눈에 띄는 차이가 많이 있습니다. 다음은 PHP 계층의 주요 변경 사항에 대한 요약입니다.

  • Namespaces

  • 익명 함수

  • Array 짧은 구문 [...element...]는 array(...element를 대체하는 데 사용됩니다. ...)

  • 뷰 파일의 짧은 형식의 echo 태그 =는 PHP 5.4부터 short_open_tag 설정에 관계없이 항상 인식되고 합법적이며 안전하게 사용할 수 있습니다.

  • SPL 클래스 및 인터페이스

  • Lazy 정적 바인딩

  • 날짜 및 시간

  • Traits

  • intl Yii 2.0은 PHP 확장 intl을 사용하여 국제화 관련 기능을 지원합니다.

Namespace

Yii 2.0에서 가장 눈에 띄는 변화는 네임스페이스를 사용한다는 것입니다. 거의 모든 핵심 클래스에는 yiiwebRequest와 같은 네임스페이스가 도입됩니다. 버전 1.1의 "C" 클래스 이름 접두사는 더 이상 사용되지 않습니다. (추천 학습: yii 튜토리얼)

현재 명명 체계는 디렉터리 구조와 일치합니다. 예를 들어 yiiwebRequest는 해당 클래스 파일이 Yii 프레임워크 폴더의 web/Request.php 파일임을 나타냅니다.

Yii의 클래스 오토로더를 사용하면 특정 파일을 명시적으로 포함하지 않고도 모든 핵심 클래스를 직접 사용할 수 있습니다.

Component 및 Object

Yii 2.0은 1.1의 CComponent 클래스를 [[yiibaseObject]] 및 [[yiibaseComponent]]의 두 클래스로 분할합니다. [[yiibaseObject|Object]] 클래스는 getter 및 setter를 통해 개체의 속성을 정의할 수 있는 경량 기본 클래스입니다.

[[yiibaseComponent|Component]] 클래스는 [[yiibaseObject|Object]]에서 상속되며 이벤트와 동작을 추가로 지원합니다.

Event(이벤트)

Yii 1에서는 일반적으로 on으로 시작하는 메소드(예: onBeforeSave)를 정의하여 이벤트를 생성합니다. Yii 2에서는 어떤 이벤트 이름이든 사용할 수 있습니다. 동시에 [[yiibaseComponent::trigger()|trigger()]] 메서드를 호출하여 관련 이벤트를 트리거합니다.

$event = new \yii\base\Event;
$component->trigger($eventName, $event);

이벤트 핸들러를 이벤트에 연결하려면 [[yiibaseComponent::on을 사용해야 합니다. ()|on( )]] 메서드:

$component->on($eventName, $handler);
// 解除事件处理器,使用 off 方法:
// $component->off($eventName, $handler);

위 내용은 yii1.1과 yii2.0의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.