Năng suất của laravel trong php

Mẫu là 1 bố cục chung cho tất cả các trang có sử dụng lại những thành phần giống nhau mà không phải viết lại toàn bộ, từ đó trên mỗi trang, chỉ cần thay đổi ở một số nơi được chỉ định trên trang từ mẫu

Công cụ mẫu có tác dụng giúp dọn sạch các đoạn mã PHP nằm trong Chế độ xem nên tách biệt hoàn toàn giữa người cắt CSS và người viết mã PHP

Hiện nay có khá nhiều template engine như Smarty, XiTemplate, TinyButStrong, Blade

Blade rất đơn giản, nhưng lại là một template engine mạnh mẽ. Không giống với các công cụ tạo khuôn mẫu PHP phổ biến khác, Blade không giới hạn chúng tôi sử dụng mã PHP trong lượt xem. Tất cả các tệp Blade sẽ được chuyển thành mã tệp PHP và bộ đệm cho đến khi tệp Blade bị thay đổi, điều đó cũng có nghĩa là Blade tự làm tất cả những công việc cần thiết để có thể chạy chế độ xem cho ứng dụng của bạn

The file view used for Blade has the end file name is. lưỡi. php và được lưu trong thư mục mặc định tài nguyên/lượt xem (với Laravel 5. x) và ứng dụng/lượt xem (Laravel 4. x)

2. Use Blade Template Engine

  1. Tên tệp phải luôn đặt dưới dạng xxx. lưỡi. php
  2. Nếu muốn thay đổi đường dẫn thư mục view của laravel 5, bạn chỉ cần sửa đường dẫn tại file config/view. php

'paths' => [
    realpath(base_path('resources/views')),
],

Create file template đơn giản

Tạo tài nguyên tệp/lượt xem/ví dụ. lưỡi. php

Route::get('/example', function ()    {
    return view('example');
});

Như vậy là ta đã tạo được file blade. Giờ ta vào ứng dụng và kiểm tra trong đường dẫn http. /máy chủ cục bộ. 8000/ví dụ

Truyền biến từ tuyến đường, bộ điều khiển xuống chế độ xem

Ta đã chỉnh sửa một chút trong route and view as after

Route::get('/example', function ()    {
    return view('example', ['name' => 'test']);
});

Như vậy là ta có thể dễ dàng truyền dữ liệu từ bộ điều khiển xuống chế độ xem một cách dễ dàng

3. Các cú pháp trong Blade Template Engine

To display data in view ta dùng dấu {{ $x }}

Khi đó file blade sẽ tự build ra đền định dạng theo định dạng

  1. Hiển thị dữ liệu tồn tại tại {{ isset($name) ? . 'Chào thế giới. ' }}
  2. Cú pháp rút gọn. {{ $name hoặc 'Mặc định' }}

Năng suất của laravel trong php
Chú thích. Blate không chấp nhận các lệnh comment thông thường của php as

Khi này mặc dù dòng mã đã được nhận xét nhưng khi được xây dựng ra chế độ xem thì dữ liệu vẫn được sử dụng và hiển thị bình thường

@if (true)
    {{ 'is true!' }}
@else
    {{ 'is false!' }}
@endif

Có thể thấy mã đơn giản hơn rất nhiều so với việc ta sử dụng lệnh if với cú pháp php thông thường

@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile

4. Kế thừa

  1. Đây là phần quan trọng nhất và cũng là mục tiêu của việc tạo ra các Templete trong một ngôn ngữ lập trình
  2. Một ngôi đền tốt không chỉ dễ sử dụng mà còn phải có tác dụng kế thừa để có thể sử dụng lại, tránh mã lặp tối đa
  3. Không thể tạo ra một tệp Templete mà chỉ sử dụng lại cho một chức năng nhất định. ta phải làm để chúng có thể sử dụng lại ở các màn hình khác có cùng chức năng

  4. cú pháp. @include('_example', ['name1' = $name])

Giờ ta đưa tệp _examplte vào màn hình ví dụ

Kết quả thu được cũng tương phản như kết quả lúc đầu. tuy nhiên từ nay ta có thể sử dụng thêm Templete _example. lưỡi. php vào bất kỳ đoạn nào cần sử dụng để hiển thị $name

5. Cách trình bày

  1. Bố cục thiết kế cũng là một thành phần vô cùng quan trọng để có thể tận dụng tối đa sức mạnh của lưỡi kiếm
  2. Một trang web bất thường có một số thành phần không thay đổi như đầu trang, chân trang, tiêu đề. Chính vì thế nếu mỗi lần tạo ra một lượt xem ta sao chép lại nhưng thành phần như vậy thì sẽ gây dị ứng mã và việc duy trì cũng mất thời gian hơn là phải làm đi làm lại một việc trên nhiều màn hình. This work can be left


