关于Php要不要使用模板一直被大家讨论,支持的说使用模板更简洁,易与前端project师交流。反对的说Php本身就支持内嵌语法,不是必需再用个模板,减少性能。

事实上使用Php的短语法。直接嵌入也不是非常难看,该支持的循环啥的都支持,再配合PhpStorm神器的Live Template,连Shift都不用按了,非常省事。(其他IDE也应该有对应的代码片段功能)

先看看效果:

//输出 [stv]
<? = $x ?> //if-else [stif]
<? if ($x > $y): ? >
<h4>x is greater than y</h4>
//[stelif]
<? elseif ($x == $y): ?>
<h4>x is equal to y</h4>
<? else: ?>
<h4>x is less than y</h4>
<? endif ?> //for [stfor]
<? for ($i = 0; $i < 10; $i++): ? >
<h7><?= $i ?></h7>
<? endfor ?> //foreach [stfore]
<? $list = array('a', 'b', 'c', 'd', 'e') ? >
<? foreach($list as $val): ?>
a=<?= $val ?>
<? endforeach ?> //foreach key=>value [stforek]
<? foreach(array('a'=>1,'b' => 2) as $key => $var): ?>
<?= $$key ?>=><?= $var ? >
<? endforeach ? > //while [stw]
<? while ($i < 10): ?>
<h7><?= $i ?></h7>
<? $i++ ?>
<? endwhile ?> //switch(这个比較讨厌,由于后面要跟break)[stsw]
<? switch($i):
case 0:
echo '0'; break;
case 1:
echo '1'; break;
case 2:
echo '2'; break;
default:
echo 'N/A';
endswitch ?>

当中switch由于后面要跟break,所以就没有分行,而是用一个php块。只是由于短语法中的if-else也非常直观,能够取代switch。我在phpstorm中还特地添加了<? elseif($x == 1): ?>的片段,方便添加推断逻辑。

前提是要在php.ini中打开支持,short_open_tag = On。在SAE也支持。其他云站点还没试过。

另外。PHP5.4以后,不用设置short_open_tag=on,<?= ?>总是可用,(但<?

?>仍然须要设置php.ini来开启)。说明大家对它的需求还是挺多的。实在操心兼容性的能够手动改动live template,将<? ?>改为<?php ?

>。

以下就是在phpstrom中增加live template,这个就相当于语法提示,你输入前几个字母(keyword)。按tab。它就自己主动把自己定义的补上。

keyword我都写在上面代码中方括号里了。

phpstorm的配置我就不一一贴了,后面给须要的下载地址,以下是while [stw] 的演示样例:

<? while($$$VAR$ $COND$ $COMP$): ?>
$END$
<? $$$VAR$++ ?>
<? endwhile ? >

