PSR-2兼容HTML模板中的内联PHP标记
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PSR-2兼容HTML模板中的内联PHP标记,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1588字,纯文字阅读大概需要3分钟。
内容图文
PSR-2没有提到任何适用于在HTML模板中使用内联php标签的内容,但php-cs-fixer tool似乎有一个标准.
这是我的模板文件,在运行php-cs-fixer之前:
<nav>
<ul>
<li>
<a href="#">Link</a>
<?php
if (! empty($subnav)) {
?>
<ul class="subnav">
<?php
foreach ($subnav as $link) {
?>
<li><?=$link?></li>
<?php
}
?>
</ul>
<?php
}
?>
</li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</nav>
并运行php-cs-fixer修复视图/ ui / nav.php –level = psr2:
<nav>
<ul>
<li>
<a href="#">Link</a>
<?php
if (! empty($subnav)) {
?>
<ul class="subnav">
<?php
foreach ($subnav as $link) {
?>
<li><?=$link?></li>
<?php
}
?>
</ul>
<?php
}
?>
</li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</nav>
这看起来不对,所以我必须遗漏一些东西.
>是否有正确的方法来编写符合PSR-2的内联PHP?
>使用PHP的Alternative syntax for control structures会有什么问题吗?再说一次,在PSR-2和php-cs-fixer中没有提及它们似乎没有任何问题,但由于某种原因它们感觉有点脏!
解决方法:
根据要求:评论发布为答案:
PSR仅适用于PHP代码,它对内联HTML没有任何说法,因为HTML根本不是PHP.
你得到的输出只是增加了空格,根据标准,应该有空格
– 开幕后的新线{
– {使用4个空格缩进后的行
– ……
这就是为什么这个:
<?php
if(!empty($subnav)){//note no spaces
?>
将改为:
<?php
if (!empty($subnav)) {
?>
在你的foreach代码中,你会注意到所有内容都已经缩进了4个空格,因为代码在if块中.
无论哪种方式,如果您要将PHP混合到标记中,最好使用替代的,更加模板友好的语法:
<?php
if (!empty($subnav)):
?>
//markup
<?php
foreach ($subnav as $link):
//do stuff
?>
//markup
<?php
endforeach;
endif;
?>
请注意,结束标记的缩进可能仍会被php-cs-fixer更改.也许内联结束< blockName> ;;像这样:
<?php endforeach; ?>
内容总结
以上是互联网集市为您收集整理的PSR-2兼容HTML模板中的内联PHP标记全部内容,希望文章能够帮你解决PSR-2兼容HTML模板中的内联PHP标记所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。