1.7.2 에서 2.0.0 으로 업그레이드¶
업데이트를 수행하기 전에 index.php 파일을 정적 파일로 교체하여 사이트를 오프라인 상태로 만들어야 합니다.
업데이트 지침¶
Step 1: CodeIgniter 파일 업데이트¶
“system” 폴더에서 application 폴더를 제외한 모든 파일과 폴더를 교체합니다.
참고
이 폴더에 사용자 정의 파일이 있는 경우, 먼저 복사본을 만들어 두세요.
Step 2: 필요한 곳에서 get_dir_file_info() 조정¶
버전 2.0.0은 File Helper 의 get_dir_file_info() 에 하위 호환성이 없는 변경을 도입합니다. CodeIgniter에서 하위 호환성 없는 변경은 매우 드물지만, 심각한 서버 성능 문제를 쉽게 일으킬 수 있어 필요한 변경이었습니다. 이 헬퍼 함수를 사용하는 곳에서 재귀가 필요한 경우, 두 번째 매개변수 $top_level_only 를 FALSE 로 설정하여 변경하세요:
get_dir_file_info('/path/to/directory', FALSE);
Step 3: 플러그인을 헬퍼로 변환¶
2.0.0 은 “Plugin” 시스템을 제거합니다. 플러그인의 기능이 헬퍼와 동일하지만 확장이 불가능했기 때문입니다. 플러그인 파일 이름을 filename_pi.php 에서 filename_helper.php 로 변경하고, helpers 폴더로 이동한 후, 다음의 모든 인스턴스를:
$this->load->plugin('foo');
다음으로 변경하세요:
$this->load->helper('foo');
Step 4: 저장된 암호화 데이터 업데이트¶
참고
애플리케이션이 Encrypt 라이브러리를 사용하지 않거나, 암호화된 데이터를 영구적으로 저장하지 않거나, Mcrypt를 지원하지 않는 환경이라면 이 단계를 건너뛰세요.
Encrypt 라이브러리에 여러 개선이 이루어졌으며, 일부는 암호화 강도와 일부는 성능을 위한 것입니다. 그 결과 이전 버전의 라이브러리로 생성된 암호화 데이터를 더 이상 디코딩할 수 없습니다. 전환을 돕기 위해 encode_from_legacy() 라는 새 메소드가 추가되었습니다. 이 메소드는 기존 알고리즘으로 데이터를 디코딩하고 개선된 방법으로 재인코딩된 문자열을 반환합니다. 즉시 또는 일괄적으로 오래된 암호화 데이터를 새 것으로 쉽게 교체할 수 있습니다.
Encrypt 라이브러리 문서에서 사용 방법을 읽어보세요.
Step 5: 호환성 헬퍼 로딩 호출 제거¶
호환성 헬퍼가 CodeIgniter 코어에서 제거되었습니다. 지원하는 PHP 버전에서 모든 메소드를 기본적으로 사용할 수 있습니다.
Step 6: 클래스 확장 업데이트¶
모든 코어 클래스에 CI_ 접두사가 붙었습니다. Models 와 Controllers 를 각각 CI_Model 과 CI_Controller 를 확장하도록 업데이트하세요.
Step 7: 부모 생성자 호출 업데이트¶
모든 기본 CodeIgniter 클래스는 이제 PHP 5의 __construct() 규칙을 사용합니다. 확장된 라이브러리를 parent::__construct() 를 호출하도록 업데이트하세요.
Step 8: 코어 확장을 application/core 로 이동¶
application/libraries 폴더에 있는 코어 클래스 확장(예: MY_Controller.php)은 새 application/core 폴더로 이동해야 합니다.
Step 9: 사용자 가이드 업데이트¶
이미지 파일을 포함하여 로컬에 보유한 사용자 가이드도 새 버전으로 교체해 주세요.
업데이트 노트¶
전체 내용은 2.0.0 변경 로그 를 참조하세요. 코드에 영향을 미칠 가능성이 높은 주요 변경 사항은 다음과 같습니다:
스캐폴딩이 제거되었습니다.
CAPTCHA 플러그인이 이제 헬퍼 입니다.
JavaScript 달력 플러그인이 제거되었습니다.
system/cache 와 system/logs 디렉터리가 이제 application 디렉터리에 있습니다.
Validation 클래스가 제거되었습니다. Form Validation 라이브러리 를 참조하세요.
“default” 는 이제 예약어입니다.
xss_clean() 함수가 Security 클래스 로 이동했습니다.
do_xss_clean() 은 업로드된 파일이 XSS 검사에 실패하면 이제 FALSE 를 반환합니다.
Session 클래스 는 이제 설정 파일에 암호화 키가 설정되어 있어야 합니다.
다음의 사용 중단된 Active Record 함수들이 제거되었습니다:
orwhere,orlike,groupby,orhaving,orderby,getwhere._drop_database()와_create_database()함수가 db 유틸리티 드라이버에서 제거되었습니다.Security 헬퍼 의
dohash()함수가 명명 일관성을 위해do_hash()로 변경되었습니다.
config 폴더¶
다음 파일들이 변경되었습니다:
config.php
database.php
mimes.php
routes.php
user_agents.php
다음 파일들이 추가되었습니다:
foreign_chars.php
profiler.php