codeigniter 에 Template_ 적용
Posted by Albert 4085Day 2Hour 7Min 15Sec ago [2014-02-14]
좀 늦은 감이 있지만 MVC 모델로 대표적인 codeigniter 와 템플릿의 대표주자격인 Template_ 함께 사용한 웹페이지 구축을 강의 하려고 합니다.
그 첫번째로 세팅편을 설명 드리도록 하겠습니다.
codeigniter 와 template_ 를 각각의 사이트에서 다운로드 받습니다.
codeigniter
http://www.codeigniter-kr.org/user_guide/installation/downloads.html
template_
http://www.xtac.net/download/
설치 참조 : http://www.codeigniter-kr.org/user_guide/installation/index.html
1.다운받은 파일의 압축을 푼다.
2.CodeIgniter 를 서버에 업로드한다. 일반적으로 index.php 을 홈페이지 루트에 오도록 해야 한다.
3.application/config/config.php 파일을 열어 기반url(base URL)을 세팅한다. 암호화나 세션을 사용하려면 암호키(encryption key)를 설정한다.
4.데이터베이스를 사용한다면 application/config/database.php 파일을 열어서 데이터베이스 정보를 세팅한다.
system 폴더의 이름을 변경하여 보안을 강화할수 있습니다. 만약 변경한다면 반드시 메인 index.php 파일을 열어 맨위에 있는 $system_folder 변수를 새로운 이름으로 바꾸어줘야 합니다.
끝 !
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
다음과 같은 파일을 system/application/controllers/test.php을 만들자
<?php
class Test extends Controller {
public function index() {
echo "welcom to CodeIgniter";
}
}
?>
url상에서 아래와 같이 타이핑한다.
http://codeigniter.shop-wiz.com/index.php/test/
브라우저 상에서 아래와 같이 출력되면 정상적이다.
welcom to CodeIgniter
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<?php
class Test extends Controller {
public function index() {
echo "welcom to CodeIgniter";
}
public function func_ex(){
echo "welcom to CodeIgniter > func_ex";
}
}
?>
url상에서 아래와 같이 타이핑한다.
http://codeigniter.shop-wiz.com/index.php/test/func_ex
브라우저 상에서 아래와 같이 출력되면 정상적이다.
welcom to CodeIgniter > func_ex
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
URI Segments 를 함수에 전달해보자
<?php
class Test extends Controller {
public function index() {
echo "welcom to CodeIgniter";
}
public function func_ex($name, $age){
echo "name:$name, age:$age";
}
}
?>
출력 : name:young, age:old
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
새그먼트 없이 사이트의 루트 url 만 요청될때 실행될 기본 컨트롤러를 지정할 수 있습니다.
기본 컨트롤러를 지정하려면application/config/routes.php 파일의 아래 변수에 세팅합니다.
$route['default_controller'] = 'Main';
기타 사항은 http://www.codeigniter-kr.org/user_guide/general/controllers.html 을 참조 바랍니다.
중요한 사항이므로 반드시 숙지 하시기 바랍니다.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
이제는 url 상의 index.php를 제외하고 아래와 같이 입력한다.
http://codeigniter.shop-wiz.com/test/func_ex
[an error occurred while processing this directive] 요청한 URL을 이 서버에서 찾을 수 없습니다. URL을 직접 입력하셨다면 바르게 입력하셨는지 확인하시고 다시 시도하시기 바랍니다. [an error occurred while processing this directive]
허걱 에러다.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
이문제를 해결하다.
-rw-rw-rw- 1 shopwiz shopwiz 317 Apr 7 18:01 .htaccess 파일을 아래와 같이 입력한다.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/img/(.*)$
RewriteCond %{REQUEST_URI} !^/js/(.*)$
RewriteCond %{REQUEST_URI} !^/css/(.*)$
RewriteCond %{REQUEST_URI} !^/config/(.*)$
RewriteRule ^(.*)$ /index.php/$1 [L]
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
다시 한번 입력해 보자
http://codeigniter.shop-wiz.com/test/func_ex
다음과 같이 정상출력되면 정상적으로 세팅 된것이다.
welcom to CodeIgniter > func_ex
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
이제는 Template_를 codeigniter와 접목할 단계입니다.
Step 1 : 압축을 푼 파일에서
tpl_plugin
Template_.class.php
Template_.compiler.php
파일을 /system/application/libraries/에 올려둡니다.
Step 2 :
Template_.class.php --> Template_.php 로 이름을 변경합니다.
Step 3 :
template_의 경로를 수정해 보자
./system/application/libraries/Template_.class.php 파일을 오픈후
아래와 같이 자기의 경로에 맞게 고쳐보자
var $compile_dir = '_compile';
--> var $compile_dir = "./system/template/_compile";
변경후 template/_compile 에 쓰기 수정권한 부여(707)
var $template_dir = '_template';
--> var $template_dir = './system/application/views';
var $cache_dir = '_cache';
--> var $cache_dir = "./system/template/_cache";
Step4 :
CodeIgniter 의 옵션을 변경해보자
./system/application/config/autoload.php (많이 쓰는 것들은 자동 로딩되게)
아래처럼 database 및 template를 사용하게 정의
$autoload['libraries'] = array();
-->$autoload['libraries'] = array('template_');
아래와 같이 코딩하여 실행결과를 알아보자
./system/application/controllers/test.php
<?php
class Test extends Controller {
public function Test(){
parent::Controller();
}
public function template(){
$this->template_->define("html", "test.php");
$this->template_->print_("html");
}
}
?>
./system/application/views/test.php
Template_ 실현
상기처럼 두개의 파일을 작성후 http://codeigniter.shop-wiz.com/test/template/ 을 url 입력창에 넣어보자
짜잔....
Template_ 실현
상기처럼 나타나면 완성
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
모든 것이 정상적으로 세팅되었습니다.
출처: http://www.shop-wiz.com/board/main/view/root/php4/82/0/1