@extends('layouts.master')

@section('title', 'Page Title')

@section('sidebar')
    

This is appended to the master sidebar.

@endsection @section('content')

This is my body content.

@endsection

Trên đây là một ví dụ về việc tạo bố cục cho một ứng dụng.  

Mỗi phiên sẽ là một khu vực hiển thị lưu trữ dữ liệu trong ứng dụng. Ta chỉ cần viết một lần và nó sẽ được gọi ra ở bất kỳ màn hình nào được mở rộng

Blade Templete là gì?

  • Blade là một
    $hoten = "Dương Nguyễn Phú Cường";
    
    // View `hello.blade.php`
    // Xuất giá trị $hoten escapsed
    {{ $hoten }}
    
    4 mạnh mẽ. Trong Laravel mặc định sử dụng
    $hoten = "Dương Nguyễn Phú Cường";
    
    // View `hello.blade.php`
    // Xuất giá trị $hoten escapsed
    {{ $hoten }}
    
    5 Engine để
    $hoten = "Dương Nguyễn Phú Cường";
    
    // View `hello.blade.php`
    // Xuất giá trị $hoten escapsed
    {{ $hoten }}
    
    6 xem thành các tệp nội dung
    $hoten = "Dương Nguyễn Phú Cường";
    
    // View `hello.blade.php`
    // Xuất giá trị $hoten escapsed
    {{ $hoten }}
    
    7 để trả về người dùng
  • Các đặc tính của
    $hoten = "Dương Nguyễn Phú Cường";
    
    // View `hello.blade.php`
    // Xuất giá trị $hoten escapsed
    {{ $hoten }}
    
    8
    • Blade không giới hạn chúng tôi sử dụng mã PHP trong chế độ xem. Tức là chúng ta có thể tự do sử dụng cú pháp thuần túy của PHP trong chế độ xem
    • Tất cả các tệp Blade sẽ được chuyển thành mã tệp PHP và
      $hoten = "Dương Nguyễn Phú Cường";
      
      // View `hello.blade.php`
      // Xuất giá trị $hoten escapsed
      {{ $hoten }}
      
      9 cho đến khi tệp Blade bị thay đổi. Các file cache view được lưu trữ trong
      Route::get('/example', function ()    {
          return view('example');
      });
      20
    • The file view used for Blade has the end name file is
      Route::get('/example', function ()    {
          return view('example');
      });
      21. Ví dụ.
      Route::get('/example', function ()    {
          return view('example');
      });
      22,
      Route::get('/example', function ()    {
          return view('example');
      });
      23,
    • Được lưu trong thư mục mặc định
      Route::get('/example', function ()    {
          return view('example');
      });
      24. Nếu muốn thay đổi đường dẫn mặc định, có thể hiệu chỉnh trong tệp
      Route::get('/example', function ()    {
          return view('example');
      });
      25
Route::get('/example', function ()    {
    return view('example');
});
8

Lưu hoạt động của $hoten = "Dương Nguyễn Phú Cường"; // View `hello.blade.php` // Xuất giá trị $hoten escapsed {{ $hoten }} 5

Năng suất của laravel trong php

Use Route::get('/example', function () { return view('example'); });27 in laravel 5. x

Ví dụ dùng để học Route::get('/example', function () { return view('example'); });28

1. Cú pháp xuất dữ liệu ra chế độ xem

Cú pháp
Route::get('/example', function ()    {
    return view('example');
});
29

[su_note] Xuất
Route::get('/example', function ()    {
    return view('example', ['name' => 'test']);
});
30 của
Route::get('/example', function ()    {
    return view('example', ['name' => 'test']);
});
31 với giá trị (giá trị) được xuất ra với định dạng chuỗi thoát HTML/JS [/su_note]
  • Để xuất
    Route::get('/example', function ()    {
        return view('example', ['name' => 'test']);
    });
    30 của
    Route::get('/example', function ()    {
        return view('example', ['name' => 'test']);
    });
    31, chúng ta sử dụng cú pháp
    Route::get('/example', function ()    {
        return view('example', ['name' => 'test']);
    });
    34 và 
    Route::get('/example', function ()    {
        return view('example', ['name' => 'test']);
    });
    35 dùng để bọc những phần mà bạn muốn PHP xuất ra xem
  • Khi sử dụng
    Route::get('/example', function ()    {
        return view('example', ['name' => 'test']);
    });
    36 thì Blade tự động thoát cho chúng ta
    • Có nghĩa là
      Route::get('/example', function ()    {
          return view('example');
      });
      29 tương đương với
