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




LIST

Copyright © 2014 visionboy.me All Right Reserved.