关于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. Java代码实现MySQL数据库的备份与还原

    通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/tes ...

  2. UNIX基础【UNIX入门经典】

    最早在学校很流行.学生毕业以后就会为公司购买操作系统.导致UNIX流行 UNIX内核: Shell:sh csh ksh 其他组件:

  3. lucene构建restful风格的简单搜索引擎服务

    来自于本人博客: lucene构建restful风格的简单搜索引擎服务 本人的博客如今也要改成使用lucene进行全文检索的功能,因此在这里把代码贴出来与大家分享 一,文件夹结构: 二,配置文件: 总 ...

  4. storm-安装

            storm有两种操作模式: 本地模式和远程模式.使用本地模式的时候,你能够在你的本地机器上开发測试你的topology, 一切都在你的本地机器上模拟出来; 用远端模式的时候你提交的to ...

  5. 87.node.js操作mongoDB数据库示例分享

    转自:https://www.cnblogs.com/mracale/p/5845148.html 连接数据库   var mongo=require("mongodb"); va ...

  6. VBA 第一天

    公司实习第一天,excel搞不定啊,学点VBA留着用: 录制宏: 点击录制宏按钮以后,在这段期间你做的每一个操作都会被记录下来,直到你点击停止录制按钮才能够停下,停下来后在此期间每一个操作都会以宏代码 ...

  7. python中使用easygui

    在阅读<跟孩子一起学编程>的同学对easygui应该不会陌生.书中给出的下载链接有时会连不上,可以试一下http://www.ferg.org/easygui/download.html ...

  8. python 3.x 学习笔记14 (socket_ssh and socket_文件传输)

    ssh服务端 import socket,os server = socket.socket() server.bind(('localhost',6666)) server.listen() con ...

  9. 对比学习用 Keras 搭建 CNN RNN 等常用神经网络

    Keras 是一个兼容 Theano 和 Tensorflow 的神经网络高级包, 用他来组件一个神经网络更加快速, 几条语句就搞定了. 而且广泛的兼容性能使 Keras 在 Windows 和 Ma ...

  10. 前端的console.log的效果写法

    不说废话,直接上代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...