Laravel 在没有 Blade 的情况下扩展布局

Laravel extend layout without Blade

我想扩展默认布局并添加布局部分,但我不想使用 Blade 语法。正如在 phpstorm Blade 语法生成错误和 IDE 停止自动完成并且也完全停止识别 php 标签(仅在我在 action() 中使用 @ 符号之后)。

所以我的问题是如何转换

@extends('layouts.default')
@section('content')
@stop

进入php个标签。

查看 Laravel 的源代码 (Illuminate\View\Compilers\BladeCompiler) 是:

@extends('layouts.default')

这是最棘手的部分。通常,当您使用 @extends 时,Laravel 将其编译为: 但将其添加到最后回显的 footer 变量中。如果您将它添加到视图的末尾而不是开头,它也应该可以工作。 (至少它在我做的一个简单测试中有效)

<?php echo $__env->make('layouts.default', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>

@section('content')

<?php $__env->startSection('content'); ?>

@stop

<?php $__env->stopSection(); ?>

但是,如果您使用的是 PhpStorm 8,Blade 语法实际上是受支持的,我从来没有遇到过问题。 What's new in PhpStorm 8?