Php 拉威尔叶片性能
我正在使用laravel刀片文件,我想知道这种方法是否会降低我的网站速度。 这是我的文件结构: show.blade.php文件:Php 拉威尔叶片性能,php,laravel,Php,Laravel,我正在使用laravel刀片文件,我想知道这种方法是否会降低我的网站速度。 这是我的文件结构: show.blade.php文件: <div class="table-sections"> ... @include('elements/table',['name' => 'table1','blocks' => $blocks1]) ... @include('elements/table',['name' => 'table2','bloc
<div class="table-sections">
...
@include('elements/table',['name' => 'table1','blocks' => $blocks1])
...
@include('elements/table',['name' => 'table2','blocks' => $blocks2])
...
</div>
...
@foreach($blocks as $block)
...
@foreach($block['sections'] as $section)
...
@foreach($section['rows'] as $row)
...
@include('elements/row','row' => $row)
...
@endforeach
...
@endforeach
...
@endforeach
...
row.blade.php文件:
...
@foreach($row['attributes'] as $attribute)
...
// Making the '<td>' elements with their respective attributes and html
...
@endforeach
...
。。。
@foreach($attributes'行作为$attribute)
...
//使“”元素具有各自的属性和html
...
@endforeach
...
我有很多嵌套的“foreach”块控制部分,所以我想知道在这种情况下,是否最好不使用刀片(例如row.blade.php文件)
你有什么建议吗?太多的嵌套,在Laravel是很糟糕的做法。 我们试图使代码干净,但这有时会导致性能折衷。 这就是为什么我最终决定创建一个小型库,用于在生产时展平刀片,从而将性能提高到x10倍 从这里开始尝试: 基本上,它所做的就是获取刀片文件,并将包含和产量放在一个刀片文件中,而不包含或产量。根据 所有刀片视图都被编译成普通PHP代码并缓存,直到它们被修改,这意味着刀片基本上不会给应用程序增加任何开销 我想如果你不篡改你的缓存配置,上面的语句会把它直接说出来
换句话说,不要害怕充分利用刀片模板引擎。它会比不使用它更慢你的网站。这是你通过抽象任何东西来接受的权衡。不过,Laravel会缓存渲染视图(app/storage/view/),以缓解这种情况。好的,谢谢。但是laravel如何处理show.blade.php文件中的两个include?它包括同时(异步)或单独的表。在我看来,不会有任何“显著”的性能差异,除非您获得数百万次点击。但是,我会给你一个建议。抽象是好的。但是不要过度使用它,因为抽象的层次太多了,所以几个月后就很难调试了。在你的情况下,我不认为有任何需要最深的包含文件。不同于论坛网站,我们不使用“谢谢”,或“感谢任何帮助”,或签名。顺便说一句,这是“提前感谢”,不是“提前感谢”注意:请记住,blade模板是基于php的,只是为了让开发人员更容易、更简单和可读,它与为循环php编写3嵌套模板是一样的。Php通常不是最快的web语言。有时,如果您的数据库服务器与主机服务器不同,并且性能更好,我将使用存储过程并获得一些性能。最后一件事,这一切都取决于它应该返回多少原始数据,如果只有很少的结果,这将是好的,但如果你有大量的页面请求和大量的原始数据在同一时间,这可能会损害你的性能。当不使用包括网站的初始加载时间为0.8秒,当我使用包括它的3秒,没有一个包的工作,我需要帮助。它甚至没有安装:laravel版本
5.5.48
问题1-te cho/compile刀片^1.0的安装请求->te cho/compile刀片可满足[v1.0]。-结论:不要安装laravel/framework v5.5.41
和大约50倍的代码:-不要安装Lightlight/view v5.4.0 |不要安装laravel/framework v5.5.41
我加入的项目不小,没有包含的代码看起来很糟糕,我真的需要这个包工作。刀片本身,是的,但如果你看一个编译视图,您将看到它仍然有include(如果您使用了@include()
),如果嵌套太多,则速度可能会很慢。它不会压平最理想的文件。