我正在进入PHPStorm并且非常喜欢重新格式化代码的选项。我有我喜欢的方式设置我的一个例外。我经常以这种方式回应HTML。
echo '<section'>;
echo '<h2>Some Heading</h2>;
echo '<p>Lorem ipsum dolor sit amet...</p>
echo '</section>';
当我重新格式化代码时,这会将上面的代码清理到这个
中echo '<section'>;
echo '<h2>Some Heading</h2>;
echo '<p>Lorem ipsum dolor sit amet...</p>
echo '</section>';
是否可以为PHPSstorm中的任何回显html保留上述格式?任何帮助,将不胜感激。
答案 0 :(得分:3)
使用heredoc,这会使代码更清晰,不应重新格式化:
<?php
echo <<<EOF
<section>
<h2>Some Heading</h2>
<p>Lorem ipsum dolor sit amet...</p>
</section>
EOF;
?>
答案 1 :(得分:3)
PHP在这方面非常强大,你为什么不这样做:
<?php /* do something */ ?>
<section>
<h2>Some Heading</h2>
<p>Lorem ipsum dolor sit amet...</p>
</section>
<?php /* do more things */ ?>
您甚至不需要回显HTML。在HTML组件中,您甚至可以访问前面行/文件中使用的范围变量(例如,如果包含此HTML的文件是include
d)
如果要捕获稍后要使用的输出,或稍后显示,则使用ob_start()
开始输出缓冲,使用$output = ob_get_clean();
释放缓冲区并捕获输出。
或者,例如,如果代码在控制器文件中,您可以“包含”文件(它与我上面描述的输出缓冲方法一起工作得非常好),并滚动您自己的模板版本。 / p>
类似的东西:
some_layout.php
<?php /* do something */ ?>
<section>
<h2>Some Heading</h2>
<p>Lorem <?=$wow?> dolor sit amet...</p>
</section>
<?php /* do more things */ ?>
controller.php
public function showSomeLayout() {
$wow = 2;
ob_start();
include 'some_layout.php';
return new SomeResponseObject(ob_get_clean()); // or just print here
}
一个非常巧妙的技巧是你实际上可以include
任何类型的文件。例如,如果要将应用程序版本注入DOM中的javascript脚本节点,可以执行以下操作:
index.html
<html>
<head>
<script>var appVersion = <?=$v?>;</script>
</head>
...
</html>
包括index.html
,当前范围内有$v
,会导致$ v被注入页面,并可用于javascript。
(这实际上是一个非常糟糕的例子,但你可以使用.js
文件,如果你通过你的应用程序捕获所有请求/管道,并自己提供文件。