[CodeIgniter3] 개발환경구성
CodeIgniter 개발 환경 구성
윈도우에서 PHP 개발 환경을 구성하려면 Apache, PHP, MySQL (APM)을 각각 설치하고 설정해야 하는데, XAMPP를 이용하면 APM을 한번에 설치하고 관리할 수 있다.
XAMPP 페이지(https://www.apachefriends.org/index.html)
위 사이트에 접속하여 XAMPP for Windows를 클릭하여 다운로드 한다.
설치 과정 중 옵션은 전부다 선택하거나 아래화면과 같이 선택한다.
설치 완료 후, 다운로드받은 해당 폴더로 가서 xampp 폴더를 선택한다.
폴더안에 xampp-control에서 apache를 실행 시켜준다.
CodeIgniter 설치
CodeIgniter 웹 사이트 (http://www.codeigniter.com/download)에서 CodeIgniter3을 다운로드 받는다.
xampp/htdocs에 있는 XAMPP 파일을 모두 삭제한 뒤에 내려받은 파일의 압축을 풀고 해당 파일을 xampp/htdocs로 복사한다.
웹 브라우저에서 localhost로 접속했을 때 아래와 같은 화면이 나오면 끝이다.
Hello World 페이지 만들기
application/config/routes.php를 보면 아래와같은 코드를 확인 할 수 있다.
defined(‘BASEPATH’)
PHP의 defined() 함수를 사용하여 “BASEPATH” 상수가 이미 정의되었는지 확인한다.
exit(‘No direct script access allowed’)
만약 “BASEPATH” 상수가 정의되지 않았거나 false라면, 스크립트 실행을 중지하고 메시지 “No direct script access allowed”를 출력한 후 스크립트를 종료한다.
이 코드 조각의 주요 목적은 보안과 웹 애플리케이션의 직접적인 스크립트 액세스를 방지하는 것이다. 웹 애플리케이션에서는 일반적으로 특정 진입점 (예: index.php)을 통해만 접근을 허용하고, 직접적인 스크립트 실행을 방지하여 보안을 강화한다.
CodeIgniter3에서 라우팅을 설정하려면 해당 파일을 편집해야 한다.
이 파일을 사용하여 URL 경로를 컨트롤러 및 메소드에 매핑할 수 있다.
기본 라우팅
CodeIgniter에서 기본적으로 사용되는 라우팅은 URL 경로와 컨트롤러/메소드를 일치시키는 것이다.
예를 들어, URL 경로 “/controller/method”는 “Controller” 클래스의 “method” 메소드에 매핑된다.
컨트롤러와 메소드 설정
$route['default_controller'] = 'welcome';
위의 코드는 기본적인 라우팅 규칙을 정의하는데 사용된다.
웹 애플리케이션이 루트URL로 접근 했을 때 어떤 컨트롤러와 메소드를 호출할지 결정한다.
기본적으로 CodeIgniter 애플리케이션을 시작하면 ‘default_controller’에 지정된 컨트롤러와 메소드가 자동으로 호출된다.
‘default_controller’ 경로가 ‘welcome’컨트롤러로 매핑된다.
$route['products'] = 'catalog/products';
위의 코드는 ‘products’ 경로가 ‘Catalog’ 컨트롤러의 ‘products’메소드에 매핑된다.
매개변수를 사용한 라우팅
CodeIgniter에서는 동적 URL 매개변수를 사용하여 라우팅을 정의할 수 있다.
예를들어, 제품 ID를 사용하여 제품 상세 정보 페이지로 이동할 때
$route['product/(:num)'] = 'catalog/product/$1';
위의 코드는 ‘product/123’과 같은 URL에서 ‘catalog/product/123’과 같은 메소드로 매핑한다.
라우팅 재매핑
라우팅 규칙을 다시 매핑하려면 다음과 같이 설정한다.
$route['old-route'] = 'new-route';
예를 들어, 기존 경로를 새 경로로 다시 매핑하려면 위와 같이 설정한다.
라우트 정규표현식
CodeIgniter에서 정규표현식을 사용하여 고급 라우팅 규칙을 정의할 수 있다.
$route['(^[0-9].*)'] = 'pages/view/$1';
위의 코드는 숫자로 시작하는 모든 경로를 “pages/view/숫자” 메소드로 매핑한다.
이러한 예는 일반적인 라우팅 구성에 관한 것이며, 프로젝트 요구사항에 따라 더 복잡한 라우팅 규칙을 설정할 수 있다.
다음 controllers 폴더에 Welcome.php 파일이 있다. (컨트롤러의 파일명은 대문자로 시작한다.)
CodeIgniter의 주소체계는 http://호스트/컨트롤러/메서드로 되어있다.
routes.php에서 default_controller를 welcome.php로 지정하여 컨트롤러명은 알 수 있는데 실행되는 메서드명은 알 수 없다.
welcome 컨트롤러의 index메서드가 기본적으로 호출되기 떄문이다. 이것은 CodeIgniter의 규칙 중 하나이다.
$this->load->view('welcome_message');
뷰 파일을 로딩하라는 의미이며 application/views/welcome_message.php 파일이 로딩된다.
welcome_message.php
위의 부분을 아래와 같이 수정한다.
수정후 다시 localhost를 확인해보면 변경된걸 알 수 있다.