命名空间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(对象,值);判断一对象中是否存在方法

原文地址:https://www.cnblogs.com/data2018/p/9774764.html

时间: 2024-10-12 09:22:11

命名空间namespace、smarty使用(视图分离,MVC)、smarty模板语法、smarty缓存、MVC模式的相关文章

MVC架构学习之Smarty学习——病来而蔫

前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情.. 当然这次是有小病在身,多个借口吧. 一有病就蔫的不行...要锻炼了啊,脚估计也差不多了,游泳试试吧这周. 这次学习Smarty引擎. 一.视图引擎简介 帮助用户实现MVC中View的开发. (可以理解为View的模板 --好的视图引擎 贴近html: 语法简单易懂: 良好的缓存机制: 拓展性良好: 网络资源多 (所以先学习已有的视图引擎) --知名的 Smarty,PHPLIB 二.Smarty简介 提供了逻辑和外在内容的

PHP模板引擎smarty详细介绍

篇文章主要介绍了PHP模板引擎smarty详细介绍,本文讲解了什么是smarty.smarty优点.不适合使用smarty的地方.smarty目录结构及版本,需要的朋友可以参考下 /* 一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲, 目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要. 二.smarty优

Atitit &#160;深入理解命名空间namespace &#160;java c# php js

Atitit  深入理解命名空间namespace  java c# php js 1.1. Namespace还是package1 1.2. import同时解决了令人头疼的include1 1.3. 在不支持ns的语言里面使用ns,前缀发1 1.4. 常用命名空间的统计(约150个)1 1.5. 命名空间2 1.5.1. 在struts2中2 1.6. Linux 就支持6种不同类型的命名空间.2 1.1. Namespace还是package 1.2. import同时解决了令人头疼的in

PHP模板引擎Smarty

不知道从什么时候开始,有人开始对 HTML 内嵌入 Server Script 觉得不太满意.然而不论是微软的 ASP 或是开放源码的 PHP,都是属于内嵌 Server Script 的网页伺服端语言.因此也就有人想到,如果能把程序应用逻辑 (或称商业应用逻辑) 与网页呈现 (Layout) 逻辑分离的话,是不是会比较好呢? 其实这个问题早就存在已久,从交互式网页开始风行时,不论是 ASP 或是 PHP 的使用者都是身兼程序开发者与视觉设计师两种身份.可是通常这些使用者不是程序强就是美工强,如

ecshop中smarty最常用的6大基本语法

模板制作比较核心的其实就是变量的使用,因为这些就是数据的根本,想从数据库里获取数据并显示在界面就必须使用smarty来展示,下面是关于smarty的介绍和使用.Smarty是一个php模板引擎,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.Smarty要求web服务器运行php4.0.6和以上版本.smarty安装需要smarty库文件.可以去官方网站http://smarty.php.net下载.网上讲了很多安装的教程,但是我都没有成功,所以直接把整个目录名改为smarty直接复制到

PHP中的命名空间(namespace)及其使用详解

PHP中的命名空间(namespace)及其使用详解 晶晶 2年前 (2014-01-02) 8495次浏览 PHP php自5.3.0开始,引入了一个namespace关键字以及__NAMESPACE__魔术常量(当然use关键字或use as嵌套语句也同时引入):那么什么是命名空间呢?php官网已很明确的进行了定义并形象化解释,这里直接从php官网copy一段文字[来源]. “什么是命名空间?从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念.例如,在操作系统中目录

PHP 模板引擎Smarty的基本语法

所有的smarty标签都被加上了定界符.在smarty里,所有定界符以外的内容都是静态的,当smarty遇到了模板标签,将尝试解释他们,然后再以恰当的方式输出. 默认情况下是 {和},但它们是可定制的.定制方法是: $smarty->left_delimiter = '<!--{'; $smarty->right_delimiter = '}-->'; 1.注释 模板注释被*号包围,例如 {* this is a comment *} smarty注释将不被输出.它是模板内在的注释

命名空间 namespace

;命名空间 namespace 假如很多人使用你写的类可以用namespace包起来,有文件中定义命名空间 cpp中使用命名空间 using namespace ..;这样函数或者变量自动加作用域了 iostream在.h 写的命名空间把一些函数变量都包起来了,然后引进来使用using namespcase使用命名空间

PHP命名空间(Namespace)的使用详解

对于命名空间,官方文档已经说得很详细[查看],我在这里做了一下实践和总结. 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀. 例:项目中有两个模块:article和message board,它们各自有一个处理用户留言的类Comment.之后我可能想要增加对所有用户留言的一些信息统计功能,比如说我想得到所有留言的数量.这时候调用它们Comment提供的方法是很好的