질문Q #8330
CI 2 VS CI3 비교분석 (갱신 15.3.18)
ci세상2015-03-18 11:52:22
CI3이 많이 변경된듯 해서 비교분석
http://www.codeigniter.com/userguide3/changelog.html

License
CodeIgniter has been relicensed with the MIT License, eliminating its old proprietary licensing.
=> 라이센스는 이제부터 MIT / 라이센스 txt 파일도 예전보다 그렇게 길지 않고 간단명료해진것이 특징
update : 15.3.18

General Changes
PHP 5.1.6 is no longer supported. CodeIgniter now requires PHP 5.2.4 and recommends PHP 5.4+ or newer to be used.
=> php버젼 5.1.6 버젼을 이제 지원안하는 것은 중요한 내용같습니다. php버젼을 부득이하게 변경이 안되는 서버환경은 지원안되는 함수를 찾아서 대체해야 하는것 같습니다. 참고로 apmsetup7버젼을 보니 5.2.12라서 3은 사용이 가능하겠더라고요
update : 15.3.18

Changed filenaming convention (class file names now must be Ucfirst and everything else in lowercase).
=> 3부터는 컨트롤러 파일명을 대문자로 무조건 시작해야 하는데요 2.x대는 소문자로 시작되었습니다. 클래스명은 대소문자 구분이 없고요, 2.x대 하시는 분이 3.x 하시면 이것부터 혼동되시겠네요
update : 15.3.18


Changed the default database driver to ‘mysqli’ (the old ‘mysql’ driver is DEPRECATED).
=> application/config/database.php 기본 드라이버에서 구분이 보입니다.
ci2 : mysql / ci3 : mysqli 로 표기가 되어 있고 pconnect 도 기본 FALSE 상태입니다.
개발에서 DEPRECATED 뜻은 가급적 사용을 권장하지 않는다의 뜻이기에 mysql을 사용못하는것은 아닙니다.
update : 15.3.18


$_SERVER['CI_ENV'] can now be set to control the ENVIRONMENT constant.
=> 라이브 / 테스트 / 로컬 개발시 응용할 수 있는 방법입니다. 
참조 : http://avenir.ro/codeigniter-tutorials/step-2-set-environments/
update : 15.3.18

.htaccess에서 다음과 같이 설정
RewriteEngine On
SetEnvIf Host www.yoursite.tld$ CI_ENV=production
SetEnvIf Host test.yoursite.tld$ CI_ENV=testing
SetEnvIf Host localhost$ CI_ENV=development

index.php에서 다음과 같이 세팅
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

or

if(! defined('ENVIRONMENT') )
{
  $domain = strtolower($_SERVER['HTTP_HOST']);
  switch($domain) {
    case 'www.yoursite.tld' :
      define('ENVIRONMENT', 'production');
    break;
    case 'test.yoursite.tld' :
      define('ENVIRONMENT', 'testing');
    break;
    default :
      define('ENVIRONMENT', 'development');
    break;
  }
}

디렉토리별 구조를
application
-config
- -development
- - -config.php
- - -database.php
- - -routes.php
- -production
- -testing
system
index.php



ps / 변경로그에 대하여 순차적으로 분석된 내용을 올릴 예정인데요 참여하실 분은 댓글로 남겨주시면 본문에 갱신하겠습니다.^^
 
답변10
#1 한대승(불의회상) 2015-03-18 12:45:38
좋은 정보 감사 합니다.
#2 변종원(웅파) 2015-03-18 19:49:45
yes
#3 Siam 2015-03-20 16:19:02
좋은정보 감사합니다!
현재 2.x 대로 공부중인데 얼른 3.x로 갈아타서 공부하는게 나을까요?
#4 ci세상 2015-03-20 16:45:04
Siam@저는 구버젼(안정화) 부터 배우는 편인데요 그 이유는 검색 자료가 많기 때문입니다.
#5 한대승(불의회상) 2015-03-20 17:11:06
오... 아랫 부분은 꿀팁이네요. ^^
RewriteEngine On
SetEnvIf Host http://www.yoursite.tld$ CI_ENV=production
SetEnvIf Host test.yoursite.tld$ CI_ENV=testing
SetEnvIf Host localhost$ CI_ENV=development

index.php에서 다음과 같이 세팅
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
#6 Dexter 2015-03-26 14:39:51
모험삼아 3.x 버젼 써보고 있습니다...
2.x때 만들었던거 가져다 쓰면서 대문자 규칙때문에 헷갈렸던 기억이 나네요...

" 도무지 잘못한게 없는데 왜이러지??? " 이러면서 ㅋㅋㅋㅋㅋ

좋은 정보 감사합니다.
#7 Dexter 2015-03-26 14:44:06
참!! 기억나는  바뀐점중에 하나가
error 페이지가 view로 들어갔네요...
또한 cli용과 html용이 따로 분리되어 있습니다...
http://www.codeigniter.com/userguide3/general/errors.html
참고하세요....
#8 니삼 2015-03-29 04:54:39
저렇게 이용해서 환경 바꾸는건 유용한 테크닉 방법이네요. 다른곳에서도 활용 할 수 있겠어요
#9 아스초코 2015-04-01 14:36:52
안그래도 궁금했는데 좋은정보 완전 감사합니다!
#10 무궁화영토 2015-04-08 11:04:13
yes