几天前,我决定在下一个项目中开始使用laravel,但我很困惑,因为我觉得文档不是很有吸引力,而且我还是一个laravel初学者。
因此,我没有找到如何使用PHP创建布局的解决方案(而不是内置的刀片模板引擎(。
我该怎么做?在一个大项目中,组织布局的最佳方式是什么?
感谢
有许多方法论处理模板。
1.使用常规include
或require
您可以包括header.php
、sidebar.php
和footer.php
,以及您喜欢的每个扇区的任意多个文件(这取决于模板的大小(
2.使用一个通用文件并在其中包含类
包括单个文件并调用类来渲染每个区域
像
class Head {
public function render($_page, $_data) {
extract($_data);
include($_page);
}
}
3.使用模板引擎
You shall prefer few templating engine like smart, raintpl etc., (I guess you don't prefer it ;) )
4.通过inc收购
你可以按照建议在这里包括
<html>
<head>
<title><?=$this->title</title>
</head>
<body>Hey <?=$this->name?></body>
</html>
php区域将是
$view = new Template();
$view->title="Hello World app";
$view->properties['name'] = "Jude";
echo $view->render('hello.inc');
5.通过在数据库中设置模板段
相信我,我看到了许多好的网站,它们将模板存储在数据库中,每次都会进行渲染。这个想法可能看起来很奇怪,但就连我在一个项目中也尝试过。
结论:
但如果我使用Laravel,我肯定会更喜欢Blading Tempalte引擎,我也推荐你。
更新:
使用刀片模板的一些好处
1.属性设置简单
在移动中设置属性
<title>App Name - @yield('title')</title>
2.容易屈服
<body>
@section('sidebar')
This is the master sidebar.
@show
<div class="container">
@yield('content')
</div>
</body>
3.简单回声
像这个
Hello, {{ $name }}
4.条件简单
像这个
{{ isset($name) ? $name : 'Default' }}
5.永远不要逃跑
像这个
Hello, {!! $name !!}.
6.漂亮的If语句
我更喜欢这种方式让我的代码更漂亮
@if (count($records) === 1)
I have one record!
@elseif (count($records) > 1)
I have multiple records!
@else
I don't have any records!
@endif
7.检查身份验证
检查身份验证的最简单方法
@unless (Auth::check())
You are not signed in.
@endunless
8.易于循环
这个for循环看起来像
@for ($i = 0; $i < 10; $i++)
The current value is {{ $i }}
@endfor
9.出色的foreach语句
拆分密钥和值再简单不过了
@foreach ($users as $user)
<p>This is user {{ $user->id }}</p>
@endforeach
10.包括文件
像这个一样的include
文件怎么样
@include('view.name')
11.将参数传递到视图
可以将此数组传递到您的视图
@include('view.name',['some'=>'data'](
来源:Laravel Templates