一、命名空间: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模式的更多相关文章

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

    前两天是五一小长假,而每次假期都想着如何如何刻苦一番,往往是自作多情.. 当然这次是有小病在身,多个借口吧. 一有病就蔫的不行...要锻炼了啊,脚估计也差不多了,游泳试试吧这周. 这次学习Smarty ...

  2. PHP的模板引擎smarty原理是什么(整理)

    PHP的模板引擎smarty原理是什么(整理) 一.总结 一句话总结:其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个ph ...

  3. XAML实例教程系列 - 命名空间(NameSpace) 三

    XAML实例教程系列 - 命名空间(NameSpace) 2012-05-28 14:14 by jv9, 2205 阅读, 10 评论, 收藏, 编辑 上一篇曾提及XAML中,每个对象元素的声明是对 ...

  4. Atitit  深入理解命名空间namespace  java c# php js

    Atitit  深入理解命名空间namespace  java c# php js 1.1. Namespace还是package1 1.2. import同时解决了令人头疼的include1 1.3 ...

  5. php模板引擎smarty

    一. smarty的特点 速度:相对于其他模板引擎,速度较快 编译型:在下次访问模板时直接访问编译文件,不再进行模板重新编译 缓存技术:可以将用户最终看到的HTML文件缓存成一个静态HTML 插件技术 ...

  6. php中命名空间namespace和use

    对于面向对象编程而言,命名空间namespace和use的概念非常重要. 1.根命名空间是反斜线 \ ,有点类似linux中的根目录 / 的那种感觉,但使用var_dump()函数打印时其实是空字符串 ...

  7. PHP 命名空间(namespace)

    PHP 命名空间(namespace) PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物. 不过在PHP当中还是有着相当重要的意义 ...

  8. PHP 使用命名空间(namespace),实现自动加载

    示例: #/DB/MySql.class.php也就是DB文件夹下有MySql.class.php文件 namespace DB; class MySql { public function __co ...

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

    对于命名空间,官方文档已经说得很详细[查看],我在这里做了一下实践和总结. 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种情况下只 ...

随机推荐

  1. python-queue知识点

    1.dict获取value dict.get(key_name)2.三元运算 res,err=stdout.read(),stderr.read() #三元运算 result=res if res e ...

  2. mongodb切换到admin

    127.0.0.1:后面是端口,/admin是切换到管理员权限 cd C:\Program Files\MongoDB\Server\3.0\bin mongo.exe 127.0.0.1:27017 ...

  3. 21 、GPD-PSL-VCF

    https://genome.ucsc.edu/FAQ/FAQformat.html#format9 1.Variant Call Format(VCF) Example ##fileformat=V ...

  4. Entity Framework Code-First(9.10):DataAnnotations - NotMapped Attribute

    DataAnnotations - NotMapped Attribute: NotMapped attribute can be applied to properties of a class. ...

  5. 位运算 之(1) 按位与(AND)& 操作

    文章作者:ktyanny 由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快. 按位与(Bitwise AND),运算符号为& a&b 的操作的结果:a.b中对应位 ...

  6. [Xcode 实际操作]五、使用表格-(7)UITableView单元格间隔背景色

    目录:[Swift]Xcode实际操作 本文将演示如何给表格设置间隔的背景颜色. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首先 ...

  7. Linux调优(文件系统)

    查看单个文件是否发生碎片化(被存在磁盘非连续磁盘块上) # filefrag -v /var/log/messages 查看文件系统是否存在大量碎片(会显示空闲离散的块) # dumpe2fs /de ...

  8. POJ2151-Check the difficulty of problems

    题目链接:点击打开链接 Check the difficulty of problems Time Limit: 2000MS   Memory Limit: 65536K Total Submiss ...

  9. javascript的模块发展

    谨以此文记录了解js模块的过程 随着ES6的出现,js模块已经成为正式的标准了.曾经为了解决js模块问题而发展起来的民间秘籍,requireJs(AMD).SeaJs(CMD).Node(Common ...

  10. 操作iframe的一些方法

    //父页面操作iframe里的内容 oInput.onclick=function(){ var oBox = oIframe.contentWindow.document.getElementByI ...