文档章节

Smarty3结合MVC进行使用

PHer
 PHer
发布于 2014/06/18 10:28
字数 469
阅读 636
收藏 2
点赞 0
评论 0

在MVC框架中,通常我们将Smarty模板对象创建在父类控制器(Controller)中.通过实例化得到smarty对象,供子类使用.

在初始文件init.php中有个我们定义的自动加载函数。然而,smarty在自己内部也定义了一个自动加载函数.

当我们实例化某个对象实例的时候,程序应该走哪个自动加载函数呢?

关于自动加载的分析:

    ①实现PHP内部预保留的一个函数

        

function __autoload($classname){
    if(in_array($classname,$array)){
        include $classname.".class.php";    
    }
}

    ②定义一个函数,然后通过注册,使其成为自动加载函数   

    注册自动加载函数:spl_autoload_register(callback $autoloadfunction);

    

function Mydefineautoload($classname){
    if(in_array($classname,$array)){
        include $classname.".class.php";    
    }
}
spl_autoload_register("Mydefineautoload");

    ③将方法注册成为一个自动加载函数

class  bookstore{
    spl_autoload_register(array('bookstore','defineautoload'));
    //使用数组,第一个元素代表哪个类,第二个元素表示需要被注册的方法,其方法必须是个静态方法
    public static function defineautoload($classname){
        if(in_array($classname,$array)){
        include $classname.".class.php";    
        }
    }
}
//如果在外边
spl_autoload_register("bookstore::defineautoload");

上面我们总结了三种方式来定义自动加载,那如果在程序中既有__autoload()又有我们自己注册的自动加载函数

那程序会走哪个自动加载函数呢?

这里有一个优先级的问题:

                ①注册的自动加载函数或者方法,其优先级要比__autoload()的优先级要高

                ②对于注册的自动加载函数或者方法,其优先级都是平级,无先后之分,程序会走两个注册的自动加载方法

spl_autoload_register可以提高访问级别

smarty在项目中使用需要注意:

    一  处理好spl_autoload_register

    二  模板通过smarty来使用

    三  在父类里边把smarty实例化好

© 著作权归作者所有

共有 人打赏支持
PHer
粉丝 4
博文 118
码字总数 38443
作品 0
成都
程序员
osadmin 开源管理后台 v2.0.0 发布

增加自定义模块图标 重大升级:osadmin使用的模板引擎smarty从2.x升级到3.x,目前使用的是3.1.15. 从1.x升级到2.x基本需要全部覆盖,smarty2和smarty3的语法等功能不太相同,smarty3更强大。...

somewhereyu ⋅ 2013/10/21 ⋅ 20

smarty模板文件去回车和空行,让文件变的小一点

smarty是一款优秀的模板引擎,不仅可以自定义方法,还要以进行页面编译缓存,功能相当完美。 之前同事,问我smarty里模板文件可不可以把模板源文件去除一些没必要的空格和回车了。 请看下面的...

lock-li ⋅ 2016/04/26 ⋅ 0

smarty3 对象属性赋值问题

用了smarty3, 好像不能使用{$object->property=xxx}方式给对象的属性赋值。请问下如何给注册了smarty模板变量的对象属性赋值呢? {$var=xxx}又可以,郁闷smarty太多限制了...

callmez ⋅ 2013/02/10 ⋅ 4

smarty调用php中的方法

smarty2、smarty3都支持此用法本人已测试 HTML {$Name|get_name} PHP function get_name($name) { } HTML {$Name|get_name:'zh'} PHP function get_name($name, $lang) { }......

柏新星 ⋅ 2013/09/11 ⋅ 0

smarty3 模板问题

smarty3 模板中代码 输出后的代码为 这样不能显示图片 ,何解?

AaronW ⋅ 2014/09/14 ⋅ 2

SpeedPHP 3.1 发布

SpeedPHP 3.1.66是SpeedPHP 3.0正式版的增强版本,对SAE(新浪云计算平台)、新的Smarty 3等有着良好的支持。并增强和改进了多项功能。 下载地址:http://speedphp.com/download (有UTF8、G...

红薯 ⋅ 2011/01/31 ⋅ 1

用Struts建立MVC应用的介绍【转】

Model 1 和Model 2简介 我们在开发Web应用时经常提到的一个概念是Model 1/Model 2,那么到底它是什么意思呢?其实它是对采用JSP技术构成Web应用的不同模型的描述。下面对这个概念做一个简单的...

磊神Ray ⋅ 2011/09/05 ⋅ 0

基于MVC4+EasyUI的Web开发框架形成之旅--总体介绍

最近花了很多时间在重构和进一步提炼Winform开发框架的工作上,加上时不时有一些项目的开发工作,我博客里面介绍Web开发框架的文章比较少,其实以前在单位工作,80%的时间是做Web开发的,很早...

walb呀 ⋅ 2017/12/04 ⋅ 0

extjs4之mvc架构

web客户端程序总是很难组织和维护,当越来越多的开发人员和功能加入到当前项目时,会发现项目正在慢慢脱离你的控制,ExtJS4用新的mvc架构使得代码管理以及编写都变的相对简单。在这篇博文里,...

赵世传 ⋅ 2012/05/17 ⋅ 0

谈谈MVC与微信

最近被问到一个问题,"用mvc谈谈微信的架构设计",下面是我的总结 1、对MVC的理解 mvc指的是模型(M—Module),视图(View),控制器(Control)。一般情况下,M指一个项目的存储结构,存储数据模型...

franos ⋅ 2016/02/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

sbt网络问题解决方案

http://dblab.xmu.edu.cn/blog/maven-network-problem/

狐狸老侠 ⋅ 10分钟前 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 54分钟前 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 59分钟前 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

Spring clound 组件

Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类。 润物无声,融合在每个微服务中、依赖其它组件并为其提供服务。 Ribbon,客户端负载均衡,特性有区域亲和、重试机制。...

英雄有梦没死就别停 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部