setting.jar的下载地址:setting.jar(当中仅仅包含了Live Template设置。并且放在了一个自建的文件夹下。不用操心覆盖自己的设置。

PhpStorm Live Template加PHP短语法Short Open Tags打造原生模板的更多相关文章

  1. golang 模板(template)的常用基本语法

    1. 模板 在写动态页面的网站的时候,我们常常将不变的部分提出成为模板,可变部分通过后端程序的渲染来生成动态网页,golang提供了html/template包来支持模板渲染. 这篇文章不讨论gola ...

  2. 短网址(short URL)系统的原理及其实现

    短网址(short URL)系统的原理及其实现 https://hufangyun.com/2017/short-url/?hmsr=toutiao.io&utm_medium=toutiao ...

  3. [bug] VUE 的 template 中使用 ES6 语法导致页面空白

    如果你在 template 中,使用了 es6 及以上的语法,那么,在部分ios.安卓.微信浏览器中,打开页面后显示一片空白内容.如下: <ul id="example-1" ...

  4. template.js artTemplate 简洁语法官网下载不了 template.js artTemplate 新下载地址

    参考:https://blog.csdn.net/tavatimsa/article/details/82019792

  5. 【template、import、include】微信小程序:模板(template)、引用(import、include)说明

    模板(template): 定义模板 <template name="[String]"> <!-- 模板代码 --> <view> <t ...

  6. es6新语法系列,查找字符串,模板字符串

    一.模板字符串: ES6引入了一种新型的字符串字面量语法,我们称之为模板字符串(template strings).除了使用反撇号字符 ` 代替普通字符串的引号 ' 或 " 外,它们看起来与 ...

  7. FreeMarker-TemplateLoader

    Java中不乏优秀的模板引擎,Velocity,mvel,FreeMarker等.在构建框架的时候,通常可以拿来即用,但我们需要控制它.最近需要一个数据准备的框架,便选择了FreeMarker,Fre ...

  8. 学习WEB前端是应该自学还是参加培训机构?

    先说观点,我强烈建议每个人都要自学,不要参加培训班. 我干web前端工程师这个职位已经有6年多的时间,之前在蚂蚁金服做过2年,后来离开是因为加班实在熬不住才走的,像这些已经上市的互联网公司几乎没有不加 ...

  9. 微信小程序开发--模板(template)使用,数据加载,点击交互

    微信小程序视图层提供了 模板(template),可以在模板中定义代码片段,然后在不同的地方调用.结果在数据渲染那懵逼了.按照官网上对模板的说明和对数据的加载. 1.定义模板 使用name属性,作为模 ...

随机推荐

  1. MyBatis学习总结(3)——优化MyBatis配置文件中的配置

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: <?xml version="1 ...

  2. jvm 堆、栈 、方法区概念和联系

    一.三者联系 1.堆:解决数据的存储问题( 即 数据怎么放,放到哪 ). 2.栈:解决程序运行的问题( 即 程序如何执行,或者说如何处理数据 ). 3.方法区:辅助堆栈的一块永久区,解决堆栈信息的产生 ...

  3. 深入理解Dalvik虚拟机- 解释器的执行机制

    Dalvik的指令运行是解释器+JIT的方式,解释器就是虚拟机来对Javac编译出来的字节码,做译码.运行,而不是转化成CPU的指令集.由CPU来做译码,运行.可想而知.解释器的效率是相对较低的,所以 ...

  4. [Tools] Create your own mobile emulator device by using Chrome dev tool

    Using the New Device Emulation Interface The Device Emulation interface changed a bit with the newer ...

  5. 任务调度器quartz的使用

    1.quartz的获取. 可參照:Quartz任务调度模型实例 2.开发思路: 要使用定时器quartz.先弄清楚三个概念:调度器.任务.触发器.开发也是依照这三个方面来开发, 1>写一个Job ...

  6. NYOJ 915 +-字符串【贪心】

    +-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描写叙述 Shiva得到了两个仅仅有加号和减号的字符串,字串长度同样.Shiva一次能够把一个加号和它相邻的减号交换 ...

  7. Http抓包工具--查尔斯

    查尔斯 查尔斯:http://www.charlesproxy.com/ 这是比較好用的抓包工具.有Mac.Windows.Linux版本号.能够相应用程序.浏览器.手机.手机模拟器进行抓包. 官方站 ...

  8. 几个常用ORACLE运维监控的SQL语句

    1.消耗CPUSELECT a.CPU_TIME, --CPU时间 百万分之一(微秒)              a.OPTIMIZER_MODE,--优化方式              a.EXEC ...

  9. 文档相关命令-cat命令查看一个文件

    用于查看一个文件的内容并将其显示在屏幕上 cat 后直接加上文件名 -n  表示显示行号 cat -n dirb/filee -A 显示所有内容包括特殊字符 cat -A dirb/filee

  10. vue keep-alive保存路由状态1 (接下篇)

    本文很长,但是很详细,请耐心看完就一目了然了有下篇 keep-alive 是 Vue 内置的一个组件,使被包含的组件保留状态,或避免重新渲染. 1. 基础用法,缓存所有路由: <keep-ali ...