MVC和Smarty

 

#smarty的相关写法

原理

#article.html

<body>

<div>{subject}</div>

<div>{content}</div>

</body>

#index.php

<?php

$str = file_get_contents('article.html');

$subject='smarty视频教程分享';

$content='smarty视频教程分享,下面是具体的下载地址,有需要的朋友可以看看,对smarty模板讲解的非常详细,作者粗略看了一下目录,真是详细到细枝末节该......';

$str=str_replace('{subject}',$subject,$str);

$str=str_replace('{content}',$content,$str);

echo $str;

?>#就正常显示了

 

smarty={

<?php

include_once "smarty/Smarty.class.php";

$smarty->assign(key,value);

$smarty->display('XXX.html');

?>

#Smarty.class.php文件里的默认一些参数

setTemplateDir('.' . DS . 'templates' . DS)#指定html文件存储目录,display('index.html')则它会默认到templates去找,如果不需要指定的,那就写display('XX/index.html')

setCompileDir('.' . DS . 'templates_c' . DS)#指定编译文件存储目录

setCacheDir('.' . DS . 'cache' . DS)#指定缓存文件存储目录

setConfigDir('.' . DS . 'configs' . DS);#指定配置文件存储目录

public $cache_lifetime = 3600;#设置缓存的时间

public $caching = false;#是否开启缓存

public $left_delimiter = "{";#设置标签的左定界符,默认{$value}显示

public $right_delimiter = "}";#设置标签的右定界符

#####Smarty标签#######

# 在HTML里面的一些语法

1:{$key}#显示

2:{$key.下标}{$key[下标]}#显示数组中的某个值

3、判断:

   {if $age <18}

     内容

   {elseif $age==20}

     内容

   {else}

     内容

   {/if}

   #非空判断要用什么语句

   { if $array neq ""}

    {/if}

 

4、for标签

   {for $i=0 to 5}

     内容  {$i}#0,1,2,3,4

   {/for}

5、while标签

   {while $age <18}#循环

     内容

   {/while}

6、section标签

#可以遍历多维数组

 {section name=rows loop=$articleclass}

        {assign var=SmallType value=$articleclass[rows].secondlist}#定义一个量

        {section name=lists loop=$SmallType}

        {/section}

  {/section}#接着循环


 

   {section name="别名" loop=$array}

     {$array[别名]}

   {/section}

   注意:

    #别名任意是什么

   #1)只遍历索引数组 array("北京","上海","深圳","西安");只适用于这种格式

   #2)无法获得数组下标

 7、foreach标签#重点

   {foreach $array as $k=>$v}

      下标:{$k}    值:{$v}

   {/foreach}

   #既可以是索引,又可以是关联数组

8、忽略标签

   {literal}

      {$age}#忽略标签,还是会显示{$age},也就是smarty不编译

   {/literal}

9、包含html文件

   {include file="xxx.html"}#比如共用头部,尾部

10、包含php文件

    {include_php file="xxx.php"}

    #只有Smarty2可用

11、禁止缓存

    {nocache}

      #不想缓存的内容

    {/nocache}

12、加载配置文件

    {config_load file="配置文件名"}


 

 #####给事件传参数####

 oncick('{$v.XX}')

 

############变量调节器###########

{$key|default:"默认的内容"}#默认值,如果有$key,则显示$key,没有就显示默认类容

{$key|escape}#html转义,里面有html不执行,并且显示出来

{$key|truncate:长度}#截取字符串,几位

{$key|truncate:长度:"省略符号"}#截取字符串,几位(包括省略符号位数),字符串后面+包括省略符号

{$key|nl2br}#将\n转换为<br/>,换行,\n是&nbsp,而<br/>是换行

 

##############configs文件夹#############

configs文件夹

#配置文件

#在configs文件夹下新建一个配置文件(xxx.conf)。键值对

  key=value

  key=value

  key=value

#配置文件只能允许模板文件来调用,也就是在html文件引入,在html头部引入

{config_load file="xxx.conf"}

{#key#} #获得配置文件中指定的信息

 

##################Smarty缓存#####################

Smarty缓存

#缓存的意思就是不更新网站类容,用户在缓存时间内,看到的页面内容都是不变的

$smarty->caching = true;#开启缓存

$smarty->cache_lifetime = 3;#设置缓存时间

$smarty->display("cache1.html");#然后这个页面就开启了缓存

# 如果部分数据经常变化,不需要缓存,则在HTML文件里写入:

   {nocache}

      不想缓存的数据

   {/nocache}

#按照页面不同的请求参数分别进行缓存,参数用来标志那个缓存html

$smarty->display("cache1.html",1);#后面就是缓存id标识,随便设置

 

#smarty中删除缓存的方法,加入到php文件

$smarty->clearAllCache();#清除所有缓存

$smarty->clearCache('cache1.html');#删除指定页面,设置了id标识,也会删除

$smarty->clearCache('cache1.html',1);#删除指定id标识缓存

# 什么样的页面应当添加缓存?

# 1、页面的访问量高(高并发)

# 2、页面的数据量大

 

# 什么样的页面不能加缓存?

# 1、页面里只有一个表单

# 2、页面的数据变更太频繁

}


 

MVC={

三层体系架构

#显示层:html、css、js、jquery

#逻辑层:php

#数据层:database、conn、dbio

 

MVC框架

# Model   模型(dbio)

# View    视图(templates)

# Controller  控制器(php)

 

MVC框架特点

#1、显示与逻辑相分离

#2、代码简化(通过面向对象进一步封装)

#3、项目单一入口(index.php)

 

MVC框架优点

#1、代码分工更加明确

#2、便于网站的维护与管理(便于二次开发)

 

项目目录

library----------------第三方资源包

  smarty

  jquery

  kindeditor

application------------应用程序

  configs--------------配置文件

  core-----------------核心类

    DbConn.php

  model----------------模型(dbio)

  view-----------------视图(templates)

  controller-----------控制器(每个页面对应的php文件)

  runtime--------------运行时

    templates_c--------编译文件

    cache--------------缓存文件

public-----------------公用文件

  images

  css

index.php--------------入口文件(引导文件)

#控制器命名规则

1、必须采用大驼峰的命名规则

2、必须以Controller来结尾

IndexController.php

#控制器中方法的命名规则

1、必须采用小驼峰的命名规则

2、必须以Action来结尾

deleteAction()

 

#一个url的访问方式

# http://localhost/项目/index.php

# http://localhost/项目/index.php?c=控制器&a=方法

# http://localhost/项目/index.php?c=控制器&a=方法&名=值&名=值

 

# 链接地址

<a href="index.php?c=控&a=方">文字</a>

<a href="index.php?c=控&a=方&名=值">文字</a>

# 引入样式表

<link href="public/css/xxx.css" ......>

# 引入图片

<img src="public/images/xxx.jpg">

# 引入jquery

<script src="library/jquery/jquery-1.4.js">


 

#############PHP原生session会话#################

PHP原生session会话

 

生命周期:打开浏览器创建、关闭浏览器销毁,测试是必须关闭窗口

# session文件保存在服务器端。

session_start();#在php最头部,前面不能有任何代码

$_SESSION["username"]="tom";#设置session

#就可以在其他php文件里直接访问

$a=$_SESSION["username"];

echo $a;

#删除session

unset($_SESSION["username"])

 

#############PHP原生cookie会话#################

PHP原生cookie会话

 

# cookie是保存在客户端。

setcookie("TestCookie",'789', time()+10);#这个页面不能一直刷新,否则一直设置,这里保存时间是10秒

cookie读取:

$_COOKIE["TestCookie"];#cookie读取,在其他页面读取,如果那个时间已经过期,则访问不到

cookie的删除:

setcookie("TestCookie","",time()-100);#把value为空,就代表删除,时间设置为-,这时到F12那里就没有了

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值