为 CodeIgniter 增加第三方类库-smarty

CodeIgniter辅助之第三方类库third_party用法分析 主要介绍了CodeIgniter辅助之第三方类库third_party用法,以CI集成Twig模版为例分析了CodeIgniter集成第三方类库的实现步骤与相关技巧,需要的朋友可以参考下 立即下载

 小试一段时间的CodeIgniter,发现同Zend Framework一样,自带的VIEW用起来很是不方便。于是突然想到,公司的Zend Framework的view都被换成smarty,再者,smarty也用习惯了。就试想CodeIgniter 能否也能加载第三方类库呢。

google一下,有几篇文章有介绍了。找到了官方站上的manual也有说明,按照manual的介绍。开工

 

首先,把smarty的目录copy至 application/libraries目录中,在libraries根目录建立一个文件

文件名就是:MySmarty.php

为遵循CodeIgniter的标准,类的命名格式同样依照CodeIgniter给的标准命名

 

  1. require "Smarty/Smarty.class.php";
  2. class MySmarty {
  3.     public $s;
  4.     
  5.     public function __construct(){
  6.         self::smartyConfig();
  7.     }
  8.     
  9.     private function smartyConfig(){
  10.         //$basedir = dirname(__FILE__);
  11.         $basedir = $_SERVER["DOCUMENT_ROOT"]."/system/application";
  12.         
  13.         $this->s = new Smarty();
  14.         $this->s->template_dir = $basedir."/templates/";
  15.         $this->s->compile_dir  = $basedir."/templates_c/";
  16.         $this->s->config_dir   = $basedir."/configs/";
  17.         $this->s->cache_dir    = $basedir."/cache/";
  18.         $this->s->left_delimiter = "{*";
  19.         $this->s->right_delimiter = "*}";
  20.         
  21.         $this->s->debugging = false;
  22.         $this->s->cache_lifetime=30;
  23.     }
  24.     
  25.     public function getTempDir(){
  26.         return $this->s->template_dir;
  27.     }
  28.     
  29. }

google出来的几篇文章用当前类MySmarty继承的方式配置,而我稍改动了一下。在MySmarty中使用$s的属性来引用smarty的对象。接下来就是smarty基本的配置了。配置完成后到appliaction文件夹中创建两个目录用于存放模板和模板缓存

 

第二步:

在application/controllers中创建一个控制器,文件名为car.php

 

  1. class Car extends Controller {
  2.     
  3.     public function __construct(){
  4.         parent::Controller();
  5.         $this->load->library("mysmarty");
  6.     }
  7.     
  8.     public function index(){
  9.         $cc = new stdclass;
  10.         
  11.         $cc->dd[] = (object) array("c"=>"神经病");
  12.         $cc->dd[] = (object) array("c"=>"疯子");
  13.         
  14.         //$this->load->view("mivec/car",$cc); //Codeigniter 自带的view
  15.         echo $this->mysmarty->getTempDir();
  16.         $this->mysmarty->s->assign("mivec",$cc->dd);//第三方LIB smarty
  17.         $this->mysmarty->s->display("mivec/car.html");
  18.     }
  19. }

类:Car中的构造函数是覆盖CodeIgniter中Controller的构造函数,以便于我们初始化一些东西;

  1. $this->load->library("mysmarty");

这段标识加载类:MySmarty。manual中说加载类的时候是部分大小写的

  1. $this->mysmarty->s->assign("mivec",$cc->dd);
  2. $this->mysmarty->s->display("mivec/car.html");

已经加载了 mysmarty 类后就可以用mysmarty中的$s属性指向smarty了。跟常规的用法是没区别的

最后到templates中建立对应的模板文件。打开浏览器测试一下。通过了

参考资料:http://www.codeigniter.org.cn/user_guide/general/creating_libraries.html

硬件测试有哪些? 硬件单元测试(UT)是验证电路功能与可靠性的关键环节,主要分为电源测试和信号测试两大模块。电源测试需验证输入电压范围、高低压极限、短路保护等功能,确保供电稳定性;信号测试则聚焦时钟、总线、存储等接口的时序与完整性。测试要求统一标准、可追溯数据、问题闭环处理,通过开发与测试协同确保质量。规范的单元测试能有效降低后期集成风险,提升产品可靠性,其核心始终是在最小单元上确保稳健性,为系统级可靠性奠定基础。 阅读详情

相关推荐

HAL库移植实战:解决‘HAL_StatusTypeDef‘未定义报错的3个关键步骤

本文针对STM32开发中从标准库向HAL库移植时常见的'HAL_StatusTypeDef'未定义报错,提供了三个关键解决步骤:首先确保正确包含头文件入口,其次检查并配置模块使能宏,最后注意避免与标准库的同名结构体混用。文章通过实战案例解析了HAL库的模块化设计理念,帮助开发者高效解决混合编程中的编译问题。

