`

CodeIgniter集成Smarty的最佳方式

 
阅读更多

1、到相应站点下载Smarty的源码包;
2、将源码包里面的libs文件夹copy到CI的项目目录下面的libraries文件夹下,并重命名为Smarty
3、在项目目录的libraries文件夹内新建文件Cismarty.php,里面的内容如下:

<?php
if(!defined('BASEPATH')) EXIT('No direct script asscess allowed');
require_once( APPPATH . 'libraries/Smarty/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、在入口文件所在目录新建文件夹templates_c、cache、configs;
6、在项目目录下面的config目录中找到autoload.php文件
修改这项

 

$autoload['libraries'] = array('Cismarty');//目的是:让系统运行时,自动加载,不用认为的在控制器中手动加载

 

7、在项目目录的core文件夹中新建文件MY_Controller.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>

分享到:
评论

相关推荐

    smarty-3.1.29

    10. **与框架的兼容性**:Smarty作为一个独立的模板引擎,可以与各种PHP框架无缝集成,如Laravel、Yii、CodeIgniter等。 在Smarty-3.1.29这个版本中,可能包含了一些bug修复、性能优化和新功能的添加,但具体更新...

    CodeIgniter2.1.4中文手册(HTML离线版)

    13. **模板引擎**:虽然CodeIgniter不内置模板引擎,但手册会介绍如何集成第三方模板引擎,如Smarty或Twig。 14. **性能优化**:手册包含了一些性能提升技巧,如缓存管理和减少HTTP请求。 15. **用户指南快速目录...

    smarty完全中文手册

    11. **Smarty与其他PHP框架的集成**:Smarty可以很好地与诸如CodeIgniter、Laravel等PHP框架配合使用,手册会提供相关示例。 12. **调试与错误处理**:解释如何开启Smarty的调试模式,查看错误报告,以及解决常见的...

    CodeIgniter-hit-Counter_codeignitermvc_

    10. **最佳实践**:遵循CodeIgniter的最佳实践,如使用命名约定,编写注释,以及合理组织文件结构,可以使项目更易于理解和维护。 在"CodeIgniter-hit-Counter"这个项目中,你可以学习到如何在实际应用中集成和运用...

    PHP Template Programming and Applications

    8. **Smarty与框架集成**:如果书籍涉及这一部分,会介绍如何将Smarty与常见的PHP框架(如Laravel, Symfony, CodeIgniter等)集成。 9. **实战项目**:通过实际案例,展示如何在项目中应用Smarty,包括从设计模板到...

    网上药房商店Codeigniter

    CodeIgniter是一个基于PHP的轻量级Web应用框架,它为开发者提供了构建动态网站所需的工具和结构。...通过研究和学习这个项目,开发者不仅可以深入了解CodeIgniter,还能掌握构建线上商店所需的技术和最佳实践。

    基于PHP的CodeIgniterphp开源框架源码.zip

    8. URI路由:CodeIgniter允许自定义URL结构,使其更符合SEO最佳实践,同时也提高了代码的可读性。 9. 数据库支持:CodeIgniter支持多种数据库系统,如MySQL、PostgreSQL、SQLite等,且提供了简单的Active Record类...

    PHP ezsql_2.13

    3. **ezsql与Smarty模板引擎的集成** - `ez_sql_with_smarty.html` 提示了ezsql可以与Smarty模板引擎结合使用,允许在模板中直接执行数据库查询,增强了模板的动态功能。 4. **文件结构与用途** - `ez_sql_help....

    基于PHP的MYUCMS单用户商城系统 PHP源码.zip

    【标签】"PHP"表明该系统的主要技术栈是PHP,这意味着开发者可以利用PHP的生态系统,包括各种框架(如Laravel、Symfony或CodeIgniter)、数据库驱动(如MySQL)、模板引擎(如Twig或Smarty)以及大量可用的第三方库...

    基于PHP的最新精仿阿里巴巴B2B行业门户.zip

    7. **模板引擎**:为了方便页面渲染和动态内容插入,可能会使用Twig或Smarty等模板引擎。 8. **单元测试与持续集成**:为了保证代码质量,项目可能包含PHPUnit等测试套件,配合Jenkins或Travis CI进行持续集成和...

    基于PHP的江湖装企营销网系统源码 v1.0.zip

    虽然没有明确指出,但基于PHP的项目常常会采用如Laravel、Symfony或CodeIgniter等PHP框架,这些框架可以提高开发效率,提供预置的工具和最佳实践。 6. **模板引擎**: 可能使用了如Twig或Smarty这样的模板引擎,...

    基于PHP的旅游信息综合门户网源码.zip

    5. **框架应用**:可能会使用Laravel、Symfony或CodeIgniter等PHP框架,它们提供了基础架构和最佳实践,加快开发速度,减少重复工作。 6. **API集成**:可能与其他旅游服务提供商如地图API(Google Maps)、支付...

    PHP实例开发源码-房哨百分百开源房产系统网站.zip

    6. **模板引擎**:为了方便页面布局和设计,项目可能采用了Smarty或其他模板引擎,将业务逻辑与视图分离,使得前端设计更加灵活。 7. **权限控制**:考虑到网站的多用户性质,权限控制系统是必不可少的。可能采用了...

    PHP经典源码-中英文公司源码.rar

    【PHP经典源码-中英文公司源码.rar】是一个包含PHP源码的压缩包,它很可能是用于学习、研究或实战...同时,这也是一种了解最佳实践和常见设计模式的好方式。然而,务必注意版权问题,确保在合法范围内使用和学习源码。

    PHP实例开发源码—ECJia到家(H5微商城) php版.zip

    【标题】"PHP实例开发源码—ECJia到家(H5微商城) php版.zip"揭示了这个压缩包...通过研究和理解这些源代码,开发者可以提升自己的技能,了解实际项目中的最佳实践,并有可能自定义或扩展这个微商城系统以满足特定需求。

    大气智能家居智能影音类企业通用模板PHP源码.zip

    10. **安全性**:源码应考虑安全性问题,如防止SQL注入、XSS攻击,并遵循最佳安全实践,如使用预处理语句、CSRF令牌等。 11. **错误处理和日志记录**:良好的错误处理机制和日志记录是必备的,以便于调试和问题追踪...

    PDF-ProfessionalPHP6-英文版.rar

    7. **安全性**:讨论安全最佳实践,如输入验证、防止SQL注入、XSS防护等,以确保应用程序的安全。 8. **性能优化**:讲解如何通过缓存、代码优化、资源管理等手段提升PHP应用的性能。 9. **PHP与框架**:可能会...

    4169灰色漂亮大气的宠物狗市场整站模板5448_企业网站模板PHP整站源码.zip.7z

    4. **数据库集成**:网站可能集成了MySQL或其他关系型数据库,用于存储和管理宠物狗的信息、用户数据、交易记录等。PHP与数据库的交互通常通过SQL语句实现。 5. **模板引擎**:为了方便内容管理和页面渲染,可能会...

    基于PHP的生活娱乐网站目录源码 php版.zip

    生活娱乐网站可能使用了某种PHP框架,如Laravel、CodeIgniter或Yii,这些框架能够简化开发过程,提供预设的架构和最佳实践。通过分析源码,我们可以了解如何利用框架来组织代码、处理HTTP请求、数据库操作和模板...

    基于PHP的如意雅阁o2oMall集市 php版.zip

    1. **MVC框架**:如Laravel、Symfony或CodeIgniter,这些可以帮助组织代码结构,提高可维护性和可扩展性。 2. **数据库管理**:可能使用MySQL或PDO(PHP Data Objects)进行数据存储和检索,实现商品、订单、用户...

Global site tag (gtag.js) - Google Analytics