PhpStorm Live Template加PHP短语法Short Open Tags打造原生模板
关于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打造原生模板的更多相关文章
- golang 模板(template)的常用基本语法
1. 模板 在写动态页面的网站的时候,我们常常将不变的部分提出成为模板,可变部分通过后端程序的渲染来生成动态网页,golang提供了html/template包来支持模板渲染. 这篇文章不讨论gola ...
- 短网址(short URL)系统的原理及其实现
短网址(short URL)系统的原理及其实现 https://hufangyun.com/2017/short-url/?hmsr=toutiao.io&utm_medium=toutiao ...
- [bug] VUE 的 template 中使用 ES6 语法导致页面空白
如果你在 template 中,使用了 es6 及以上的语法,那么,在部分ios.安卓.微信浏览器中,打开页面后显示一片空白内容.如下: <ul id="example-1" ...
- template.js artTemplate 简洁语法官网下载不了 template.js artTemplate 新下载地址
参考:https://blog.csdn.net/tavatimsa/article/details/82019792
- 【template、import、include】微信小程序:模板(template)、引用(import、include)说明
模板(template): 定义模板 <template name="[String]"> <!-- 模板代码 --> <view> <t ...
- es6新语法系列,查找字符串,模板字符串
一.模板字符串: ES6引入了一种新型的字符串字面量语法,我们称之为模板字符串(template strings).除了使用反撇号字符 ` 代替普通字符串的引号 ' 或 " 外,它们看起来与 ...
- FreeMarker-TemplateLoader
Java中不乏优秀的模板引擎,Velocity,mvel,FreeMarker等.在构建框架的时候,通常可以拿来即用,但我们需要控制它.最近需要一个数据准备的框架,便选择了FreeMarker,Fre ...
- 学习WEB前端是应该自学还是参加培训机构?
先说观点,我强烈建议每个人都要自学,不要参加培训班. 我干web前端工程师这个职位已经有6年多的时间,之前在蚂蚁金服做过2年,后来离开是因为加班实在熬不住才走的,像这些已经上市的互联网公司几乎没有不加 ...
- 微信小程序开发--模板(template)使用,数据加载,点击交互
微信小程序视图层提供了 模板(template),可以在模板中定义代码片段,然后在不同的地方调用.结果在数据渲染那懵逼了.按照官网上对模板的说明和对数据的加载. 1.定义模板 使用name属性,作为模 ...
随机推荐
- MySQL创建表时加入的约束以及外键约束的的意义
1,创建表时加入的约束 a) 非空约束,not null b) 唯一约束,unique c) 主键约束,primary key d) 外键约束,foreign key 1,非空约束,针对某个字段设置其 ...
- 使用Modernizr检测支持CSS3
使用Modernizr检测支持CSS3 如果支持某个属性,会增加一个class,名字就是该属性: 不支持,名字是no-某属性 还提供了一个全局Modernizr对象,使用如下: <script ...
- vue中export default 在console中是this.$vm
vue中export default 在console中是this.$vm 用vue-cli搭出框架,用webstorm进行开发,参考vue2的官网进行教程学习, 在vue-cli中是用es6的exp ...
- 为什么整个互联网行业都缺前端project师?
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...
- 关于Android的.so文件所须要知道的
早期的Android系统差点儿仅仅支持ARMv5的CPU架构,你知道如今它支持多少种吗?7种. Android系统眼下支持以下七种不同的CPU架构:ARMv5.ARMv7 (从2010年起),x86 ...
- 解决JavaScript浮点数(小数) 运算出现Bug的方法
解决JS浮点数(小数) 运算出现Bug的方法例如37.2 * 5.5 = 206.08 就直接用JS算了一个结果为: 204.60000000000002 怎么会这样, 两个只有一位小数的数字相乘, ...
- Maven远程仓库:pom依赖以及jar包下载
Maven远程仓库:pom依赖xml配置以及jar包下载: 地址1: http://mvnrepository.com/ 地址2: http://172.16.163.52:8081/nexus/#w ...
- label标签的可访问性问题
label标签可以优雅地扩大表单控件元素的点击区域.例如,单纯的单选框点击区域就鼻屎那么大的地方,经常会点不到位置.因此,label标签的使用对于提高页面的可用性可访问性是很有帮助的. 其实,它的样子 ...
- Servlet中文乱码原因 解决 Get 和 Post 和客户端
一.Get方式的中文乱码 1) 使用如下页面表单内容: <form action="http://127.0.0.1:8080/day07/params" method=&q ...
- SpringCloud学习笔记(11)----Spring Cloud Netflix之Hystrix断路器的使用
为什么会有断路器? 在微服务架构中,系 是拆分成 一个的服务单元各间通过注册与发现 的方式互相依 赖.每个单元都在不同的进程中运行, 都是通过远程调用的方式进行信 ,这样就有可能因为网络原或 是依赖服 ...