CI 프레임 워 크 통합 Smarty 의 방법 분석
6274 단어 CI 프레임 워 크Smarty
CI 가 자체 적 으로 가지 고 있 는 템 플 릿 기능 이 편리 하지 않 기 때문에 사람들 은 보편적으로 Smarty 를 통합 하 는 방식 으로 CI 의 부족 함 을 보완 한다.
본인 은 인터넷 에서 많은 CI 통합 Smarty 의 튜 토리 얼 을 보 았 는데,우리 CI 포럼 안의 정수 게시 물 을 포함 합 니 다.
http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=10345。
스스로 이런 교과 과정 을 비교 해 보 았 습 니 다.저 는 아래 의 이 방안 이 모든 중에서 가장 우수 하 다 고 생각 합 니 다.여러분 께 강력 히 추천 합 니 다(물론 제 가 직접 채택 한 방안 이기 도 합 니 다)
출처:
http://www.cnmiss.cn/?p=261
원문 안의 일부 잘못 을 나 는 본문 에서 이미 수정 하 였 다.
다음은 제 가 더 우수 하 다 고 생각 하 는 이 유 를 말씀 드 리 겠 습 니 다.이 방안 과 우리 포럼 의 방안 을 비교 해 보면 이 방안 이 핵심 류 를 확대 한 것 을 발견 할 수 있 습 니 다.
Smarty 클래스 방법 assign 과 display 를 Ci 컨트롤 러 로 확장 하기 때문에 CI 에서 Smarty 를 사용 할 때 이렇게 사용 할 수 있 습 니 다.
public function index()
{
//$this->load->view('welcome_message');
$data['title'] = ' ';
$data['num'] = '123456789';
//$this->cismarty->assign('data',$data); //
$this->assign('data',$data);
$this->assign('tmp','hello');
//$this->cismarty->display('test.html'); //
$this->display('test.html');
}
핵심 컨트롤 러 류 에 대한 간단 한 확장 을 통 해 CI 에서 Smarty 를 사용 할 때 와 Smarty 를 직접 사용 하 는 용법 습관 이 같다 는 것 이 큰 장점 입 니 다.그리고 핵심 라 이브 러 리 의 확장 을 보면 이 글 쓴 이 가 CI 프레임 워 크 에 대한 이해 가 매우 좋다 는 것 을 알 수 있다.
이 글 에 따 르 면 저 는 Smaty 를 통합 하 는 데 성 공 했 을 뿐만 아니 라 CI 에 대한 이해 도 한층 강 화 했 습 니 다.
또한 이 방안 은 Smarty 의 프로필 을 CI 프레임 워 크 의 config 디 렉 터 리 에 두 었 고 이들 에 대해 모두 규범 적 으로 사용 되 었 습 니 다.
결국'CI 와 스 매 티 의 빈 틈 없 는 결합'이 이 뤄 졌 다.
다음은 구체 적 인 튜 토리 얼 입 니 다.
CI 버 전:2.1.4//
Smarty 버 전:Smarty-2.6.26//저 는 이 버 전 을 사 용 했 기 때문에 자신의 사용 습관 을 고려 하기 위해 최신 Smarty 버 전 을 사용 하지 않 았 습 니 다.확장 원 리 를 이해 하고 원 하 는 Smartry 버 전 을 선택 할 수 있 습 니 다.
1.해당 사이트 에 가서 Smarty 의 소스 패 키 지 를 다운로드 합 니 다./저 는 여기 Smarty-2.6.26 을 쓰 고 있 습 니 다.
2.소스 패키지 에 있 는 libs 폴 더 를 CI 프로젝트 디 렉 터 리 아래 libraries 폴 더 에 복사 하고 Smarty-2.6.26 로 이름 을 바 꿉 니 다./
3.프로젝트 디 렉 터 리 의 libraries 폴 더 에 새 파일 Cismarty.php 를 만 듭 니 다.그 내용 은 다음 과 같 습 니 다.
<?php
if(!defined('BASEPATH')) EXIT('No direct script asscess allowed');
require_once( APPPATH . 'libraries/Smarty-2.6.26/libs/Smarty.class.php' );
class Cismarty extends Smarty {
protected $ci;
public function __construct(){
$this->ci = & get_instance();
$this->ci->load->config('smarty');// smarty
//
$this->template_dir = $this->ci->config->item('template_dir');
$this->complie_dir = $this->ci->config->item('compile_dir');
$this->cache_dir = $this->ci->config->item('cache_dir');
$this->config_dir = $this->ci->config->item('config_dir');
$this->template_ext = $this->ci->config->item('template_ext');
$this->caching = $this->ci->config->item('caching');
$this->cache_lifetime = $this->ci->config->item('lefttime');
}
}
4.프로젝트 디 렉 터 리 의 config 폴 더 에 새 파일 smarty.php 파일 을 만 듭 니 다.그 내용 은 다음 과 같 습 니 다.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$config['theme'] = 'default';
$config['template_dir'] = APPPATH . 'views';
$config['compile_dir'] = FCPATH . 'templates_c';
$config['cache_dir'] = FCPATH . 'cache';
$config['config_dir'] = FCPATH . 'configs';
$config['template_ext'] = '.html';
$config['caching'] = false;
$config['lefttime'] = 60;
5.입구 파일 이 있 는 디 렉 터 리 에 새 폴 더 templatesc、cache、configs;6.프로젝트 디 렉 터 리 아래 config 디 렉 터 리 에서 autoload.php 파일 찾기
이 항목 을 수정 하 다
$autoload['libraries'] = array('Cismarty');
// : , ,
7.프로젝트 디 렉 터 리 의 core 폴 더 에 새 파일 MYController.php 내용 은 다음 과 같 습 니 다./핵심 제어 클래스 확장
<?php if (!defined('BASEPATH')) exit('No direct access allowed.');
class MY_Controller extends CI_Controller { //
public function __construct() {
parent::__construct();
}
public function assign($key,$val) {
$this->cismarty->assign($key,$val);
}
public function display($html) {
$this->cismarty->display($html);
}
}
배치 완료사용 방법 인 스 턴 스:
컨트롤 러 에서 다음 과 같이:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends MY_Controller { //
public function index()
{
//$this->load->view('welcome_message');
$data['title'] = ' ';
$data['num'] = '123456789';
//$this->cismarty->assign('data',$data); //
$this->assign('data',$data);
$this->assign('tmp','hello');
//$this->cismarty->display('test.html'); //
$this->display('test.html');
}
}
다음 보기:프로젝트 디 렉 터 리 의 views 아래 폴 더 를 시도 합 니 다.새 파일 test.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{ $test.title}</title> //( <title>{$test['title']}</title>, , Smarty )
<style type="text/css">
</style>
</head>
<body>
{$test.num|md5} //
<br>
{$tmp}
</body>
</html>
더 많은 CodeIgniter 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.본 고 에서 말 한 것 이 여러분 이 CodeIgniter 프레임 워 크 를 바탕 으로 하 는 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
CI 프레임 워 크 인증 코드 CAPTCHA 보조 함수 용법 인 스 턴 스본 논문 의 사례 는 CI 프레임 워 크 인증 코드 CAPTCHA 보조 함수 의 용법 을 설명 하여 여러분 께 참고 하도록 공유 합 니 다.구체 적 으로 다음 과 같다. CAPTCHA 보조 함 수 를 사용 하면 인증...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.