我知道在CI3中可以通过钩子缩小HTML,但在CI4中
我在每个方法的返回前添加了一个minify函数。
minifyHTML(view('admin/template/template',$this->data));
有没有其他方法可以做到这一点,而不使用缩小函数无处不在?
我还想出了另一个解决方案,这是添加一个模板函数在BaseConroller渲染所有的视图。但我已经使用视图()在许多地方的项目和它不可行的我,但可以为他人工作。
我知道在CI3中可以通过钩子缩小HTML,但在CI4中
我在每个方法的返回前添加了一个minify函数。
minifyHTML(view('admin/template/template',$this->data));
有没有其他方法可以做到这一点,而不使用缩小函数无处不在?
我还想出了另一个解决方案,这是添加一个模板函数在BaseConroller渲染所有的视图。但我已经使用视图()在许多地方的项目和它不可行的我,但可以为他人工作。
3条答案
按热度按时间w6lpcovy1#
在CodeIgniter4中,您可以通过添加以下代码inti
app/Config/Events.php
file,使用Events来最小化输出(而不是像在CodeIgniter3中那样使用Hooks参见https://gitlab.irbidnet.com/-/snippets/3
xyhw6mcr2#
您需要扩展您的核心系统类,以便能够在系统范围内执行此操作。
每次CodeIgniter运行时,都会有几个基类作为核心框架的一部分自动初始化,但是可以用自己的版本替换任何核心系统类,甚至只是扩展核心版本。
您可以扩展的两个类如下:
例如,如果您有一个新的App\Libraries\View类,希望使用它来代替核心系统类,则应按如下方式创建类:
类声明必须扩展父类。
类中与父类中的方法同名的任何函数都将被使用,而不是使用本机函数(这称为“方法重写”)。这允许您实质性地更改CodeIgniter核心。
因此,在本例中,您可以查看系统视图类,并更改它以返回已压缩的输出。
在您的情况下,您甚至可以添加一个额外的参数,以便查看函数可以返回压缩或未压缩的输出。
有关在CodeIgniter 4中扩展核心类的更多信息,请阅读:
https://codeigniter.com/user_guide/extending/core_classes.html#extending-core-classes
ki0zmccv3#
在CodeIgniter 4中,可以使用内置的输出压缩库来缩小视图的HTML输出。
app/Config/App.php
。compress_output
选项的值来设置压缩级别,可能的值为:最后,在输出发送到浏览器之前,您需要在控制器中加载输出库。您可以使用以下代码行加载它: