>  기사  >  PHP 프레임워크  >  yii2.0 구성 요소는 무엇입니까?

yii2.0 구성 요소는 무엇입니까?

(*-*)浩
(*-*)浩원래의
2019-12-04 11:39:112810검색

yii2.0 구성 요소는 무엇입니까?

구성 요소는 Yii 애플리케이션의 주요 초석입니다. yiibaseComponent 클래스 또는 해당 하위 클래스의 인스턴스입니다. 다른 클래스와 구별하기 위해 사용되는 세 가지 주요 기능은 다음과 같습니다.

Property (권장 학습: yii Framework)

Event

Behavior

또는 단독으로 사용하거나, 함께 사용하거나, 이러한 기능을 적용하면 Yii가 수업이 더 유연해지고 사용하기 쉬워졌습니다. yiijuiDatePicker 위젯을 예로 들어보겠습니다. 이는 뷰에서 대화형 날짜 선택기를 생성할 수 있는 UI 구성 요소입니다.

use yii\jui\DatePicker;

echo DatePicker::widget([
    'language' => 'zh-CN',
    'name'  => 'country',
    'clientOptions' => [
        'dateFormat' => 'yy-mm-dd',
    ],
]);use yii\jui\DatePicker;

echo DatePicker::widget([
    'language' => 'zh-CN',
    'name'  => 'country',
    'clientOptions' => [
        'dateFormat' => 'yy-mm-dd',
    ],
]);

이 위젯은 yiibaseComponent에서 상속되며 해당 속성을 쉽게 다시 작성할 수 있습니다.

정확하게는 구성 요소의 강력한 기능 때문에 이벤트와 동작을 처리하는 데 추가 메모리와 CPU 시간을 사용하기 때문에 일반 개체(Object)보다 약간 무겁습니다.

이 두 함수가 필요하지 않은 경우 yiibaseComponent 대신 yiibaseObject를 상속받을 수 있습니다. 이러한 방식으로 구성 요소는 일반 PHP 개체만큼 효율적이면서 속성 기능도 지원할 수 있습니다.

yiibaseComponent 또는 yiibaseObject를 상속할 때 다음 코딩 스타일을 사용하는 것이 좋습니다.

생성자(Constructor)를 재정의해야 하는 경우 생성자 메서드의 마지막 매개 변수로 $config를 전달한 후 전달합니다. 이를 상위 클래스 생성자에 전달합니다.

항상 재정의된 생성자의 끝에서 상위 클래스의 생성자를 호출하세요.

yiibaseBaseObject::init() 메서드를 재정의하는 경우 init 메서드 시작 부분에서 상위 클래스의 init 메서드를 호출해야 합니다.

<?php

namespace yii\components\MyClass;

use yii\base\BaseObject;

class MyClass extends BaseObject
{
    public $prop1;
    public $prop2;

    public function __construct($param1, $param2, $config = [])
    {
        // ... 在应用配置之前初始化

        parent::__construct($config);
    }

    public function init()
    {
        parent::init();

        // ... 应用配置后进行初始化
    }
}

또한 인스턴스 생성 시 구성 요소가 올바르게 구성되도록 하려면 다음 작업 프로세스를 따르십시오.

$component = new MyClass(1, 2, [&#39;prop1&#39; => 3, &#39;prop2&#39; => 4]);
// 方法二:
$component = \Yii::createObject([
    &#39;class&#39; => MyClass::className(),
    &#39;prop1&#39; => 3,
    &#39;prop2&#39; => 4,
], [1, 2])

위 내용은 yii2.0 구성 요소는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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