>백엔드 개발 >PHP 튜토리얼 >CakePHP 2.x를 3.0으로 업그레이드

CakePHP 2.x를 3.0으로 업그레이드

WBOY
WBOY원래의
2016-08-08 09:25:57945검색

CakePHP 2.x => 3.x 업그레이드 지침

1. 컨트롤러 레이어

1.find('list')
원본 2.x에서 이 메소드는 옵션에 'fields'를 지정하여 key=>value
를 구현합니다. 3.x는 'keyField'를 사용합니다. 그리고 옵션에 'valueField'를 추가하려면 toArray()

를 사용하여 반환 값을 변환해야 합니다.

2.find('first'), find('count')
3.x에서는 이 두 매개변수를 완전히 포기하고 find()->first() 및 find()->count를 사용합니다. () 교체

3. 쿼리 관련 테이블을 찾을 때 'contain' 속성을 추가해야 합니다. Cake 3.x는 기본적으로 테이블을 연결하지 않습니다.

4.findById
**?관련 문서가 없나요?**
2.x의 findById 형식은 ($id,array $fields)입니다.
3.x는 하나의 매개변수만 가질 수 있습니다. ($ id), select(array $fields) 메소드를 통해 데이터를 필터링해야 합니다

5.Component->initialize()
2.x는 초기화(Controller $Controller)를 통해 Component를 호출하는 Controller를 얻습니다.
3.x에서는 초기화 매개변수를 초기화(array $config)로 변경했습니다. , $controller = $this->_registry->getController();를 통해

를 가져옵니다.

6.SessionComponent
3.x에서는 이 구성 요소를 버리고 $this->request->session()을 사용하여

을 대체했습니다.

2. 모델 레이어

1.Associations
2.x는 속성을 정의하여 연관을 실현합니다.
3.x는 Table >의 초기화 메소드에서 $this->belongsTo, $this->hasMany, $this-를 호출해야 합니다. ;belongsToMany, $this->addAssociations 및

을 달성하기 위한 기타 방법

2.Validation
2.x는 유효성 검사 속성을 정의하여 데이터 유효성 검사를 구현합니다.
3.x는

을 구현하기 위해 Table에 유효성 검사Default(Validator $validator) 메서드를 정의해야 합니다.

3.virtualFields
이 속성을 사용해야 하는 경우 Entity에
메소드를 추가해야 합니다. 예를 들어 테이블에 full_name 가상 필드를 정의해야 합니다. A
먼저 Entity의 테이블 A에 가상 필드 full_name을 정의해야 합니다. 보호 함수 _getFullName()
                                성명에 경솔하다ââ'¬â 드는¢
4.field()

**? 관련 문서가 없나요?**

3.x에서는 이 메소드를 포기하고 get() 메소드로 대체할 수 있습니다

5.ClassRegistry::init()

3.x 이 메소드는 폐기되었으며 TableRegistry::get()

으로 대체되어야 합니다.
6.Mysql 별칭 설정

2.x는 'fields'=>array('id as table_id')와 같이 필드 속성에 as만 추가하면 됩니다.

3.x는 alias 'fields'=>['table_id'=>'id']
등의 추가 키를 사용하세요.
3. 레이어 보기

(View 레이어, 2.x의 View 폴더에서 3.x의 Template으로 이동)

1.$this->Html->url

3.x에서는

대신 $this->Url->build를 사용하세요.
4. 버그

1. 연관

hasMany 테이블 연관을 쿼리할 때 필드를 지정해야 하는 경우 필드에 연관 키를 추가해야 합니까? ? ?


이번 업그레이드 가이드는 계속 업데이트됩니다~~~~~~

위 내용은 모든 측면을 포함하여 CakePHP 2.x의 3.0 업그레이드를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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