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>
相关推荐
10. **与框架的兼容性**:Smarty作为一个独立的模板引擎,可以与各种PHP框架无缝集成,如Laravel、Yii、CodeIgniter等。 在Smarty-3.1.29这个版本中,可能包含了一些bug修复、性能优化和新功能的添加,但具体更新...
13. **模板引擎**:虽然CodeIgniter不内置模板引擎,但手册会介绍如何集成第三方模板引擎,如Smarty或Twig。 14. **性能优化**:手册包含了一些性能提升技巧,如缓存管理和减少HTTP请求。 15. **用户指南快速目录...
11. **Smarty与其他PHP框架的集成**:Smarty可以很好地与诸如CodeIgniter、Laravel等PHP框架配合使用,手册会提供相关示例。 12. **调试与错误处理**:解释如何开启Smarty的调试模式,查看错误报告,以及解决常见的...
10. **最佳实践**:遵循CodeIgniter的最佳实践,如使用命名约定,编写注释,以及合理组织文件结构,可以使项目更易于理解和维护。 在"CodeIgniter-hit-Counter"这个项目中,你可以学习到如何在实际应用中集成和运用...
8. **Smarty与框架集成**:如果书籍涉及这一部分,会介绍如何将Smarty与常见的PHP框架(如Laravel, Symfony, CodeIgniter等)集成。 9. **实战项目**:通过实际案例,展示如何在项目中应用Smarty,包括从设计模板到...
CodeIgniter是一个基于PHP的轻量级Web应用框架,它为开发者提供了构建动态网站所需的工具和结构。...通过研究和学习这个项目,开发者不仅可以深入了解CodeIgniter,还能掌握构建线上商店所需的技术和最佳实践。
8. URI路由:CodeIgniter允许自定义URL结构,使其更符合SEO最佳实践,同时也提高了代码的可读性。 9. 数据库支持:CodeIgniter支持多种数据库系统,如MySQL、PostgreSQL、SQLite等,且提供了简单的Active Record类...
3. **ezsql与Smarty模板引擎的集成** - `ez_sql_with_smarty.html` 提示了ezsql可以与Smarty模板引擎结合使用,允许在模板中直接执行数据库查询,增强了模板的动态功能。 4. **文件结构与用途** - `ez_sql_help....
【标签】"PHP"表明该系统的主要技术栈是PHP,这意味着开发者可以利用PHP的生态系统,包括各种框架(如Laravel、Symfony或CodeIgniter)、数据库驱动(如MySQL)、模板引擎(如Twig或Smarty)以及大量可用的第三方库...
7. **模板引擎**:为了方便页面渲染和动态内容插入,可能会使用Twig或Smarty等模板引擎。 8. **单元测试与持续集成**:为了保证代码质量,项目可能包含PHPUnit等测试套件,配合Jenkins或Travis CI进行持续集成和...
虽然没有明确指出,但基于PHP的项目常常会采用如Laravel、Symfony或CodeIgniter等PHP框架,这些框架可以提高开发效率,提供预置的工具和最佳实践。 6. **模板引擎**: 可能使用了如Twig或Smarty这样的模板引擎,...
5. **框架应用**:可能会使用Laravel、Symfony或CodeIgniter等PHP框架,它们提供了基础架构和最佳实践,加快开发速度,减少重复工作。 6. **API集成**:可能与其他旅游服务提供商如地图API(Google Maps)、支付...
6. **模板引擎**:为了方便页面布局和设计,项目可能采用了Smarty或其他模板引擎,将业务逻辑与视图分离,使得前端设计更加灵活。 7. **权限控制**:考虑到网站的多用户性质,权限控制系统是必不可少的。可能采用了...
【PHP经典源码-中英文公司源码.rar】是一个包含PHP源码的压缩包,它很可能是用于学习、研究或实战...同时,这也是一种了解最佳实践和常见设计模式的好方式。然而,务必注意版权问题,确保在合法范围内使用和学习源码。
【标题】"PHP实例开发源码—ECJia到家(H5微商城) php版.zip"揭示了这个压缩包...通过研究和理解这些源代码,开发者可以提升自己的技能,了解实际项目中的最佳实践,并有可能自定义或扩展这个微商城系统以满足特定需求。
10. **安全性**:源码应考虑安全性问题,如防止SQL注入、XSS攻击,并遵循最佳安全实践,如使用预处理语句、CSRF令牌等。 11. **错误处理和日志记录**:良好的错误处理机制和日志记录是必备的,以便于调试和问题追踪...
7. **安全性**:讨论安全最佳实践,如输入验证、防止SQL注入、XSS防护等,以确保应用程序的安全。 8. **性能优化**:讲解如何通过缓存、代码优化、资源管理等手段提升PHP应用的性能。 9. **PHP与框架**:可能会...
4. **数据库集成**:网站可能集成了MySQL或其他关系型数据库,用于存储和管理宠物狗的信息、用户数据、交易记录等。PHP与数据库的交互通常通过SQL语句实现。 5. **模板引擎**:为了方便内容管理和页面渲染,可能会...
生活娱乐网站可能使用了某种PHP框架,如Laravel、CodeIgniter或Yii,这些框架能够简化开发过程,提供预设的架构和最佳实践。通过分析源码,我们可以了解如何利用框架来组织代码、处理HTTP请求、数据库操作和模板...
1. **MVC框架**:如Laravel、Symfony或CodeIgniter,这些可以帮助组织代码结构,提高可维护性和可扩展性。 2. **数据库管理**:可能使用MySQL或PDO(PHP Data Objects)进行数据存储和检索,实现商品、订单、用户...