php smarty,做php购物网站都用到哪些技术
php smarty,做php购物网站都用到哪些技术详细介绍
本文目录一览: php的smarty模板引擎有哪些特点
Smarty模板引擎的一些特点:1、运行速度快2、不需要多余的模板语法解析,仅仅是编译一次3、仅对修改过的模板文件进行重新编译4、可以编辑'自定义函数'和自定义'变量',因此这种模板语言完全可以扩展5、可以自行设置模板定界符,所以你可以使用{}, {{}},
, 等等6、诸如 if/elseif/else/endif 语句可以被传递到php语法解析器7、section之间可以无限嵌套8、引擎是可以定制的,可以内嵌php代码到你的模板文件中9、内建缓存支持10、独立模板文件11、可自定义缓存处理函数12、内建插件体系结构如果您想学习更多知识,请访问gxlcms。
smarty模板引擎跟TP框架有什么区别?什么是模板引擎?
smarty是PHP模板引擎技术,而thinkphp才是框架
smarty是PHP模板引擎技术,分离了PHP代码和HTML代码,使程序员和页面设计师可更好的管理自己的模块。而thinkphp才是框架,就是了他定义好一些规则,封装好一些常用的操作,你按照他写好的规则来编程,从而使你的工作更有效率。
smarty是PHP官方推荐使用的模板引擎,TP自带的是参考TP写的,不过远没smarty强大,smarty的强大在于自定义标签和缓存,如果用TP整合smarty,当前遇到的问题是在分组时候不能加载模板。
模板引擎:(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。
做php购物网站都用到哪些技术
php的smarty+pear是一种将数据和页面代码分离的开发模式,就象MVC.方便于开发者进行开发.
你说的缓存可能是ZendOptimizer,它可以将你的代码更好的优化,减轻内存的压力,现在也有,appche+php+zend+mysql的开发工具集成包了.工具名字叫phpstudy.
基本上,如果开发网店的话,php,css,js.其实css和js,也就是装饰网店时回用到,大部分都是php.楼主,可以搜索一下,smarty+pear,很好很强大的.
php smarty “ ” ,这个竖杠表示什么?
“|” 是变量修饰符与前面变量的间隔符号;
变量修饰符 escape(escape可用于将变量编码或转换成 html, url, 单引号, 十六进制, 十六进制实体, javascript 和 电邮地址。 默认是:html) ,在你的上面的截图中escape的意思是:让$bb中的字符串以html实体的格式输出,
3. 示例:
如果$bb 这个变量是
'Hello'那么,它使用了修饰符 escape后的输出将会是:
'Hello' 4. 资料页面:
www.smarty.net/docs/zh_CN/language.modifier.escape.tpl 祝愉快!
求大神 解释smarty和thinkphp的区别
ThinkPHP是PHP框架
smarty是模板引擎
ThinkPHP可以用smarty做为模板引擎 也可以使用自带的
====ThinkPHP是mvc框架 主要用于后台语言开发
====Smarty是模板引擎 用于前台模板更改
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式
Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。
简单介绍
smarty :
模板引擎
PHP程序需要前端HTML混编代码和后端PHP代码分离 VC模式
简化混编代码难度
Thinkphp:
快速、兼容、简单的轻量级国产开源PHP开发框架,使用面向对象的开发结构和MVC模式
框架中可以包含模板引擎,反之不能
smarty是前端化php语法,就是让php能向像写html一样些php,目的是为了方便前端人员能写php脚步,在我看来没这个必要了。
thinkphp是个比较完整的框架,其中也实现了类似smarty的前端化php语法糖。
====ThinkPHP是mvc框架 主要用于后台语言开发
====Smarty是模板引擎 用于前台模板更改
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式
Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。
PHP模板中smarty_block函数的用法
Smarty末班引擎中提供了三种插件支持,分别是block(块),function(函数),modifier(调节器),用户可以自己扩展。
block:是一种非常灵活的高级插件,这种插件在模板中使用时需要成对出现,Smarty内置的block插件例如section,foreach等,使用格式为:
{section name="customer" loop="$data"}
{/section}
function:他的作用类似于函数,在模板中使用无需成对出现,系统内置的如include,格式为:{include file="web/index.tpl"}。
modifier:调节器是用于对变量进行修饰的,内置的调节器如:truncate(截取字符长度),date_format(格式化时间),使用格式为:
{$nowtime|date_format:"%Y-%m-%d"}
在来分析下你的问题:
-----------------------------------------------------------------------
你提问中的这个就应当属于block插件,其中blockname是个插件名,此插件不包含任何参数。
{blockname}
没有缓存的:{$smarty.now}
{/blockname}
smarty 模板怎样使用php标签
smarty本身是不推荐使用php标记的,可以通过编写插件(block,function,modifier)来代替。
smarty默认不开启php标记,需要在创建smarty对象后做如下设置:
$smarty->php_handling = SMARTY_PHP_ALLOW ;
用.tpl模版文件 显示你所说的echo的值,只是不能像你在写php中那样写, 要用模版标签<{......}>显示。
事例代码:
php文件中写的是:
留言者:
IP地址:
日期:
模版文件中就变了:
留言者:<{$msg.sender}>
IP地址:<{$msg.sendIP}>
日期:<{$msg.sendDateTime}>
如果对你有帮助,请选为最佳答案哦。
php smarty 用的人还多吗
用的人还是多的,至少还没有比SMARTY更好的模板引擎。而且都用习惯了。
现在的框架都自带模板,迟早会被取代的。
#PHP#Smarty 之类 的模板引擎 对比不使用模板引擎 具体有哪些优点?我有些疑问,请高手解答下
smarty 的作用就是使 前后台分离 开发人员分工明确 互不影响
我比较认同一种对框架的理解:框架是为了解决某类问题,根据经验和习惯制定的一种规则。
这句话有两个点,其一是“某类问题”,也就是说框架(Smarty 也可以理解成一种框架)不是万能的,它只适合特定的需求场景。其二,框架是“一种规则”,规则就意味着限制,有限制就会失去一部分自由就要付出代价。并且既然是规则那就要学习也就必然存在你所说的学习成本。付出成本的同时我们得到的是一种开发规范或者是实现某类特定需求时的一个相对固定(甚至是机械)的开发流程。
回答你的问题:
当项目代码量增加到一定量级的时候,业务逻辑和表现层的分离能够让代码的可维护性更强。
无数人都有过这样的想法:直接用PHP在html里写foreach跟用Smarty没什么差别。的确,如果你只是写
是没什么差别,而且不考虑缓存的话效率也比用Smarty更高。但是,由于众所周知的各种原因,写着写着foreach里面就会出现一堆的业务逻辑甚至是数据库操作。一两个月之后自己再看代码都觉得天雷滚滚。smarty在这里扮演的就是一个约束者的角色,强制让你剥离业务逻辑。使代码可读,让团队中的每一个人都能够以相对低廉的代价阅读修改你写的代码。
至于是不是需要使用Smarty要根据具体项目而定。例如一个项目就俩页面加在一起不到1000行代码,我倾向于不用。
另外楼上也提到了团队中的前端开发人员只会HTML不懂PHP的问题,这个时候如果让他学习PHP或者学习Smarty那几个常用的标签哪个代价更大显而易见。
你提到的效率问题:
本质上是一种取舍,现在服务器的CPU和内存一般情况下不会成为瓶颈。对大多数公司而言加台服务器的成本要比请一个优秀的码字工低得多。特别是服务端开发,对程序的执行效率要求并不是很高。所以为了代码的可维护性以及开发的规范性牺牲一部分效率是可以被容忍的。另外你提到了缓存,用smarty可以很容易的实现表现层缓存。你用PHP本身的确能够以更小的代价实现这些缓存,甚至实现的更贴合你的需求。但是你会在每一个页面上都去实现这样的缓存机制吗?如果都做的话你必然要考虑代码复用,最终的结果只有两个:要么偷懒不做缓存,要么自己写一套化简的smarty。
说个题外话,既然在研究框架你应该会接触到ORM.例如JAVA里面的hibernate。用ORM就存在效率损失,所以绝大多数ORM都会通过各种方式对查询过程和查询结果进行优化、缓存。即使这样,在相当一部分案例中ORM的效率依然要低于直接执行写的靠谱的裸SQL。那么ORM存在还有价值吗?hibernate如今成为了实际上的业界标准,从一个侧面证明了ORM存在的合理性。在php中ORM这东西是否有存在的价值见仁见智,我个人倾向于不用。毕竟PHP的优势是小快灵,要是做的太像JAVA也就失去了它存在的价值。
至于什么情况下必须用smarty,如果是个人开发,答案是不存在这样的情况。至于团队开发,你的老板决定使用smarty的情况下你就必须要使用smarty。
最后给你一个建议:学习框架的同时,一定要把设计模式看懂、看透。当你积累了足够的项目经验。真正的理解了面向对象的设计思想,写代码的时候尽可能的去实现开闭原则的时候。你看框架的视角也就从仰视变成了俯视。
主要是smarty模板能是php代码和html代码分开,这样php程序员和网站的美工人员就可以各司其职,更方便网站的维护。这就是我理解的使用smarty模板的真正意义!!!满意吗???
1、smarty模板其实用不着学很多,会基本的 assign 和 display 就能解决基本的了
2、老实说很多美工都是女生(好比我们公司),他们是一点程序都不懂,连echo是什么都不知道
3、不会增加负担,会有专门的编译过程,编译一次后就不需要进行二次编译
4、这个是当然,但smarty的缓存技术已经很成熟了!其他的未必比得过
5、这个就不一定,看个人需求和公司要求
smarty本人其实也仅仅懂皮毛就OK了,老实说你要是真正的PHPer了,以后就好少单独用到smarty了,更深的MVC模式,TP框架等等才是真正花时间的~
今天写PHP的smarty模板文件时直接在模板中写的js代码,没加{literal}{literal},运行并没有报错,为什么
一般配置smarty的分隔符用{},如下代码:
$smarty_template_dir ='./templates/';
$smarty_complie_dir ='./templates_c/';
$smarty_config_dir ='./configs/';
$smarty_cache_dir ='./cache/';
$smarty_caching = FALSE;
$smarty_delimiter =explode("|","{|}");
如果代码不是explode("|","{|}");
那在模板上直接写js文件{}也不会报错。