在Web开发中,无论是PHP的框架还是Python的框架,都会遇到使用模板的时候,在使用模板的时候就会遇到一个问题,就是使用模板编写的代码通过查看源代码的时候,会发现代码混乱不堪,对于代码格式又嫉妒追求的我来说我因受不了,但是目前也没有找到什么好的格式化输出的办法
但是格式化输出的话,也会需要处理一个压缩的问题,最终还是选择一个方案,开发的时候为了查看代码修改代码,就不做处理,但是上线的时候还是要做下压缩的处理,就是将无用的空格或者换行之类的全部删除掉。
问题前提已经抛出,现在看看如何解决这个问题,为了防止重复早轮子网上也查了一遍,结果也找到了,但是用composer安装的时候又是各种的不兼容,于是看了下源代码,其实很简单。这里我就简答的说下如何使用
具体的逻辑我就不多说了,其实自己理解了下面的使用流程,自己改写也不是太难的事情
第一步 功能开发
创建两个文件一个是components/HtmlMinify.php,代码逻辑如下
<"htmlcode"><"") { return $input; } // Remove extra white-space(s) between HTML attribute(s) $input = preg_replace_callback('#<([^\/\s<>!]+)("]"\r", "", $input)); // Minify inline CSS declaration(s) if (strpos($input, ' style=') !==false){ $input=preg_replace_callback('#<([^<]+"])(.*"", ], $input); } public static function css($input) { if (trim($input) === "") { return $input; } return preg_replace( [ // Remove comment(s) '#("("\\\]++|\\\.)*+"|\'("("\\\]++|\\\.)*+"|\'("\']++|"("\\\]++|\\\.)*+"|\'("])([a-z_][a-z0-9\-_]*"])([^\s]+"") { return $input; } return preg_replace( [ // Remove comment(s) '#\s*("("\\\]++|\\\.)*+"|\'("("\\\]++|\\\.)*+"|\'("])([a-z_][a-z0-9_]*)\2\]#i', ], [ '$1', '$1$2', '}', '$1$3', '$1.$3', ], $input); } }第二步 功能配置
修改配置文件文件,这里修改config/web.php
components中加入如下代码
'htmlMinify' => [ 'class' => 'app\components\HtmlMinify', 'html' => !YII_ENV_DEV, // 这里只开启了html的 ],在bootstrap中加入如下代码
'bootstrap' => ['log', 'htmlMinify'],
// log是默认加的, htmlMinify是我们自己加的
到这里就结束了配置可以试着在生产环境试下
总结
以上所述是小编给大家介绍的Yii2压缩PHP中模板代码的输出问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“Yii2压缩PHP中模板代码的输出问题”评论...