问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SpeedPHP/为什么使用迤涑<侍

发布网友 发布时间:2022-04-24 06:46

我来回答

1个回答

热心网友 时间:2022-06-17 03:25

  在MVC架构中,View视图层主要是负责与显示相关的功能。从提高团队开发效率的角度出发,sp框架的spView视图类的期望能达到的目标是:
  将HTML模板与PHP代码分离,一方面可以让前端设计师(制作HTML模板)和PHP程序员(编写PHP代码)并行地工作,也就是人员功能分离;另一方面,有利于组织代码。
  增加可重用模板,减轻重复的工作量。
  在一定程度上使用模板缓存技术,以提高程序执行速度。
  而以上三点,也正是当前主流PHP模板引擎希望能够做到,所以sp框架内置了业界最流行同时也是PHP官方出品的Smarty模板引擎技术。使用Smarty模板引擎将很轻易达到上述目标。
  Smarty的其中两个设计理念,就是“功能最小化原则”和“数据屏蔽”。
  “功能最小化原则”是因为模板技术主要对象是前端设计师,所以模板上面逻辑功能将是非常有限的,在未进行任何的配置之前,前端设计师几乎只能使用Smarty自带的一些简化前端的函数。当然对于前端设计师而言这是非常有利的,毕竟前端设计师需要的正是专注于前端HTML和简单的逻辑开发,而不是去思考更为复杂逻辑数据程序设计。
  “数据屏蔽”其实对于我们并不陌生,这是面向对象编程中的一个概念,简单来说就是希望我们的程序可以像一个黑盒子,仅通过唯一的接口来进行交互,这样的程序才是安全的,可控的。而在Smarty中,数据仅能通过设定的变量来进行传输到模板中,这是模板获得数据的唯一接口,也正是很好体现“数据屏蔽”的特点。
  我们可以开启模板变量调试功能,从模板的调试信息来看,更能体会到“变量是模板获取数据的唯一接口”的特点。
  疑难问题
  1.提示“模板编译目录不可写”?
  需要建立Smarty模板引擎的临时目录,通常是在应用程序目录下的tmp目录,并且保证可写入。
  如果是Linux服务器,那么需要设置成777。Windows服务器需要设置成everyone可写入和读取、删除。
  2.在控制器中如何获取Smarty对象?
  $smarty = $this->getView();
  3.SpeedPHP框架支持三个模板引擎,应该如何选择?
  简单的小型应用程序可使用speedy,较为简单易用,而且语法是PHP原生语法,不需要另外学习。
  中小型应用都建议使用Smarty,性能较好,而且开发起来效率比较高。
  TemplateLite是一款类似Smarty的模板引擎,语法和Smarty基本一致(Smarty 2),是在Smarty之外的一种模板引擎选择。
  4.三个模板引擎的速度对比如何?
  在不加入缓存机制的前提下:speedy速度最好,TemplateLite次之,Smarty一般。当然这种差别非常地小。
  加入缓存后,三者的速度相等。
  参考来源
  http://speedphp.com/manual.html
  SpeedPHP使用手册导航
  快速入门:
  开始使用SpeedPHP | 制作留言本 | 简便的数据表操作 | 用Smarty来显示页面
  访问交互:
  入口文件 | 控制器架构 | 网址生成与PATH_INFO | 获取提交数据 | URLRewrite伪静态 | 自定义伪静态URL | 几种跳转 | 多语言实现 | 权限控制 | session、cookie | Ajax应用
  数据操作:
  编写数据模型类 | 常规操作CRUD | 安全过滤 | 简化操作spDB | 数据变量存储 | 缓存配置
  框架概述:
  单入口应用程序 | 架构设计 | 第三方类库及扩展功能 | UTF8编码与GBK版本 | SAE云计算版
  模板引擎:
  模板引擎配置 | 使用Smarty | Smarty开发教程 | 自动显示模板| speedy教程 | 为什么使用模板其常见问题 | 模板包含文件 | 注册函数 | 全局变量赋值 | CSS和JS的路径
  优化加速:
  生成静态HTML概述 | 生成HTML的使用 | 分页 | 高效函数缓存器| 模板引擎缓存
  开发指南:
  核心函数 | 格式输出变量调试mp | 载入包含文件import | 类实例化函数spClass | 开发流程 | 目录结构、路径设置 | 大规模系统部署 | 用户自定义及全局操作 | 自定义函数库 | 自定义类库 | 自定义404页面 | 程序调试 | mp变量调试 | 安全建议及命名建议
  数据模型:
  高级数据库操作 | 数据表一对一关联 | 数据表一对多关联 | 数据表多对多关联 | 一表关联多表 | 关联结果的条件* | 关联结果在Smarty模板中显示 | 多数据库、数据表 | 多种类型数据库的配置 | 重写CRUD操作| 业务数据封装 | 数据函数复合调用
  API参考:
  spModel数据库操作类 | spPager分页类 | spVerifier数据验证类 | spCache函数数据缓存类 | spLinker数据表关联实现类 | spView视图类 | spHtml静态HTML生成类 | spController控制器类 | spArgs环境参数类 | 配置 | 数据库驱动类 | 模板驱动类 | import载入文件
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ibanker是做什么的? 医院可以治疗口吃吗 华西医院口吃治疗 那家医院可以更好的治疗口吃 北京华科中西医结合医院治口吃咋样? 做柠檬水用什么罐子装好 如何去除玻璃罐的异味 追星的坏处? 哪些骨折属于十级伤残图片? 肋骨裂缝,诊断证明为骨折,请问能有工伤级别吗 为什么2012年农历有两个四月?这又意味什么? 奥特曼格斗进化0的作弊码是多少? 今年(2012)农历到底是有2个4月还是有2个五月?为什么百度百科是说4月和闰4月,而端午放假是在闰 SP 服务提供商 能提供那些服务呢,SP是什么东东?SP全称是什么? 为什么今年有两个四月,不是两个五月或者两个六月呢 SNF 召唤师怎么加点的? 今年为什么有两个4月 如何正确的处理404页面 今年为什么有两个农历四月? 为什么今年有两个四月? 求罗兰SP-404SX中文说明书,哪位大神可以帮帮兄弟! 今年为什么有两个四月, sp tomcat 404页面设置失效? 大家好,我买了一台罗兰SP404采样器,可是我不知道如何把音乐软件放在储存卡那个文件夹里才显示。 为什么今年有两个农历四月,而不是其它的月份? 今年为何阴历有两个4月 为什么今年农历有两个四月? 今年两个四月是阴历还是阳历 为什么会有“闰四月吃树叶”的说法? 为什么今年会有两个农历四月 1982年到底是闰年还是平年?为什么有两个4月?急! 急求柯南全部名称,谢谢 柯南有几集?每一集的名字? 好久没看柯南TV了,请问柯南动画TV到哪一集了? 学习CCNA 后多长时间再学习CCNP 合适? 考过了ccna以后要过多久才能考ccnp?有时间间隔吗? 考完CCNA可以直接考CCNP吗 考CCNP,CCNA的有关问题 飞科剃须刀夹胡子,用过的说下如何? 飞科剃须刀310和313有什么区别? 飞科剃须刀怎么鉴别真伪? 二手车转让协议书起法律效力吗 二手货车转让协议书 做雪花酥可以放这个饼干吗? 饼干碎可以做什么好吃的 小饼干除了可以做雪花酥还可以做什么吃的? 引体向上器材室内单杠需要拧螺丝吗? 室内引体向上安全吗,用过的进。 室内引体向上器可做哪些锻炼,具体点 引体向上器材室内单杠墙砖空挂可安装吗?