book8的博客 207

Codeigniter 自动加载第三方类

上一篇日志谈到为Codeigniter 配置第三方类库,写了几个文件以后觉得每次写类的构造函数时需要$this->load->library("class");感觉这样很繁琐,就想到应该有配置能够给Codeigniter 自动加载一些类库google一下。从官网的manual得知在config/autoload.php可配置自动加载的类库、模型等/*| ----

ApaChe.V'sPace 2410

java爬虫(爬取银行理财数据)

import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; imp

ROCK 2490

php$paty,CodeIgniter辅助之第三方类库third_party用法分析

本文实例分析了CodeIgniter辅助之第三方类库third_party用法。分享给大家供大家参考,具体如下:third_party用来存放系统中引入的第三方类库,类库通常提供的功能比较丰富,相应的学习成本也要高些,系统中能用到功能有限,所以建议在引入类库时进行适当的封装,让系统中更方便使用,其他人使用时只需关注扩展的方法而无法关注具体的实现。以CI集成Twig模版为例吧。首先需要下载Twig类...

weixin_39636164的博客 671

STM32电机库(ST-MC-Workbench)实战指南——三电阻电流采样电路参数配置详解

本文详细解析了STM32电机库(ST-MC-Workbench)中三电阻电流采样电路的参数配置方法,涵盖电阻选型、放大增益计算、滤波时间优化等关键步骤。通过实战案例和调试技巧,帮助工程师快速掌握电流采样技术,提升电机控制系统的精度与稳定性。特别针对ST-MC-Workbench界面参数设置提供了详细指导。

weixin_29186249的博客 505

机器学习【学校智慧食堂及其应用】

本文主要介绍机器学习【智慧食堂及其应用】

qq_201729558 2571

CI框架调用第三方类库

public function index() { //调用第三方类库 /* * 注意事项: * library 里面调用的名字首字母必须是 大写 * 使用它的方法时 使用小写 */ $this->load->library('Snoopy'); $url = "http://news.hao12...

weixin_33962923的博客 982

RK3588开发板实战:从零开始移植Ubuntu 24.04(讯为SDK版)

本文详细介绍了如何在RK3588开发板上从零开始移植Ubuntu 24.04系统(讯为SDK版),涵盖开发环境准备、SDK解析、根文件系统定制、驱动适配、系统集成与烧录等全流程。通过实战案例,帮助开发者快速掌握RK3588开发板的系统移植技巧,适用于嵌入式开发与定制化Linux系统构建。

sand8的博客 436

php codeIgniter 框架引入第三方类库文件

在application/helpers下创建一个php文件,文件名取为mytest_helper.php,文件名必须以_helper结尾。<?php/** * Created by PhpStorm. * Date: 2017/2/8 * Time: 21:08 * @param $data * @return string */function test_helper($data){ ...

程序员写的技术 FAQ 和杂文 3034

京东前端200道面试题及参考答案(中)

前端优化是“提升用户体验、降低资源消耗”的核心手段,需围绕“用户感知的性能指标”(如页面加载速度、交互流畅度)展开,覆盖加载优化、渲染优化、代码优化、网络优化、缓存优化、性能监控六大维度,每个维度下有具体可落地的措施,同时需结合项目实际场景(如单页应用、电商首页)选择优化方案。分页组件需通过props接收“数据总量、当前页、每页条数”等基础信息,通过emit触发“页码切换、每页条数变化”的回调(供父组件请求对应页数据),同时定义默认值确保兼容性。核心Props与Emit设计<template>

大模型大数据攻城狮的专栏 590

真随机数与伪随机数

前面我们学习了LFSR,这个玩意落地到具体的应用是什么呢?没错是寄存器,这里在网络找到了几个回答,这里做个记录,下面一起来学习一下吧。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1062

Codeigniter整合smarty

smarty的模板机制很强大,一般情况下CI无需整合其他模板标签,因为PHP本身就是一种标签,简单易用。codeigniter整合smarty教程(我用的都是最新版本)如下: 第一步:下载codeigniter最新版本:http://codeigniter.org.cn/downloads 第二步:下载smarty最新版本:http://www.smarty.net/download 第三步

u011740841的专栏 508

关于cefsharp访问iqiyi.com显示403 Forbidden解决办法(2种方法)

cefsharp不加UserAgent的默认值为 (注意126是当前cefsharp的版本)Edge浏览器的UserAgent 为 (edge的版本是128的)说明根据浏览器的不同,UserAgent可能不太一样。

无线智能模块 可视DIY智能专家 1319

在 CodeIgniter 中使用 smarty

在CI中要集成第三方的工具,就需要写自己的库。官方手册有详细的介绍。 要写自己的库,就需要写两个文件,一个是在application/init下面的init_myclass.php文件(如果没有init目录,自己创建)。另外一个就是在application/libraries目录下创建myclass.php文件。 这里myclass是你的类名。一些规则看手册就好了。 1)在applicati...