$hoten = "Dương Nguyễn Phú Cường";

// View `hello.blade.php`
// Xuất giá trị $hoten escapsed
{{ $hoten }}
Route::get('/example', function ()    {
    return view('example');
});
2

Cú pháp
Route::get('/example', function ()    {
    return view('example', ['name' => 'test']);
});
38

[su_note] Xuất
Route::get('/example', function ()    {
    return view('example', ['name' => 'test']);
});
30 của
Route::get('/example', function ()    {
    return view('example', ['name' => 'test']);
});
31 với giá trị (giá trị) được xuất ra với định dạng không thoát khỏi chuỗi HTML/JS [/su_note]
  • Để xuất
    Route::get('/example', function ()    {
        return view('example', ['name' => 'test']);
    });
    30 của
    Route::get('/example', function ()    {
        return view('example', ['name' => 'test']);
    });
    31, chúng ta sử dụng cú pháp
    @if (true)
        {{ 'is true!' }}
    @else
        {{ 'is false!' }}
    @endif
    83 và 
    @if (true)
        {{ 'is true!' }}
    @else
        {{ 'is false!' }}
    @endif
    84 dùng để bọc những phần mà bạn muốn PHP xuất ra xem
  • Khi sử dụng
    Route::get('/example', function ()    {
        return view('example', ['name' => 'test']);
    });
    38 thì Blade không tự động thoát cho chúng ta
    • Có nghĩa là
      Route::get('/example', function ()    {
          return view('example');
      });
      29 tương đương với
Route::get('/example', function ()    {
    return view('example', ['name' => 'test']);
});
3____38

Cú pháp
@if (true)
    {{ 'is true!' }}
@else
    {{ 'is false!' }}
@endif
87

[su_note]
@if (true)
    {{ 'is true!' }}
@else
    {{ 'is false!' }}
@endif
88 bỏ qua và xuất toàn bộ chuỗi [/su_note]
  • Để xuất toàn bộ chuỗi (bao gồm cả dấu trích cú pháp của Blade), chúng ta sử dụng cú pháp
    @if (true)
        {{ 'is true!' }}
    @else
        {{ 'is false!' }}
    @endif
    89 và 
    Route::get('/example', function ()    {
        return view('example', ['name' => 'test']);
    });
    35 dùng để bọc các phần mà bạn muốn PHP xuất ra xem
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
8
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
9

Cú pháp
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
81

[su_note] Ghi chú trong
@if (true)
    {{ 'is true!' }}
@else
    {{ 'is false!' }}
