命名空间namespace、smarty使用(视图分离,MVC)、smarty模板语法、smarty缓存、MVC模式
一、命名空间:namespace
命名空间 可以理解为逻辑上的使用,为了防止重名 namespace :关键字
加载:require_once();//加载一次 include_once()
申明命名空间注意:名称空间一定是在最顶部 在他上面不能有任何内容,名称空间申明不能写在类的内部
use App\Stu; 引入,导入 名称空间\引入类名 as:取别名
二、smarty使用
smarty是一个使用php写出来的模板引擎,拥有独立简单的模板语法,它实现了逻辑代码与模板的分离,把原本HTML与PHP代码混杂模板转化为smarty模板,其目的就是要使PHP程序员与前端人员分离,其简单的语法也可参与到模板套嵌的工作中,让PHP专注于后台逻辑开发。
smarty 常用属性、方法:
设置视图分离模板的路径: template_dir("视图分离模板的路径");
设置存放smarty编译文件的路径: compile_dir("存放smarty编译文件的路径");
模板加载: display("模板路径【相对路径】");
用来传递参数: assign("标签名",值);
设置单独的缓存时间: caching=2; cache_lifetime=200;//单位秒
设置两个备用属性: left_delimiter("<{") right_delimiter("}>"); 设置后模板显示<{$标签名}>
注释: {*注释内容*}
变量输出(默认,未设置备用属性) {$var}
加载模板: {include file="模板地址"}
smarty函数使用: {函数名 参数1=‘值1’ 参数2=‘值2’}
循环列表:
2版本: {foreach from $result key= k item = v}
{$v}
{/foreach}
3版本:{foreach $result $k=>$v}
{$v}
{/foreach}
变量调节器
{$v.title|truncate:10:"...":true}
{字符串|变量调节器1:参数1:参数2|变量调节器2}
if : {if $name == “sky"} {else} {/if}
保留变量 {$smarty.get.page} {$smarty.post.page} {$smarty.cookies.username} {$smarty.server.SERVER_NAME} {$smarty.session.id} {$smarty.request.username}
判断变量为空 isset,不为空返回true
缓存是指,把某项结果暂时保存起来,当再次访问该结果时,直接调用已保存起来的结果,而不需要系统重新计算,当这个结果是不变且多次访问时,能节省很多资源。在smarty中,缓存特指把编译后的模板得到的html保存起来,当用户再次访问该页面时,直接调用该html,无需smarty重新编译
判断缓存
Smarty2: $smarty-> is_cached(‘模板路径’,[缓存id])
Smarty3: $smarty-> isCached(‘模板路径’,[缓存id])
清除缓存
Smarty2:
$smarty->clear_all_cache();//清除所有缓存
$smarty->clear_cache(‘site/index.tpl’);//清除指定模板缓存
Smarty3:
$smarty->clearAllCache();//清除所有缓存
$smarty->clearCache(‘site/index.tpl’);//清除指定模板缓存
缓存id:
用与缓存指定页面,如列表页我们有翻页,但每次翻页虽然内容不同,但依旧是同一个模板,此时列表页的缓存就需要用到缓存id,例子如下
$smarty-> isCached(‘news.tpl’,1); $smarty->display(‘news.tpl’,1);
注意在加载模板时也需加入对应id
三、MVC
什么是MVC?
MVC(Model-View-Controller)是软件工程中的一种构架模式,把软件系统分为三个基本部分,模型(model)、视图(view)和控制器(controller)。
MVC模式的目的是实现一种动态的程序设计,使程序后续修改和扩展简化,并且使程序某一部分重复利用成为可能,除此之外,此模式通过复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。
模型(Model)--管理数据库所有相关逻辑。模型提供了连接和操作数据库的抽象层。
控制器(Controller)--负责所有业务逻辑,比如if/else逻辑。
视图(View)--负责界面显示,如(HTML/XML/JSON)显示。
mvc目录结构文件:
cache:缓存文件
config:配置文件
controller:控制器
libs:配置文件
model:model层文件
ORG:视图模板配置文件
public:公共文件
view:视图文件
view_c:程序编译文件
程序入口文件
加载一个不存在类的的时候 自动执行 __autoload
__autoload可以递归的自动加载自定义异常类
file_exists(“文件路径”);判断文件路径是否存在
ucfirst("文件名");把“hello”首字母转换为大写
method_exists(对象,值);判断一对象中是否存在方法
命名空间namespace、smarty使用(视图分离,MVC)、smarty模板语法、smarty缓存、MVC模式的更多相关文章
- MVC架构学习之Smarty学习——病来而蔫
前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情.. 当然这次是有小病在身,多个借口吧. 一有病就蔫的不行...要锻炼了啊,脚估计也差不多了,游泳试试吧这周. 这次学习Smarty ...
- PHP的模板引擎smarty原理是什么(整理)
PHP的模板引擎smarty原理是什么(整理) 一.总结 一句话总结:其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个ph ...
- XAML实例教程系列 - 命名空间(NameSpace) 三
XAML实例教程系列 - 命名空间(NameSpace) 2012-05-28 14:14 by jv9, 2205 阅读, 10 评论, 收藏, 编辑 上一篇曾提及XAML中,每个对象元素的声明是对 ...
- Atitit 深入理解命名空间namespace java c# php js
Atitit 深入理解命名空间namespace java c# php js 1.1. Namespace还是package1 1.2. import同时解决了令人头疼的include1 1.3 ...
- php模板引擎smarty
一. smarty的特点 速度:相对于其他模板引擎,速度较快 编译型:在下次访问模板时直接访问编译文件,不再进行模板重新编译 缓存技术:可以将用户最终看到的HTML文件缓存成一个静态HTML 插件技术 ...
- php中命名空间namespace和use
对于面向对象编程而言,命名空间namespace和use的概念非常重要. 1.根命名空间是反斜线 \ ,有点类似linux中的根目录 / 的那种感觉,但使用var_dump()函数打印时其实是空字符串 ...
- PHP 命名空间(namespace)
PHP 命名空间(namespace) PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物. 不过在PHP当中还是有着相当重要的意义 ...
- PHP 使用命名空间(namespace),实现自动加载
示例: #/DB/MySql.class.php也就是DB文件夹下有MySql.class.php文件 namespace DB; class MySql { public function __co ...
- PHP命名空间(Namespace)的使用详解(转)
对于命名空间,官方文档已经说得很详细[查看],我在这里做了一下实践和总结. 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种情况下只 ...
随机推荐
- 字符串(String)
字符串是由字符组成的数组,但在JavaScript中字符串是不可变的:可以访问字符串任意位置的文本,但是JavaScript并未提供修改已知字符串内容的方法. 常见功能: obj.length ...
- 写一个c程序辨别系统是16位or32位
方法: 32位处理器就是一次只能处理32位,也就是4个字节的数据,虚拟地址空间的最大大小是4G,而64位处理一次就能处理64位,即8个字节的数据,最大虚拟地址空间的最大大小是16T.最明显的是指针大小 ...
- C++中const型数据的小结
由于与对象又管的const型数据种类较多,形式又有些相似,往往难记,容易混淆,因此总结一下相关用法,具体用法可查看下方链接 C++中对象的常引用 C++中指向对象的常指针和指向常对象的指针 C++中的 ...
- 20、BLAST比对及结果介绍
1.formatdb -i /share/nas1/huangt/project/IsoSeq/BMK170104-E545-03-a/Analysis_T01/MoveRebundant/T01/c ...
- IDEA拷贝git上的最新项目资源
File->new ->project version control->git-> 进入项目git对应的网址,选择第一个backstop,复制url: 输入git用户名和密码 ...
- 在Eclipse里面配置Struts2
下面介绍在Eclipse里面配置Struts2 下载Struts2的压缩包 我下载的是2.3.32版本 解压之后如图所示 apps目录:Struts2的范例 docs目录:Struts2的文档 lib ...
- vivado中使用debug不能连接到vcse_server
打开 Xilinx Design Tools -> ISE Design Suite 14.7 -> Accessories -> ISE Design Suite 64 Bit C ...
- linux 的有用的网站
从windows下移到linux下还有很长的路走阿,慢慢记录一些有用的网站吧 http://www.yolinux.com/ http://linux.die.net/
- adnroid 启动是没有标题栏
<activity android:name=".MainActivity" android:theme="@android:style/Theme.Light.N ...
- ASP.NET MVC 小牛之旅4:ASP.NET MVC的运行生命周期
ASP.NET MVC的运行生命周期大致分成三大过程:(1)网址路由对比. (2)运行Controller与Action. (3)运行View并回传结果. 4.1网址路由对比 当iis收到http请求 ...