justJavaC的专栏 286

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

php smarty ci,CodeIgniter整合Smarty的方法详解

本文实例讲述了CodeIgniter整合Smarty的方法。分享给大家供大家参考,具体如下:CI3.0.2发布后感觉模板类还是不怎么好用,而且不能编译。Smarty功能强大,用习惯了Smarty标签,一般难以放弃,而且,是可以编译文件执行,速度快,我们可以把它们整合使用,弥补CI的模板功能的不足。我们整合使用的是CI版本3.0.3及 Smarty版本3.1.27。下面描述整合过程。1、下载smar...

weixin_42353053的博客 211

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

codeIgniter集成smarty

这几天看了看codeIgniter 挺不错的  mvc模式 之前没用过 这次打算尝试下但是它的view感觉不如smarty 所以网上找了些帖子 把smarty集成进来用 1.下载smarty 解压到ci的libraries目录 如: ci/application/libraries/Smarty-2.6.202.编写Mysmarty.php 自己的类库文件代码如下:require "Smarty-

斗战圣Q 4608

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

CodeIgniter增加widget功能

在网页上,有些复杂而独立的功能需要经常使用。 以前的方法是使用common function的方法达到复用的效果。

God's blog 2980

CodeIgniter整合smarty

CodeIgniter整合smarty,实现view与代码分离(根目录平级)iapp/libraries/CISmarty.php

ihefe的专栏 1840

php smarty框架案例,CodeIgniter框架实现的整合Smarty引擎DEMO示例

本文实例讲述了CodeIgniter框架实现的整合Smarty引擎。分享给大家供大家参考,具体如下:Smarty的模板机制很强大,一般情况下CI框架无需整合其他模板标签,因为PHP本身就是一种标签,简单易用。Codeigniter整合Smarty教程(我用的都是最新版本)如下:第一步:下载Codeigniter最新版本:CodeIgniter框架源码第二步:下载Smarty最新版本:Smarty引...

weixin_42109598的博客 213

CodeIgniter,smarty的使用

lang->load('error', 'cn'); echo $this->lang->line('language_key'); } function index() { // $this->output->cache(1); $this->load->library('cismarty'); $dir=array( 'template_dir' => ROOT . '/template/', 'compile_dir' => ROOT . '/templa

ihefe的专栏 1270

codeigniter linux url 大写,CodeIgniter中使用Smarty3基本配置

一、创建Smarty类库1.将smarty的libs文件复制到libraries下(这里我重命名为smarty)2.新建Cismarty.php文件。(符合文件规范,文件名的首字母和class名的首字母大写,但是控制器引用加载时,类名/文件名不需要大写)Cismarty.phpif (!defined('BASEPATH')) exit('No direct script access allow...

weixin_39639286的博客 121

Codeigniter使用Smarty模板引擎之安装方法

一、引言 最近因为项

ForeverNull的专栏 1595

CodeIgniter集成Smarty

参考网站:http://www.cnblogs.com/meteoric_cry/archive/2012/07/18/2597191.html CodeIgniter是一款很优秀的轻量级MVC框架,而Smarty是目前最流行的php模板框架。两者配合起来使用,加快开发效率。   第一步:安装CodeIgniter 点击立即下载最新版本的Zip包>> 解压后,

wzm112的专栏 1001

Codeigniter轻松整合smarty

smarty的模板机制很强大,一般情况下CI无需整合其他模板标签,因为PHP本身就是一种标签,简单易用。codeigniter整合smarty教程(我用的都是最新版本)如下: 第一步:下载codeigniter最新版本:http://codeigniter.org.cn/downloads 第二步:下载smarty最新版本:http://www.smarty.net/download 第三步

博客小主 429

CodeIgniter支持smarty,并配置支持layout

CI整合smarty,并在smarty::display基础上增加layout支持

God's blog 3770

php smarty restful,CodeIgniter2.1.3整合smarty3.1.12

一、程序下载下载CodeIgniter2.1.3(以下简称CI)与smarty3.1.12二、安装CI解压CI至网站(本次网站测试地址为http://local.ci.com)根目录下面,安装成功后会出现以下内容三、整合CI与smarty1、解压smarty压缩包,拷贝libs至libraries目录下并改名为smarty2、在libraries目录下新建smarty.php,添加以下内容if(!...

weixin_33172728的博客 140
上一篇: 小试CodeIgniter
下一篇: Codeigniter 自动加载第三方类
stefenjun
博客等级 码龄23年 4粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值