تعداد بازدید: 2136

Blade Template

view ها یک منظق مجزا در اپلیکیشن شما می باشد که در مسیر resources/views ذخیره می شوند. برای پشتیبانی از ساختار کاربردی نمایش (view) در لاراول یا همان Blade Template باید آن فایل را با فرمت blade.php ذخیره کنید.

Displaying Data

معمولا پس از controller ما view را داریم. محتویات view در مسیر resourses/view می باشد. ما داده های تولید شده در controller ساخته شده بوسیله متغیرهایی به view ارسال می شود.

<?php
public function index()
{
    return view('welcome', ['name' => 'Samantha']);
}

داده ارسالی از هر نوع (آرایه ، متغیر) در سمت view در قالب blade به شکل زیر قابل دسترسی و چاپ است:

Hello, {{ $name }}.

پس هر متغیر که در میان {{}} قرار بگیرد محکوم به چاپ است.  ساختار آن در php به شکل زیر است :

<?php echo "Hello {$name}"; ?>

نکته : برای قرار دادن کد های php در قالب blade از ساختار زیر استفاده می کنیم :

@php
    $currentRoute = (isset($currentRoute)? $currentRoute : 'socialbook')
@endphp

قالب بالا تگ باز و بسته php را تداعی می کند و از لاراول ۵.۳ به بعد پشتیبانی می شود.

Template Inheritance

برای مرتب سازی کد ها در لاراول می توانیم یک سری قالب تعریف کنیم (Master Page Layouts) و خروجی controller را با فرمت خاص خودمان به قالب بفرستیم . همچنین می توانیم قالب های متفاوتی به ازای صفحات مختلف (در مثال کلی می توان گفت قالب ادمین و اپ).

Master Page Layout

یک قالب کلی تعریف می کنیم و مکان هایی از اون رو برای دریافت زیر قالب از سمت فایل های دیگر blade تعبیه می کنیم. مثلا قالبی در مسیر layouts/app.blade.php تعریف می کنیم .

پوشه ای با نام layouts می سازیم و قالب های خود را در آن نگه داری میکنیم. فایل app.blade.php را در زیر داریم:

<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>App Name - @yield('title')</title>

</head>

<body>
    <div class="container">
       @yield('content')
    </div>

    <script>
       @yield('script')
    </script>
</body>

</html>

کدهای بالا یک ساختار یا قالب می باشد . جاهایی برای وارد کردن داده دارد. yield پارامتری به عنوان ورودی می گیرد. با استفاده از همین نام و section می توان مقادیری را اینجا فراخوانی کرد.

به کلمات کلیدی که در ساختار blade می آیند و قبل از آن ها کاراکتر @ می آید directive می گویند. مثلا در قطعه کد بالا section , yield .

Extended Pages

ساختار پایین از master page layout استفاده می کند و مقادیر خود را در آن وارد می کند.

<!-- Stored in resources/views/child.blade.php -->

@extends('layouts.app')

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

@section('content')
    <p>This is my body content.</p>
@endsection
  • extends برای این است که بفهمانیم که ما از قالب استفاده می کنیم. مقدار ورودی آن هم یعنی پوشه layouts  و فایل app.blde.php که در نهایت خروجی با مقدار layouts.app تعیین شده است.
  • در بالا کد section کد ها را به yield هم نام خود تزریق می کند.
  • section می تواند یک رشته تزریق کند (title) و یا خروجی html داشته باشد (content).
  • section با پارامتر نام در نهایت به دنبال yield با همان نام در مسیر extends شده می گردد.

رابطه ای میان directive های گفته شده وجود دارد که در جدول زیر می توانید مشاهده کنید:

extends Master Page Layout
section yield

ساختار به گونه ای است که yield مکانی را در masterPage تعیین می کند و با استفاده از section همان مقادیر را در master page تزریق می کنیم.

include

موارد بالا مربوط به یک قالب کلی از فایل بود . گاهی می خواهیم تا موارد موجود در مثلا content هم بخشی از آن از جایی دیگر بیاید (مثلا get_template_part در وردپرس) . برای این کار فایل را از مسیر view باید توسط include فراخوانی کنیم. مثلا میخواهیم در زمان ساخت محصول خطاهای اعتبار سنجی در یک فایل مجزا در پروژه ما فراخوانی گردد.

@include('errors/new-product')

کد بالا را در پنل ایجاد محصول قرار می دهیم و فایلی در مسیر errors/new-product می سازیم و در آن خطاهای اعتبارسنجی را قرار می دهیم.

Control Structures

در blade ما از ساختار های اصلی برنامه نویسی نظیر :

  • If Statements : ساختار شرطی با همان ساختار در پی اچ پی های خام. همچنین به صورت ترکیبی با تابع isset و empty که می گوید if isset یا if empty . در نهایت باید گفت که همین ساختار های جدید است که blade را پیشرفته تر از php خام در ساختار view نمایش می دهد.
  • Switch Statements : ساختار switch..case با تمامی دستورالعمل های آن نظیر @switch, @case, @break, @default
  • Loops : حلقه های تکرار که شامل for , foreach , while می شود. این ساختار در blade کمی پیشرفته تر است و امکاناتی نظیر Loop Variable برای پیدا کردن اولین ($loop->first) دور حلقه یا آخرین ($loop->last) دور حلقه یا عمق حلقه ($loop->depth) در حلقه های تو در تو ، دسترسی به index با استفاده از $loop->index که از 0 شروع می شود یا $loop->iteration که از 1 شروع می شود داریم.
  • Comments : کامنت با فرمت blade.

Forms

معمولا فرم های ما در قسمت view ساخته می شوند. ساختار blade امکاناتی را برای استفاده از فرم ها برای ما قرار داده است.

پوشه های پیش فرض view

errors : این پوشه ساختار خطاهای status نظیر 404 , 403 را در آن می سازند.

auth : پس از برپایی سیستم authentication این پوشه ساخته می شود. پس بهتر است ما پوشه ای با این نام نسازیم.

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای Blade Template

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *