Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔叶片性能_Php_Laravel - Fatal编程技术网

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

我正在使用laravel刀片文件,我想知道这种方法是否会降低我的网站速度。 这是我的文件结构:

show.blade.php文件:

<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()
),如果嵌套太多,则速度可能会很慢。它不会压平最理想的文件。