@endif
88 [/su_note]
  • Để ghi chú (bình luận) trong
    @if (true)
        {{ 'is true!' }}
    @else
        {{ 'is false!' }}
    @endif
    88, chúng ta sử dụng cú pháp
    @for ($i = 0; $i < 10; $i++)
        Giá trị hiện tại là {{ $i }}
    @endfor
    
    @foreach ($users as $user)
        

    Đây là user có mã {{ $user->id }}

    @endforeach @while (true)

    Tôi đang lặp mãi mãi :(

    @endwhile
    84

@extends('layouts.master')

@section('title', 'Page Title')

@section('sidebar')
    

This is appended to the master sidebar.

@endsection @section('content')

This is my body content.

@endsection
4
Năng suất của laravel trong php
Cấu trúc điều khiển luồng của blade cũng tương tự như khi chúng ta sử dụng PHP thuần bao gồm, 
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
85 , 
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
86 , 
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
87 … Blade cung cấp cho ta các cấu trúc .

@extends('layouts.master')

@section('title', 'Page Title')

@section('sidebar')
    

This is appended to the master sidebar.

@endsection @section('content')

This is my body content.

@endsection
9
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
89 tương tự như 
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
88 và nó 
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
91 sẽ tương đương với 
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
92
$hoten = "Dương Nguyễn Phú Cường";

// View `hello.blade.php`
// Xuất giá trị $hoten escapsed
{{ $hoten }}
4

Vòng lặp (Loops)

@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
93,
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
94, và
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
95. Tương đương với PHP thuần là 
@for ($i = 0; $i < 10; $i++)
    Giá trị hiện tại là {{ $i }}
@endfor

@foreach ($users as $user)
    

Đây là user có mã {{ $user->id }}

@endforeach @while (true)

Tôi đang lặp mãi mãi :(

@endwhile
96
$hoten = "Dương Nguyễn Phú Cường";

// View `hello.blade.php`
// Xuất giá trị $hoten escapsed
{{ $hoten }}
0

Layout and next template

Để tạo một ứng dụng web với nhiều trang khác nhau, chúng ta không nên lặp lại cùng 1 đoạn mã (DRY - Don't Repeat Yourself). Thay vào đó, chúng ta sẽ tạo một bố cục cục bộ (layout) chính, dùng chung cho toàn trang web. Con view (con view) sẽ kế thừa từ giao diện chủ. Ví dụ. chúng ta sẽ tạo bố cục cục bộ (bố cục) chính như hình sau.
Năng suất của laravel trong php

Xem bố cục cục bộ (bố cục) chính

  • Trong bố cục cục bộ (bố cục) master, chúng ta sẽ
    @for ($i = 0; $i < 10; $i++)
        Giá trị hiện tại là {{ $i }}
    @endfor
    
    @foreach ($users as $user)
        

    Đây là user có mã {{ $user->id }}

    @endforeach @while (true)

    Tôi đang lặp mãi mãi :(

    @endwhile
    97, để các chế độ xem con khi kế thừa bố cục master có thể gắn giao diện vào
  • Để tiến hành
    @for ($i = 0; $i < 10; $i++)
        Giá trị hiện tại là {{ $i }}
    @endfor
    
    @foreach ($users as $user)
        

    Đây là user có mã {{ $user->id }}

    @endforeach @while (true)

    Tôi đang lặp mãi mãi :(

    @endwhile
    97, chúng ta sẽ sử dụng cú pháp
    @for ($i = 0; $i < 10; $i++)
        Giá trị hiện tại là {{ $i }}
    @endfor
    
    @foreach ($users as $user)
        

    Đây là user có mã {{ $user->id }}

    @endforeach @while (true)

    Tôi đang lặp mãi mãi :(

    @endwhile
    99 của
    @if (true)
        {{ 'is true!' }}
    @else
        {{ 'is false!' }}
    @endif
    88 để thực hiện
  • Chế độ xem mã cục bộ (bố cục) master.
    
    @extends('layouts.master')
    
    @section('title', 'Page Title')
    
    @section('sidebar')
        

    This is appended to the master sidebar.

    @endsection @section('content')

    This is my body content.

    @endsection
    41
$hoten = "Dương Nguyễn Phú Cường";

// View `hello.blade.php`
// Xuất giá trị $hoten escapsed
{{ $hoten }}
1

Các thành phần được gắn vào bố cục (Chế độ xem phụ)

  • Khi thiết kế cục bộ (layout) cho một ứng dụng web. Thường sẽ có các thành phần cố định, chúng ta nên tách từ bố cục cục bộ (bố cục) chính ra thành các thành phần nhỏ hơn để dễ quản lý
  • Xem tệp
    
    @extends('layouts.master')
    
    @section('title', 'Page Title')
    
    @section('sidebar')
        

    This is appended to the master sidebar.

    @endsection @section('content')

    This is my body content.

    @endsection
    42. will quy định giao diện về thanh điều hướng thanh điều hướng
  • Xem tệp
    
    @extends('layouts.master')
    
    @section('title', 'Page Title')
    
    @section('sidebar')
        

    This is appended to the master sidebar.

    @endsection @section('content')

    This is my body content.

    @endsection
    43. will QUY ĐỊNH GIAO DIỆN VỀ THANH BÊN CẠNH
  • Để nhúng các thành phần vào một tổng thể cục bộ, hãy sử dụng cú pháp
    
    @extends('layouts.master')
    
    @section('title', 'Page Title')
    
    @section('sidebar')
        

    This is appended to the master sidebar.

    @endsection @section('content')

    This is my body content.

    @endsection
    44
$hoten = "Dương Nguyễn Phú Cường";

// View `hello.blade.php`
// Xuất giá trị $hoten escapsed
{{ $hoten }}
2

Xem con (chế độ xem con)

  • View con will next to view master (bố cục) cục bộ. Sử dụng cú pháp
    
    @extends('layouts.master')
    
    @section('title', 'Page Title')
    
    @section('sidebar')
        

    This is appended to the master sidebar.

    @endsection @section('content')

    This is my body content.

    @endsection
    45
  • View con muốn gắn phần giao diện vào các vị trí đã xảy ra lỗi trên view cha. Sử dụng cú pháp
    
    @extends('layouts.master')
    
    @section('title', 'Page Title')
    
    @section('sidebar')
        

    This is appended to the master sidebar.

    @endsection @section('content')

    This is my body content.

    @endsection
    46
$hoten = "Dương Nguyễn Phú Cường";

// View `hello.blade.php`
// Xuất giá trị $hoten escapsed
{{ $hoten }}
3