เอ็นจิ้นเทมเพลตเบลดแบบสแตนด์อโลน (ไฟล์เดียว ไม่มีการขึ้นต่อกัน)
ดาวน์โหลดไฟล์จากหน้าเผยแพร่และวางไปที่โปรเจ็กต์ของคุณ แค่นั้นแหละ
ที่ตั้ง: views/home/index.blade.php
@extends ( ' shared.layout ' )
@section ( ' looping-test ' )
< p >Let's print odd numbers under 50:</ p >
< p >
@foreach ( $numbers as $number )
@if ( $number % 2 !== 0 )
{{ $number } }
@endif
@endforeach
</ p >
@endsection
ที่ตั้ง: views/shared/layout.blade.php
@include ( ' shared.header ' )
< body >
< div id = " container " >
< h3 >Welcome to < span class = " reddish " > {{ $title } } </ span ></ h3 >
< p > {{ $content } } </ p >
< p > @capitalize ( $mytext )</ p >
@yield ( ' looping-test ' )
</ div >
@include ( ' shared.footer ' )
</ body >
</ html >
ตำแหน่ง: views/shared/header.blade.php
<!DOCTYPE html>
< html lang = " en " >
< head >
< meta charset = " UTF-8 " >
< title > {{ $title } } </ title >
< style type = " text/css " >
body { font-family : Arial , Helvetica , sans-serif ; font-size : 12 px } a { text-decoration : none ; color : #d73a49 } #container { position : relative ; top : 100 px ; width : 60 % ; margin : 0 auto ; border : 1 px solid #ccc ; border-radius : 3 px } #container h3 { margin : 0 ; padding : 10 px ; font-size : 18 px ; border-bottom : 1 px solid #ccc ; color : #666 } span .reddish { color : #bc5858 } #container code , #container p { margin : 0 ; padding : 10 px ; font-size : 12 px } #container code { margin : 12 px ; padding : 10 px ; display : block ; background-color : #fafbfc ; color : #333 } #footer { position : relative ; top : 120 px ; width : 60 % ; margin : 0 auto ; font-size : 11 px } #footer span .copyright { float : left } #footer span .version { float : right }
</ style >
</ head >
ที่ตั้ง: views/shared/footer.blade.php
< div id = " footer " >
< span class = " copyright " >Written by < a href = " {{ $link } } " target = " _blank " > @esyede </ a ></ span >
< span class = " version " >Version {{ Blade :: VERSION } } </ span >
</ div >
ที่ตั้ง: index.php
<?php
include ' Blade.php ' ;
use Esyede Blade ;
$ blade = new Blade ();
// View data
$ title = ' blade test ' ;
$ link = ' https://github.com/esyede ' ;
$ content = ' This is your view content ' ;
$ mytext = ' And this should be capitalized ' ;
$ numbers = range ( 1 , 50 );
// Create custom directive
$ blade -> directive ( ' capitalize ' , function ( $ text ) {
return " <?php echo strtoupper( $ text ) ?> " ;
});
$ data = compact ( ' title ' , ' link ' , ' content ' , ' mytext ' , ' numbers ' );
// render
$ blade -> render ( ' home.index ' , $ data );
สั่งการ | คำอธิบาย |
---|---|
{{ $var }} | เอคโค่ โดยค่าเริ่มต้นจะมีการ Escape เช่นเดียวกับใน Laravel |
{!! $var !!} | เสียงสะท้อนดิบ (ไม่มีการหลบหนี) |
{{ $var or 'default' }} | เนื้อหาสะท้อนด้วยค่าเริ่มต้น |
{{{ $var }}} | Echo หนีเนื้อหา |
{{-- Comment --}} | ความคิดเห็น |
สั่งการ | คำอธิบาย |
---|---|
@if(condition) @elseif(condition) @else @endif | PHP if ( ) บล็อก |
@unless(condition) @endunless | PHP if (! ) บล็อก |
@switch(cases) @case(case) @break @default @endswitch | บล็อก switch ( ) |
สั่งการ | คำอธิบาย |
---|---|
@foreach(key as value) @endforeach | บล็อก PHP foreach ( ) |
@forelse(key as value) @empty @endforelse | PHP foreach ( ) พร้อมบล็อกว่าง |
@for(i=0; i<10; i++) @endfor | PHP for ( ) บล็อก |
@while(condition) @endwhile | PHP while ( ) บล็อก |
สั่งการ | คำอธิบาย |
---|---|
@isset(condition) @endisset | บล็อก PHP if (isset( )) |
@set(key, value) | ตั้งค่าตัวแปร <?php $key = $value ?> |
@unset(var) | PHP unset() |
@continue หรือ @continue(condition) | PHP continue; หรือ if (true) continue; |
@break หรือ @break(condition) | PHP พัง; หรือถ้า(จริง) พัง; |
@exit หรือ @exit(condition) | ทางออก PHP; หรือถ้า (จริง) ออก; |
@json(data) | PHP json_encode() |
@method('put') | อินพุต HTML ที่ซ่อนอยู่สำหรับการปลอมแปลงวิธีการของแบบฟอร์ม |
สั่งการ | คำอธิบาย |
---|---|
@include(file) | รวมไปถึงอีกมุมมองหนึ่ง |
@extends(layout) | ขยายเค้าโครงพาเรนต์ |
@section(name) @endsection | ส่วน |
@yield(section) | ให้ผลผลิตส่วนหนึ่ง |
@stop | หยุดส่วน |
@show | หยุดส่วนและให้เนื้อหา |
@append | หยุดส่วนและต่อท้ายส่วนที่มีอยู่ด้วยชื่อเดียวกัน |
@overwrite | หยุดส่วน เขียนทับส่วนก่อนหน้าด้วยชื่อเดียวกัน |
แน่นอนว่าในอนาคตเราต้องการฟังก์ชันการทำงานที่มากขึ้น เนื่องจากฟังก์ชันในตัวนั้นมีจำกัดจริงๆ ดังนั้นจึงมี API สองตัวที่จัดเตรียมไว้เพื่อขยายไลบรารีนี้:
วิธีการนี้สามารถใช้เพื่อเพิ่มคำสั่งที่กำหนดเองได้ ดังที่คุณเห็นในตัวอย่างข้างต้น เราใช้ API นี้เพื่อกำหนดคำสั่ง @capitalize()
ใหม่ของเราแล้ว:
// Signature:
Blade:: directive (string $ name , Closure $ callback )
// Usage example:
$ blade -> directive ( ' capitalize ' , function ( $ value ) {
return strtolower ( $ value );
});
นี่คือ API อื่นที่มีให้เพื่อเพิ่มคำสั่งที่กำหนดเอง ที่จริงแล้ว คำสั่งนี้ถูกใช้เพื่อกำหนดคำสั่ง @set()
ในตัวของเรา:
// Signature:
Blade:: extend (Closure $ compiler )
// Usage example:
$ blade -> extend ( function ( $ value ) {
return preg_replace ( " /@set([' " ](.*?)[' " ],(.*))/ " , ' <?php $$1 =$2; ?> ' , $ value );
});
นั่นก็ค่อนข้างมาก ขอบคุณที่แวะมา!
ห้องสมุดนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT